în articolul de astăzi aș dori să mă concentrez pe schimbarea lentă a dimensiunii, aka SCD. Dimensiune este un cuvânt extras din stocarea datelor ca atare. Nu fără un motiv, SCD este utilizat foarte des în ceea ce privește subiectele depozitului de date (DW) și poate fi utilizat în scopuri de audit în sistemele OLTP.scopul articolului este de a revizui tipurile de dimensiuni care se schimbă lent, deoarece există puține versiuni ale acestora.
datele se schimbă în timp., S-ar putea să nu vă pese de versiunea istorică a datelor din Baza de date OLTP, dar ar putea fi o cerință de afaceri pentru a menține toate modificările istorice. Cu alte cuvinte, trebuie să puteți arăta, într-un raport de vânzări, un birou regional corect al unei persoane de vânzări, indiferent când persoana a schimbat Regiunea. În acest caz, trebuie să păstrăm datele înainte de schimbare și după actualizare.
cum funcționează transformările?
există câteva tipuri de SCD.
în funcție de tipul SCD puteți păstra nici una, una sau mai multe modificări istorice de rânduri.,
ideea este simplă: de fiecare dată când rândul se schimbă, o versiune veche (înainte de actualizare sau ștergere) a rândului va fi păstrată în tabelul SCD.
punerea în aplicare a acestor lucruri nu este întotdeauna ușor. Să aruncăm o privire la exemple.
Ca un exemplu de sursă de date nu va folosi următoarele date de rând:
SCD Sursa de date exemplu
În exemplul de mai sus, CustomerId este un PrimaryKey în sursă (OLTP) de baze de date.,
introducem surrogate key (CustomerKey) în DW pentru a evita duplicarea CustomerId originale și pentru a optimiza performanța, mai ales atunci când sistemul sursă utilizează caractere sau chei complexe.
SCD datelor în Depozitul de Date exemplu
SCD Tip 0
Acest tip nu ține orice modificări de atribute. Păstrează numai valoarea inițială fără modificări. Este folosit în principal pentru atribute care nu pot fi schimbate, cum ar fi data nașterii.,
SCD tip 1: suprascrierea istoricului pentru un atribut
această metodă nu poate urmări modificările datelor și suprascrie datele vechi cu noi. Odată ce clientul nostru-și schimbe adresa, adresa de noi ar suprascrie:
SCD Tip 1
după Cum puteți vedea – este foarte simplu să pună în aplicare și să mențină procesul – e simplu update. În alte mâini, dezavantajul acestei abordări este lipsa istoriei rândului în depozitul de date.,
SCD Type 2: adăugarea de noi rânduri
metodologia păstrează istoricul prin adăugarea de noi rânduri și nu există nicio limită a numărului de modificări de păstrare.,iv id=”f3da287bb9″>
SCD Tip 2
în Plus, puteți decide modul în care doriți să știți mai vechi rânduri de a menține actualul steag coloană și/sau UpdateDate:
SCD Tip 2 cu actualul steag
sau versiune de rând, care va fi incrementat secvențial:
SCD Tip 2 cu versiunea
SCD Tip 3: istorice suplimentare coloane
În această abordare, puteți gestiona o cantitate limitată de istorie prin adăugarea de coloane suplimentare pentru urmărirea atribute.,
dorind să aveți orașul anterior și curent al clientului, puteți implementa coloane: PreviousCity și CurrentCity. Va exista un singur rând în Data Warehouse (DW) pentru fiecare bază de date sursă, prin urmare, tipul 3 are o utilizare limitată și este mai puțin popular decât tipul 1 și 2.
SCD Tip 3
trebuie să fii atent, dacă doriți să utilizați Tipul 3 de SCD. Asigurați-vă că Business Analyst și/sau clientul dvs. sunt conștienți de limitările istoricului.,
SCD Tip 4: tabel istoric separat
Acest tip utilizează tabele separate pentru păstrarea înregistrărilor curente și a modificărilor istorice. Aceasta valoare pentru a utiliza atunci când:
• Dimensiune se schimbă destul de des sau
• Dimensiune este multi-milioane de rânduri de tabel
SCD Tip 4 curent de masă
SCD Tip 4 – istorice masă
Kylie Ross din Kimball apeluri de Grup, astfel de tabele ca „mini-dimensiune”.,
SCD tip 6:
această abordare este numerotată ca 6 ca 1+2+3=6 precum și 1x2x3 = 6. Prin urmare, este o combinație a acestor trei tipuri:
• Păstrați ambele anterioare și actuale valori pentru atributul (ca Tip 3, uita-te la coloane: „HistoricCity”, „CurrentCity”)
• Suprascrie toate înregistrările pentru versiunea curentă de atribut (ca Tip 1, uita-te la coloana „CurrentCity”)
• Ține istorice versiune de atribut (ca Tip 2, arata la fel de coloane: „IsCurrent”, „StartDate”, „Sfarsitul”)
hai Să ne uităm cum pe rând este de a fi schimbat și cum afectează pe DW., Prima încărcare de rând:
SCD Tip 6 (pasul 1)
Rânduri în DW Client tabelul următor primul client de relocare:
SCD Tip 6 (pasul 2)
Rânduri în DW Client tabelul următor al doilea client de transfer:
SCD Tip 6 (pasul 3)
Ce Tip ar trebui să am de ales?,
în calitate de consultant profesionist, răspund profesional:
depinde
întrebați-vă echipa de afaceri, analiza de afaceri sau clientul dvs.: ce au nevoie în depozitul de date.
poate că nu am spus-o destul de tare, dar în același tabel puteți aplica diferite tipuri SCD pentru fiecare coloană.
De exemplu: tastați 2 în coloana orașului, tastați 1 în coloana Data nașterii. Toate la aceeași masă.
prin urmare, cereți-le pentru fiecare dimensiune:
• Care atribute sunt constante,
• Care atribute sunt variabile?,
• ce atribute ar trebui să fie urmărite complet, care ar trebui să păstreze numai versiunea anterioară și cea curentă?
• câte rânduri sunt în tabel chiar acum / sunt așteptate în următorii 10 ani?
păstrați aceste răspunsuri ca o dovadă. Oamenii, în special clienții, adoră să se răzgândească. Știi ce vreau să spun.
dacă încă nu sunteți sigur care să fie ales, amintiți-vă că:
păstrarea unui istoric al modificărilor este bună pentru dvs.
pur și simplu pentru că cerințele s-ar putea schimba.
Pe lângă tipurile 0 și 1, în opinia mea, cele mai populare sunt tipul 2 și tipul 4.
cum se încarcă datele în SCD?,
bună întrebare. Dar acest subiect este o poveste complet diferită.
înainte de a pregăti următoarea postare despre asta – aruncați o privire asupra acestui instrument:
SCD Merge Wizard
Instrumentul vă ajută să creați, să gestionați și să întrețineți maparea între baza de date sursă (de exemplu, stadializarea) și baza de date țintă (depozitul de date). Mai mult, cu această abordare, veți utiliza declarația MERGE pentru a efectua operațiuni de încărcare utilizând tipul SCD configurat pentru fiecare coloană.
în postările ulterioare, vă voi explica cum să aplicați diferite tipuri SCD în acest instrument.
mult noroc cu sarcinile tale,
Kamil