i dagens artikel skulle jag vilja fokusera på långsamt ändra dimension, aka SCD. Dimension är ett ord utdrag ur datalagring som sådan. Inte utan anledning SCD används mycket ofta när det gäller Data Warehouse (DW) ämnen och kan användas för revisionsändamål i OLTP-system.

målet med artikeln är att granska typerna av långsamt föränderlig Dimension eftersom det finns få versioner av dem.

data förändras över tiden., Du kanske inte bryr dig om historisk version av data i din OLTP-databas, men det kan vara affärskrav för att behålla alla historiska förändringar. Med andra ord måste du kunna visa i en försäljningsrapport ett korrekt regionalt kontor för en säljare, oavsett när personen har ändrat regionen. I så fall måste vi behålla data före ändring och efter uppdateringen.

hur transformationer fungerar?

det finns få typer av SCD.

beroende på SCD-typ kan du behålla ingen, en eller flera historiska ändringar av rader.,
tanken är enkel: varje gång raden ändras kommer en gammal version (före uppdatering eller radering) av rad att hållas i SCD-tabellen.
genomförandet av dessa saker är inte alltid lätt. Låt oss ta en titt på exempel.

som exempel på källdata kommer jag att använda följande datarad:

Scd Källdataexempel

i exemplet ovan är CustomerId en PrimaryKey in source (OLTP) databas.,
vi introducerar surrogatnyckel (CustomerKey) i DW för att undvika dubbelarbete av original CustomerId och för att optimera prestanda, särskilt när källsystemet använder tecken eller komplexa nycklar.

SCD-data i Data Warehouse example

SCD Type 0

den här typen behåller inga ändringar av attribut. Det håller bara det ursprungliga värdet utan några ändringar. Det används främst för attribut som inte kan ändras, som födelsedatum.,

SCD Type 1: Skriva över historiken för ett attribut

den här metoden kan inte spåra ändringarna i data och skriver över den gamla data med nya. När vår kund ändrar sin adress skulle ny adress skriva över:

SCD Type 1

som du kan se – det är väldigt enkelt att implementera och underhålla processen – det är enkel uppdatering. I andra händer är nackdelen med detta tillvägagångssätt brist på rows historia i datalager.,

SCD typ 2: Lägga till nya rader

metoden bevarar historiken genom att lägga till nya rader och det finns ingen gräns för antalet ändringar.,iv id=”f3da287bb9″>

SCD Type 2

dessutom kan du bestämma på vilket sätt du vill veta äldre rader genom att behålla aktuell flaggkolumn och/eller uppdatera:

SCD Type 2 med aktuell flagga

eller version av rad som kommer att ökas sekventiellt:

SCD typ 2 med version

SCD typ 3: ytterligare historiska kolumner

i detta tillvägagångssätt kan du hantera en begränsad mängd historia genom att lägga till ytterligare kolumner för spårningsattribut.,
vill ha tidigare och nuvarande kundstad kan du implementera kolumner: PreviousCity och CurrentCity. Det kommer bara att finnas en rad i Data Warehouse (DW) per källdatabas, därför har typ 3 begränsad användbarhet och är mindre populär än typ 1 och 2.

SCD Type 3

Du måste vara försiktig om du vill använda typ 3 av SCD. Se till att affärsanalytiker och / eller din kund är medvetna om historiens begränsningar.,

SCD Typ 4: separat Historisk tabell

den här typen använder separata tabeller för att hålla aktuella poster och historiska ändringar. Det värt att använda när:
• dimensionen förändras ganska ofta eller
• dimensionen är flera miljoner rader tabell

SCD Typ 4 nuvarande tabell

SCD typ 4-Historisk tabell

Margy Ross från Kimball group kallar sådana tabeller som ”mini – dimension”.,

SCD Typ 6:

denna metod är numrerad som 6 som 1+2+3 = 6 samt 1x2x3=6. Därför är det en kombination av dessa tre typer:
• Hålla både tidigare och nuvarande värden för attribut (som Typ 3, titta på kolumner: ”HistoricCity”, ”CurrentCity”)
• Åsidosätter alla poster för nuvarande version av attribut (som Typ 1, titta på kolumnen ”CurrentCity”)
• Håller historiska versionen av attribut (som Typ 2, ser ut som kolumner: ”IsCurrent”, ”Startdatum”, ”EndDate”)
Låt oss ta en titt på hur den rad som ändras, och hur dess inverkan på DW., Den första inläsningen av raden:

SCD Type 6 (steg 1)

rader i DWS kundtabell efter första kundomlokalisering:

SCD Type 6 (steg 2)

rader i DW: s kundtabell efter andra kundomlokalisering:

SCD type 6 (steg 3)

vilken typ ska jag välja?,

som professionell konsult svarar jag professionellt:

det beror

fråga ditt företagsteam, affärsanalys eller din kund: vad de behöver i datalager.
kanske sa jag det inte tillräckligt högt, men i samma tabell kan du använda olika SCD-typer till varje kolumn.
till exempel: Skriv 2 till stadskolumnen, skriv 1 till kolumnen födelsedatum. Allt i samma bord.
fråga dem därför för varje dimension:
• vilka attribut är konstanta,
• vilka attribut är variabler?,r• * vilka attribut ska spåras fullt ut,vilket bara ska behålla tidigare och nuvarande version?r• * hur många rader är i tabell just nu / förväntas under de kommande 10 åren ?
behåll dessa svar som bevis. Människor, särskilt kunder, älskar att ändra sig. Du vet vad jag menar.
om du fortfarande inte är säker på vilken som ska väljas, kom ihåg att:

att hålla en historia av ändringarna är bra för dig

helt enkelt för att kraven kan ändras.
bredvid av typerna 0 och 1, enligt min mening, de mest populära är typ 2 och typ 4.

hur man laddar data i SCD?,

bra fråga. Men det här ämnet är en helt annan historia.
innan jag förbereder nästa inlägg om det – ta en titt på det här verktyget:
Scd Merge Wizard
verktyget hjälper dig att skapa, hantera och underhålla kartläggning mellan källdatabas (t.ex. staging) och måldatabas (Data Warehouse). Dessutom, med detta tillvägagångssätt kommer du att använda MERGE-uttalande för att utföra laddningsoperationer med konfigurerad SCD-typ för varje kolumn.
i ytterligare inlägg kommer jag att förklara hur man använder olika SCD-typer i det här verktyget.

lycka till med dina belastningar,
Kamil