I dagens artikkel vil jeg ønsker å fokusere på Sakte endre dimensjon, aka SCD. Dimensjon er et ord hentet fra datavarehus som sådan. Ikke uten grunn SCD brukes svært ofte i form av Data Warehouse (DW) emner og kan være bruk for revisjon formål i OLTP-systemer.

målet med artikkelen er å gjennomgå typer Sakte Endre Dimensjon som det er noen versjon av dem.

data som endrer seg over tid., Du kanskje ikke bryr seg om historiske versjonen av data i OLTP database, men det kan være business krav for å opprettholde alle historiske endringer. Med andre ord, du må være i stand til å vise, i en sales report, en riktig regionale kontor av en selger, uansett når personen har endret regionen. I så fall må vi holde endre data før og etter oppdateringen.

Hvordan Transformasjoner Arbeid?

Det er mange typer av SCD.

Avhengig av SCD å skrive, kan du holde ingen, en eller flere historiske endringer av rader.,
ideen er enkel: hver gang rad er i endring, en gammel versjon (før UPDATE eller DELETE) av rad vil bli holdt i SCD bordet.
gjennomføringen av disse tingene er ikke alltid lett. La oss ta en titt på eksemplene.

Som et eksempel på kilde data vil jeg bruke følgende data rad:

SCD kildedataene eksempel

I eksempelet ovenfor, kunde-id er en PrimaryKey i kilden (OLTP) database.,
Vi introdusere surrogat-tasten (CustomerKey) i DW for å unngå duplisering av opprinnelige kunde-id og å optimalisere ytelsen, spesielt når kilden er et system som bruker tegn eller komplekse tastene.

SCD data i Data Warehouse eksempel

SCD Type 0

Denne typen ikke holde noen endringer av attributter. Det holder bare den opprinnelige verdien uten noen endringer. Det brukes hovedsakelig for attributter som ikke kan endres, for eksempel Fødselsdato.,

SCD Type 1: overskrive historie for et attributt

Denne metoden kan ikke spore endringer i data, og overskriver den gamle data med nye. Når vår kunde endre sin adresse, nye adresse vil overskrive:

SCD Type 1 –

– >

Som du kan se – det er veldig enkelt å implementere og opprettholde prosessen – det er enkelt oppdatering. I andre hender, ulempen med denne tilnærmingen er mangel på rad historie i Data Warehouse.,

SCD Type 2: legge til nye rader

metodikken er å bevare historien ved å legge til nye rader, og det er ingen grense på antall holde endringer.,iv id=»f3da287bb9″>

SCD Type 2

i Tillegg, du kan bestemme på hvilken måte du ønsker å vite eldre rader ved å opprettholde dagens flagg kolonne og/eller UpdateDate:

SCD Type 2 med gjeldende flagg

eller versjon av raden som vil økes i rekkefølge:

SCD Type 2 med versjon

SCD-Type 3: ekstra historiske kolonner

I denne tilnærmingen, kan du håndtere en begrenset mengde historie ved å legge til flere kolonner for sporing attributter.,
som Ønsker å ha tidligere og nåværende byen kunde kan du implementere kolonner: PreviousCity og CurrentCity. Det vil bli bare én rad i Data Warehouse (DW) per kilde database derfor Type 3 har begrenset anvendelighet og er mindre populære enn Type 1 og 2.

SCD-Type 3

Du må være forsiktig hvis du ønsker å bruke Type 3 av SCD. Sørg for at Business Analyst og/eller Kunden din er klar over historiens begrensninger.,

SCD Type 4: Separate historiske tabell

Denne typen bruker ulike tabeller for å holde den aktuelle poster og historiske endringer. Det er verdt å bruke når:
• Dimensjon endrer seg ganske ofte eller
• Dimensjon er multi-million rader tabellen

SCD Type 4 gjeldende tabell

SCD Type 4 – historiske tabell

Margy Ross fra Kimball Gruppe samtaler slike tabeller som «mini-dimensjon».,

SCD Type 6:

Denne tilnærmingen er nummerert som 6 som 1+2+3=6 så vel 1x2x3=6. Derfor er det en kombinasjon av disse tre typer:
• Holde både tidligere og gjeldende verdier for attributtet (som Type 3, se på kolonner: «HistoricCity», «CurrentCity»)
• Overstyrer alle oppføringer for gjeldende versjon av attributtet (som Type 1, kan du se i kolonnen «CurrentCity»)
• Holder historiske versjon av attributtet (som Type 2, se ut som kolonner: «IsCurrent», «Startdato», «Sluttdato»)
La oss ta en titt hvordan rad blir endret, og hvordan dens innvirkning på DW., Den første lasting av raden:

SCD Type 6 (trinn 1)

Rader i DW er Kunden tabell etter første kunde flytting:

SCD Type 6 (trinn 2)

Rader i DW er Kunden bordet følgende andre kunde flytting:

SCD Type 6 (trinn 3)

Hvilken Type skal jeg velge?,

Som en profesjonell konsulent jeg svare profesjonelt:

Det gjør avhenge

Spør din business team, business analytics eller din kunde: Hva de trenger i data warehouse.
Kanskje jeg ikke si det høyt nok, men i det samme bordet du kan bruke forskjellige SCD-Typer til hver kolonne.
For eksempel: Type 2 til Byen-kolonnen Skriver du inn 1 for Fødselsdato kolonne. Alle i den samme tabellen.
Derfor spørre dem for hver dimensjon:
• hvilke attributter som er konstant,
• hvilke attributter som er variabler?,
• hvilke attributter som skal være fullt sporet, noe som bør holde bare tidligere og nåværende versjonen?
• Hvor mange rader i tabellen akkurat nå / er ventet i de neste 10 år?
Holde disse svarene, som et bevis. Mennesker, spesielt kunder, elsker å endre deres sinn. Du vet hva jeg mener.
Hvis du fortsatt ikke er sikker på hvilken du skal bli valgt, husk at:

å Holde en logg over endringer som er bra for deg

rett og Slett fordi kravene kan endres.
Ved siden av typer 0 og 1, i min mening, den mest populære er Type 2 og Type 4.

Hvordan å laste data inn i SCD?,

Godt spørsmål. Men dette emnet er en helt annen historie.
Før jeg forberede neste innlegg om det – ta en titt på dette verktøyet:
SCD Fusjonere Veiviseren
verktøy som hjelper deg å opprette, administrere og vedlikehold av mapping mellom kilde database (f.eks. staging) og mål database (Data Warehouse). Dessuten, med denne tilnærmingen vil du bruke MERGE-setningen til å utføre lasting operasjoner ved hjelp konfigurert SCD-Typen for hver kolonne.
I ytterligere innlegg, vil jeg forklare hvordan man kan anvende forskjellige SCD-Typer i dette verktøyet.

lykke til med ditt belastninger,
Kamil