ägaren av datalagret måste bestämma hur man ska svara på förändringarna i beskrivningarna av dimensionella enheter som anställd, kund, produkt, leverantör, plats och andra. Under 30 år av att studera denna fråga har jag funnit att endast tre olika typer av svar behövs. Jag kallar dessa långsamt föränderliga dimension (SCD) typer 1, 2 och 3. I förra månadens kolumn beskrev jag typ 1, som skriver över den ändrade informationen i dimensionen., I denna kolumn beskriver jag typerna 2 och 3.
typ 2: Lägg till en ny Dimensionspost
låt oss ändra scenariot i föregående kolumn där jag överskred fältet hemstad i Ralph Kimballs anställd rekord för att anta att Ralph Kimball faktiskt flyttade från Santa Cruz till Boulder Creek den 18 juli 2008. Anta att vår policy är att noggrant spåra de anställdas hemadresser i datalagret. Detta är en klassisk typ 2 förändring.
typ 2 SCD kräver att vi utfärdar en ny anställd rekord för Ralph Kimball effektiv 18 juli 2008., Detta har många intressanta biverkningar:
- typ 2 kräver att vi generaliserar huvudnyckeln för den anställde dimensionen. Om Ralph Kimball anställd natural key är G446, då den naturliga nyckeln kommer att vara ” lim ” som håller Ralph Kimball flera poster tillsammans. Jag rekommenderar inte att du skapar en smart primärnyckel för typ 2 SCDs som innehåller den bokstavliga naturliga nyckeln. Problemen med smarta nycklar blir särskilt uppenbara om du integrerar flera inkompatibla HR-system med olika formaterade naturliga nycklar., Snarare bör du skapa helt konstgjorda primära nycklar som helt enkelt sekventiellt tilldelas heltal. Vi kallar dessa nycklar surrogatnycklar. Du måste skapa en ny primärnyckel för surrogat när du bearbetar en typ 2-förändring i en dimension.
- förutom den primära surrogatnyckeln rekommenderar jag att du lägger till ytterligare fem fält till en dimension som genomgår typ 2-behandling. Dessa fält visas i Figur 1. Datetimes är heltidsstämplar som representerar tidsperioden mellan när förändringen blev effektiv och när nästa förändring blir effektiv., Den End-effective-datetime för en typ 2-dimensionspost måste vara exakt lika med begin-effective-datetime för nästa ändring för den dimensionsmedlemmen. Den mest aktuella dimensionsposten måste ha en end-effective-datetime lika med en fiktiv datetime långt i framtiden. Anledningen till ändringen ska dras från en förplanerad lista över orsaker till en förändring, i vårt exempel till de anställdas attribut. Slutligen ger den nuvarande flaggan ett snabbt sätt att isolera exakt den uppsättning dimensionsmedlemmar som gäller vid frågetillfället., Dessa fem administrativa fält tillåter slutanvändare och applikationer att utföra många kraftfulla frågor.
- med en dimension som genomgår typ 2-bearbetning måste stor försiktighet vidtas för att använda rätt moderna surrogatnycklar från denna dimension i alla drabbade faktatabeller. Detta säkerställer att de korrekta dimensionsprofilerna är förknippade med faktabordsaktivitet. Extract, transform and load (ETL) – processen för att anpassa dimensionstabellerna med faktatabeller vid laddningstid kallas surrogatnyckelpipelinen och omfattas i stor utsträckning i mina artiklar och böcker.,
typ 3: Lägg till ett nytt fält
Även om Scd: erna typ 1 och 2 är de primära arbetshästteknikerna för att svara på förändringar i en dimension behöver vi en tredje teknik för att hantera alternativa realiteter. Till skillnad från fysiska attribut som endast kan ha ett värde vid en tidpunkt kan vissa användartilldelade attribut legitimt ha mer än ett tilldelat värde beroende på observatörens synvinkel. Till exempel kan en produktkategori ha mer än en tolkning., I en pappershandel kan en märkpenna tilldelas hushållsartikelkategorin eller art supplies-kategorin. Slutanvändare och applikationer måste kunna välja vid frågetid vilken av dessa alternativa realiteter som gäller.
kravet på en alternativ verklighetsvy av ett dimensionsattribut åtföljs vanligtvis av ett subtilt krav på att separata versioner av verkligheten alltid är tillgängliga i det förflutna och i framtiden, även om begäran om att göra dessa realiteter synliga anlände till datalagret idag.,
i den enklaste variationen finns det bara en alternativ-verklighet. I det här fallet, för produktkategoriexempel, lägger vi till ett nytt fält i dimensionen, kanske kallad alternativ Kategori. Om den primära kategorin av vår märkpenna brukade vara hushållsartiklar och nu borde vara konstmaterial, då i en typ 3-behandling trycker vi på hushållsartiketten i fältet alternativ kategori och vi uppdaterar det vanliga Kategorifältet med konstmaterial genom att skriva över. Överskriftsteget liknar en typ 1 SCD och provocerar alla samma försiktighetsåtgärder i förra månadens kolumn.,
med typ 3-maskiner på plats kan slutanvändare och applikationer växla sömlöst mellan dessa alternativa realiteter. Om miljön kräver mer än en alternativ verklighet kan detta tillvägagångssätt generaliseras genom att lägga till fler alternativa fält, även om detta tillvägagångssätt uppenbarligen inte skala graciöst bortom några val.
de tre SCD-metoderna för hantering av tidsvarians i dimensioner har enorm tillämplighet i de verkliga situationer som datalagret stöter på., Typ 2, i synnerhet, tillåter oss att göra bra på datalagret löfte att bevara historien troget.