de eigenaar van het datawarehouse moet beslissen hoe te reageren op de veranderingen in de beschrijvingen van dimensionale entiteiten zoals werknemer, klant, Product, leverancier, locatie en anderen. In de dertig jaar dat ik deze kwestie heb bestudeerd, heb ik vastgesteld dat er slechts drie verschillende soorten antwoorden nodig zijn. Ik noem deze langzaam veranderende dimensie (SCD) Types 1, 2 en 3. In de kolom van vorige maand beschreef ik Type 1, dat de gewijzigde informatie in de dimensie overschrijft., In deze kolom beschrijf ik de typen 2 en 3.
Type 2: Voeg een nieuw Dimensierecord toe
laten we het scenario van de vorige kolom wijzigen waarin ik het veld thuisstad overschrijf in Ralph Kimball ‘ s werknemersrecord om aan te nemen dat Ralph Kimball daadwerkelijk van Santa Cruz naar Boulder Creek verhuisde op 18 juli 2008. Neem aan dat ons beleid is om nauwkeurig te volgen de werknemer huisadressen in het datawarehouse. Dit is een klassieke type 2 verandering.
De type 2 SCD vereist dat we een nieuw werknemersrecord uitgeven voor Ralph Kimball met ingang van 18 juli 2008., Dit heeft vele interessante bijwerkingen:
- Type 2 vereist dat we de primaire sleutel van de Werknemersdimensie veralgemenen. Als Ralph Kimball ’s werknemer natuurlijke sleutel g446 is, dan zal die natuurlijke sleutel de “lijm” zijn die Ralph Kimball ‘ s meerdere records bij elkaar houdt. Ik raad niet aan om een slimme primaire sleutel te maken voor type 2 SCDs die de letterlijke natuurlijke sleutel bevat. De problemen met smart keys worden vooral duidelijk als u meerdere incompatibele HR-systemen integreert met anders geformatteerde natural keys., In plaats daarvan zou je volledig kunstmatige primaire sleutels moeten maken die eenvoudig opeenvolgend gehele getallen zijn toegewezen. We noemen deze sleutels surrogaatsleutels. Je moet een nieuwe surrogaat primaire sleutel maken wanneer je een type 2 verandering in een dimensie verwerkt.
- naast de primaire surrogaatsleutel adviseer ik om vijf extra velden toe te voegen aan een dimensie die type 2-verwerking ondergaat. Deze velden zijn weergegeven in Figuur 1. De datetimes zijn full time stempels die de tijdspanne tussen wanneer de verandering effectief werd en wanneer de volgende verandering effectief wordt vertegenwoordigen., De eind-effectieve-datetime van een type 2 dimensierecord moet exact gelijk zijn aan de begin-effectieve-datetime van de volgende verandering voor dat dimensielid. De meest actuele dimensie record moet een end-effective-datetime gelijk aan een fictieve datetime ver in de toekomst. De redentekst voor de verandering moet worden getrokken uit een vooraf geplande lijst van redenen voor een verandering, in ons voorbeeld, naar de attributen van de werknemer. Tot slot biedt de huidige vlag een snelle manier om precies de set van dimensie leden te isoleren die van kracht is op het moment van de query., Deze vijf administratieve velden kunnen eindgebruikers en applicaties om veel krachtige query ‘ s uit te voeren.
- bij een dimensie die een Type 2-verwerking ondergaat, moet grote zorg worden besteed aan het gebruik van de juiste eigentijdse surrogaatsleutels uit deze dimensie in elke betrokken feittabel. Dit zorgt ervoor dat de juiste maatprofielen worden geassocieerd met fact table activiteit. Het extract, transform and load (ETL) proces voor het uitlijnen van de dimensietabellen met feittabellen tijdens het laden wordt de surrogaatsleutelpijplijn genoemd en wordt uitgebreid behandeld in mijn artikelen en boeken.,
Type 3: Voeg een nieuw veld toe
hoewel de SCD ‘ s Type 1 en 2 de primaire werkpaard technieken zijn om te reageren op veranderingen in een dimensie, hebben we een derde techniek nodig voor het omgaan met alternatieve realiteiten. In tegenstelling tot fysieke attributen die slechts één waarde op een punt in de tijd kunnen hebben, kunnen sommige door de gebruiker toegewezen attributen rechtmatig meer dan één toegewezen waarde hebben, afhankelijk van het standpunt van de waarnemer. Een productcategorie kan bijvoorbeeld meer dan één interpretatie hebben., In een briefpapier winkel, een markering pen kan worden toegewezen aan de categorie Huishoudelijke goederen of de categorie kunstbenodigdheden. Eindgebruikers en applicaties moeten in staat zijn om op het moment van de vraag te kiezen welke van deze alternatieve realiteiten van toepassing is.
de eis voor een alternate reality view van een dimensie attribuut gaat meestal gepaard met een subtiele eis dat afzonderlijke versies van de werkelijkheid te allen tijde beschikbaar zijn in het verleden en in de toekomst, ook al is het verzoek om deze realiteiten zichtbaar te maken vandaag in het Data warehouse aangekomen.,
in de eenvoudigste variatie is er slechts één alternatieve-realiteit. In dit geval, voor het productcategorie voorbeeld, voegen we een nieuw veld toe in de dimensie, misschien alternatieve categorie genoemd. Als de primaire categorie van onze markeerpen vroeger huishoudelijke artikelen waren en nu kunstbenodigdheden zouden moeten zijn, dan duwen we in een type 3-behandeling het huishoudengoedlabel in het alternatieve categorieveld en werken we het reguliere categorieveld bij met kunstbenodigdheden door het overschrijven. De overschrijvingsstap is vergelijkbaar met een type 1 SCD en veroorzaakt allemaal dezelfde kanttekeningen in de kolom van vorige maand.,
met machines van Type 3 kunnen eindgebruikers en toepassingen naadloos schakelen tussen deze alternatieve werkelijkheden. Als de omgeving meer dan één alternatieve werkelijkheid vereist, kan deze benadering worden veralgemeend door meer alternatieve velden toe te voegen, hoewel deze benadering uiteraard niet gracieus verder gaat dan een paar keuzes.
De drie SCD-benaderingen voor het verwerken van tijdsvariantie in afmetingen zijn enorm toepasbaar in de reële situaties die het datawarehouse tegenkomt., Type 2, in het bijzonder, stelt ons in staat om goed te maken op de data warehouse belofte om de geschiedenis trouw te bewaren.