i dagens artikel vil jeg gerne fokusere på langsomt skiftende dimension, aka SCD. Dimension er et ord uddrag fra data warehousingarehousing som sådan. Ikke uden grund bruges SCD meget ofte med hensyn til Data topicsarehouse (D.) emner og kan bruges til revisionsformål i OLTP-systemer.

målet med artiklen er at gennemgå typerne af langsomt skiftende Dimension, da der er få versioner af dem.

dataene ændrer sig over tid., Du er måske ligeglad med historisk version af data i din OLTP-database, men det kan være forretningskrav for at opretholde alle historiske ændringer. Med andre ord skal du i en salgsrapport kunne vise et korrekt regionalt kontor for en salgsperson, uanset hvornår personen har ændret regionen. I dette tilfælde skal vi opbevare dataene før ændring og efter opdateringen.

hvordan transformationer arbejde?

Der er få typer af SCD.

afhængigt af SCD typen kan du holde ingen, en eller flere historiske ændringer af rækker.,
ideen er enkel: hver gang rækken ændrer sig, vil en gammel version (før opdatering eller slet) af rækken blive opbevaret i SCD-tabellen.
implementeringen af disse ting er ikke altid let. Lad os se på eksempler.

Som et eksempel på en kilde data, vil jeg bruge følgende oplysninger række:

SCD kildedata eksempel

I eksemplet ovenfor, Kunde er en PrimaryKey i kilde (OLTP) database.,
Vi introducerer surrogatnøgle (CustomerKey) I d.for at undgå duplikering af original CustomerId og for at optimere ydeevnen, især når kildesystemet bruger tegn eller komplekse nøgler.

SCD data i Data Warehouse-eksempel

SCD Type 0

Denne type er ikke holde nogen ændringer af attributter. Det holder kun den oprindelige værdi uden ændringer. Det bruges primært til attributter, som ikke kan ændres, ligesom fødselsdato.,

SCD type 1: overskrivning af historikken for en attribut

denne metode kan ikke spore ændringerne i data og overskriver de gamle data med nye. Når vores kunde ændre sin adresse, ny adresse vil overskrive:

SCD Type 1

Som du kan se – det er meget enkelt at implementere og vedligeholde processen – det er nemt at opdatere. I andre hænder er ulempen ved denne tilgang mangel på ro .s historie i Data Warehousearehouse.,

SCD type 2: Tilføjelse af nye rækker

metoden bevarer historikken ved at tilføje nye rækker, og der er ingen grænse for antallet af ændringer.,iv id=”f3da287bb9″>

SCD Type 2

Derudover kan du beslutte, på hvilken måde du ønsker at vide ældre rækker ved at opretholde den nuværende flag kolonne-og/eller UpdateDate:

SCD Type 2 med nuværende flag

eller version af træk, som vil blive forøget i rækkefølge:

SCD Type 2 med version

SCD Type 3: supplerende historiske kolonner

I denne tilgang, du kan forvalte en begrænset mængde af historien ved at tilføje yderligere kolonner til at spore attributter.,hvis du vil have tidligere og nuværende kundeby, kan du implementere kolonner: PreviousCity og CurrentCity. Der vil kun være rown række i Data Dataarehouse (D.) pr kilde database derfor Type 3 har begrænset brugervenlighed og er mindre populær end Type 1 og 2.

SCD Type 3

Du skal være forsigtig, hvis du ønsker at bruge Type 3 af SCD. Sørg for, at forretningsanalytiker og / eller din kunde er opmærksomme på historiens begrænsninger.,

SCD Type 4: separat historisk tabel

denne type bruger separate tabeller til at føre de aktuelle poster og historiske ændringer. Det er værd at bruge, når:
• Dimensioner ændrer sig ganske ofte, eller
• Dimensioner er multi-million rækker bordet

SCD Type 4 nuværende bordet

SCD Type 4 – historiske tabel

Margy Ross fra Kimball Gruppen kalder sådanne tabeller som “mini-dimension”.,

SCD type 6:

denne fremgangsmåde er nummereret som 6 som 1+2+3=6 samt 1 .2 .3=6. Derfor er det en kombination af disse tre typer:
• Hold både tidligere og aktuelle værdier for attributten (som Type 3, kig på kolonner: “HistoricCity”, “CurrentCity”)
• Tilsidesætter alle poster for nuværende version af attribut (som Type 1, se på kolonnen “CurrentCity”)
• Holder historiske version af attribut (som Type 2, se ud som kolonner: “IsCurrent”, “Startdato”, “Slutdato”)
Lad os få et kig på, hvordan den række, der er ved at blive ændret, og hvordan dens indflydelse på DW., Den første læsning af rækken:

SCD Type 6 (trin 1)

Rækker i DW ‘ s Kunde bordet efter første kunde flytning:

SCD Type 6 (trin 2)

Rækker i DW ‘ s Kunde bordet efter det andet kunde flytning:

SCD Type 6 (trin 3)

Hvilken Type skal jeg vælge?,

som professionel konsulent svarer jeg professionelt:

det afhænger

spørg dit forretningsteam, forretningsanalyse eller din kunde: hvad de har brug for i data warehousearehouse.
måske sagde jeg det ikke højt nok, men i samme tabel kan du anvende forskellige SCD-typer til hver kolonne.
For eksempel: Type 2 til kolonnen by, Type 1 til kolonnen fødselsdato. Alle i samme tabel.
spørg dem derfor for hver dimension:
• hvilke attributter er konstante,
• hvilke attributter er variabler?,
• hvilke attributter skal være fuldt spores, som bør holde kun tidligere og nuværende version?
• Hvor mange rækker er i tabellen lige nu / forventes i de næste 10 år?
Opbevar disse svar som bevis. Folk, især kunder, elsker at skifte mening. Du ved, hvad jeg mener.
Hvis du stadig ikke er sikker på, hvilken der skal vælges, skal du huske at:

at holde en historie med ændringerne er godt for dig

simpelthen fordi kravene kan ændre sig.
ved siden af typer 0 og 1, Efter min mening, de mest populære er Type 2 og type 4.

sådan indlæses data i SCD?,

godt spørgsmål. Men dette emne er en helt anden historie.
Før jeg forberede næste indlæg om det – kig på dette værktøj:
SCD Fusionere Guiden
værktøj hjælper dig med at oprette, administrere og vedligeholdelse af mapping mellem source-database (fx staging) og mål database (Data Warehouse). Desuden vil du med denne tilgang bruge MERGE-erklæring til at udføre indlæsningsoperationer ved hjælp af konfigureret SCD-Type for hver kolonne.
i yderligere indlæg vil jeg forklare, hvordan man anvender forskellige SCD-typer i dette værktøj.

held og lykke med dine belastninger,
Kamil