eieren av data warehouse må bestemme hvordan de skal reagere på endringer i beskrivelser av dimensjonal enheter som Ansatt, Kunde, Produkt, Leverandør, Beliggenhet og andre. I 30 år for å studere dette problemet, har jeg funnet ut at det kun er tre ulike typer tiltak er nødvendig. Jeg kaller disse for sakte endre dimensjon (SCD) Type 1, 2 og 3. I forrige måned kolonnen, jeg beskrevet Type 1, som overskriver endret informasjon i dimensjon., I denne kolonnen, jeg beskrive type 2 og 3.
Type 2: Legg til en Ny Dimensjon Opptak
La oss endre scenariet av den forrige kolonnen der jeg overskriver Hjemsted feltet i Ralph Kimballs ansatt posten til å anta at Ralph Kimball faktisk flyttet fra Santa Cruz til Boulder Creek på juli 18, 2008. Anta vår policy er å nøyaktig spore ansattes privatadresser i data warehouse. Dette er en klassisk Type 2 endring.
Type 2 SCD krever at utsteder vi en ny medarbeider rekord for Ralph Kimball effektiv juli 18, 2008., Dette har mange interessante bivirkninger:
- Type 2 krever at vi generaliserer primærnøkkel av den Ansatte dimensjon. Hvis Ralph Kimballs ansatt naturlig nøkkelen er G446, så det naturlige nøkkelen vil være «limet» som holder Ralph Kimballs flere poster sammen. Jeg vil ikke anbefale å lage en smart primærnøkkel for Type 2 SCDs som inneholder bokstavelig naturlig tasten. Problemene med smart-tastene blir spesielt tydelig hvis du er å integrere flere inkompatible HR-systemer med forskjellig formatert naturlig tastene., Snarere, bør du lage helt kunstig primærnøklene som er rett og slett sekvensielt tildelt heltall. Vi kaller disse tastene surrogat-tastene. Du må lage en ny surrogat primær-tasten når du behandler en Type 2 endring i en dimensjon.
- I tillegg til de primære surrogat-tasten, anbefaler jeg å legge til fem ekstra felt til en dimensjon som er under Type 2-behandling. Disse feltene er vist i Figur 1. Den datetimes er i full gang frimerker som representerer tidsrommet mellom når endringen trådte i kraft og når den neste endringen trer i kraft., Slutten-effektiv-datetime av en Type 2 dimensjon-posten må være nøyaktig lik de begynner-effektiv-datetime av de neste endring for at dimensjon medlem. De mest aktuelle dimensjon-posten må ha en ende-effektiv-datetime lik et fiktivt datetime langt i fremtiden. Grunnen til tekst for endringen bør være hentet fra en preplanned listen over årsaker til at en endring, i vårt eksempel, til de ansattes egenskaper. Til slutt, til dagens-flagget gir en rask måte å isolere akkurat sett av dimensjon medlemmer som er i kraft på tidspunktet for søket., Disse fem administrative felt tillate sluttbrukere og programmer for å utføre mange kraftige spørringer.
- Med en dimensjon som gjennomgår behandling av Type 2, stor forsiktighet må utvises for å bruke riktig moderne surrogat-nøkler fra denne dimensjonen i alle berørte faktum bordet. Dette sikrer at riktig dimensjon profiler er forbundet med faktum tabell aktivitet. Extract, transform, og load (ETL) prosessen for å justere dimensjon bord med faktum bord ved innlasting kalles surrogat-tasten rørledning og er dekket mye i mine artikler og bøker.,
Type 3: Legge til et Nytt Felt
Selv om Type 1 og 2 SCDs er den primære arbeidshest teknikker for å reagere på endringer i en dimensjon, vi trenger en tredje teknikk for håndtering av alternative virkeligheter. I motsetning til fysiske attributter som bare har en verdi på et tidspunkt, noen bruker-tilordnet attributter kan legitimt har mer enn én tilordnet verdi avhengig av observer ‘ s point of view. For eksempel, et produkt kategori kan ha mer enn en tolkning., I en skrivesaker butikk, en merking penn kan være tilordnet til husholdningsvarer og varer kategori eller kunst forsyninger kategori. Slutten brukere og programmer trenger å være i stand til å velge i søket gang hvilket av disse alternative virkeligheter gjelder.
behovet for en alternativ virkelighet visning av en dimensjon attributt vanligvis er ledsaget av en subtil krav om at forskjellige versjoner av virkeligheten være tilgjengelig til enhver tid i fortiden og i fremtiden, selv om forespørsel om å gjøre disse realitetene synlig kommet til data warehouse i dag.,
I den enkleste varianten, det er bare en alternativ virkelighet. I dette tilfellet, for det produktet kategori eksempel, vil vi legge til et nytt felt i dimensjon, som kanskje heter Alternative Kategori. Hvis den primære kategorien av våre merkepenn pleide å være husholdningsvarer og nå bør være kunst forsyninger, så i en Type 3 behandling, som vi skyver den husholdningsvarer og varer etiketten til den Alternative Kategorien feltet, og vi oppdaterer jevnlig Kategori feltet med kunst-rekvisita ved å overskrive. Den overskrive trinn er lik en Type 1 SCD og provoserer alle de samme begrensningene som i forrige måned kolonne.,
Med Type 3 maskiner i stedet, avslutter brukere og programmer kan bytte sømløst mellom disse alternative virkeligheter. Hvis miljøet krever mer enn ett alternativ virkelighet, denne tilnærmingen kan utvides ved å legge til flere Alternative felt, selv om det åpenbart at denne tilnærmingen ikke skalere grasiøst forbi et par alternativer.
De tre SCD tilnærminger til håndtering tid variasjon i dimensjoner har enorme anvendelse i den virkelige situasjoner oppstått ved data warehouse., Type 2, i særdeleshet, og gir oss mulighet til å gjøre gode på data warehouse løfte om å bevare historien trofast.