ejeren af data warehouse skal beslutte, hvordan den skal reagere på ændringer i beskrivelser af dimensionelle enheder som Medarbejder -, Kunde -, Produkt -, Leverandør, Beliggenhed og andre. I 30 år med at studere dette problem har jeg fundet ud af, at der kun er behov for tre forskellige slags svar. Jeg kalder disse langsomt skiftende dimension (SCD) typer 1, 2 og 3. I sidste måneds kolonne beskrev jeg Type 1, som overskriver de ændrede oplysninger i dimensionen., I denne kolonne beskriver jeg Type 2 og 3.
Type 2: Tilføj en Ny Dimension Registrere
Lad os ændre scenariet af den tidligere kolonne, hvor jeg overwrote Hjemmet Byen feltet i Ralph Kimballs medarbejder registrerer at antage, at Ralph Kimball faktisk flyttet fra Santa Cruz til Boulder Creek på juli 18, 2008. Antag, at vores politik er at nøjagtigt spore medarbejderens hjemmeadresser i datavarehuset. Dette er en klassisk type 2 Ændring.
Type 2 SCD kræver, at vi udsteder en ny medarbejderrekord til Ralph Kimball med virkning fra 18.juli 2008., Dette har mange interessante bivirkninger:
- Type 2 kræver, at vi generaliserer den primære nøgle i Medarbejderdimensionen. Hvis Ralph Kimballs medarbejder natural key er G446, så er den naturlige nøgle den “lim”, der holder Ralph Kimballs flere poster sammen. Jeg anbefaler ikke at oprette en smart primær nøgle til Type 2 SCD ‘ er, der indeholder den bogstavelige naturlige nøgle. Problemerne med smart keys bliver især indlysende, hvis du integrerer flere inkompatible HR-systemer med forskelligt formaterede naturlige nøgler., I stedet skal du oprette helt kunstige primære nøgler, der simpelthen er sekventielt tildelt heltal. Vi kalder disse nøgler surrogat nøgler. Du skal lave en ny surrogat primær nøgle, når du behandler en Type 2 Ændring i en dimension.
- ud over den primære surrogatnøgle anbefaler jeg at tilføje fem yderligere felter til en dimension, der gennemgår type 2-behandling. Disse felter er vist i Figur 1. Datetimerne er fuldtidsstempler, der repræsenterer tidsrummet mellem, hvornår ændringen blev effektiv, og hvornår den næste ændring træder i kraft., Slut-effektiv-datetime for en Type 2 dimensionsoptegnelse skal være nøjagtigt lig med begyndelseseffektiv-datetime for den næste ændring for det dimensionsmedlem. Den mest aktuelle dimensionspost skal have en sluteffektiv datetime svarende til en fiktiv datetime langt i fremtiden. Årsagsteksten til ændringen skal trækkes fra en forudplanlagt liste over årsager til en ændring, i vores eksempel, til medarbejderattributterne. Endelig giver det nuværende flag en hurtig måde at isolere nøjagtigt det sæt dimensionsmedlemmer, der er i kraft i øjeblikket af forespørgslen., Disse fem administrative felter giver slutbrugere og applikationer mulighed for at udføre mange kraftfulde forespørgsler.
- med en dimension, der gennemgår type 2-behandling, skal der udvises stor omhu for at bruge de korrekte moderne surrogatnøgler fra denne dimension i enhver berørt faktabord. Dette sikrer, at de korrekte dimensionsprofiler er forbundet med faktabordaktivitet. E extracttract, transform and load (ETL) – processen til justering af dimensionstabellerne med faktaborde ved belastningstid kaldes surrogatnøglerørledningen og er omfattende dækket i mine artikler og bøger.,
Type 3: Tilføj et Nyt Felt
Selv om Type 1 og 2 SCDs er den primære arbejdshest teknikker til at reagere på ændringer i en dimension, vi har brug for en tredje teknik til håndtering af alternative virkeligheder. I modsætning til fysiske attributter, der kun kan have en værdi ad gangen, kan nogle brugertildelte attributter legitimt have mere end en tildelt værdi afhængigt af observatørens synspunkt. For eksempel kan en produktkategori have mere end en fortolkning., I en brevpapirbutik kunne en mærkepen tildeles kategorien husholdningsartikler eller kategorien kunstforsyninger. Slutbrugere og applikationer skal kunne vælge på forespørgselstidspunktet, hvilken af disse alternative virkeligheder der gælder.
kravet om en alternativ virkelighed udsigt over en dimension attribut normalt er ledsaget af en subtil krav om, at separate versioner af virkeligheden være tilgængelige på alle tidspunkter i fortiden og i fremtiden, selv om anmodningen om at gøre disse realiteter synlige ankom til data warehouse i dag.,
i den enkleste variation er der kun en alternativ virkelighed. I dette tilfælde tilføjer vi for eksempel produktkategorien et nyt felt i dimensionen, måske kaldet alternativ Kategori. Hvis den primære kategori af vores markeringspen plejede at være husholdningsartikler og nu skulle være kunstforsyninger, derefter i en type 3-behandling, skubber vi husholdningsartiklen ind i feltet Alternativ kategori, og vi opdaterer det almindelige Kategorifelt med kunstforsyninger ved at overskrive. Overskrivningstrinnet ligner en type 1 SCD og provokerer alle de samme advarsler i sidste måneds kolonne.,
med type 3 maskiner på plads, kan slutbrugere og applikationer skifte problemfrit mellem disse alternative virkeligheder. Hvis miljøet kræver mere end en alternativ virkelighed, denne tilgang kan generaliseres ved at tilføje flere alternative felter, skønt denne tilgang naturligvis ikke skalerer yndefuldt ud over nogle få valg.
de tre SCD-tilgange til håndtering af tidsvarians i dimensioner har enorm anvendelighed i de virkelige situationer, som datavarehuset støder på., Type 2, i særdeleshed, giver os mulighed for at gøre godt på data warehousearehouse løfte om at bevare historien trofast.