Iedere organisatie slaat dagelijks grote hoeveelheden aan data op. Je wil goede inzichten uit deze data halen door middel van Business Intelligence. Het is belangrijk om vooraf goed na te denken over welke data je nodig hebt voor de inzichten die je wil verkrijgen. Eén van die aspecten is datahistorie. Heb je historische (oude) data nodig voor de gewenste rapportages? Dan moet je goed nadenken hoe je dit in je datawarehouse opslaat. Welkom in de wereld van Slowly Changing Dimensions, ook wel SCD genoemd.
Slowly Changing Dimensions
Slowly changing dimensions (SCDs) zijn een belangrijk concept in datawarehousing. Ze stellen je in staat om historische veranderingen in data op te slaan. Zo analyseer je hoe deze veranderingen in de loop van de tijd hebben plaatsgevonden. Er zijn zes typen slowly changing dimensions: Type 0, Type 1, Type 2, Type 3, Type 4 en Type 6. Het is belangrijk om vooraf goed te bedenken welk type je in jouw datawarehouse wil gebruiken om te voorkomen dat je performanceproblemen ervaart in je datawarehouse en dashboards.
Praktische voorbeelden
Laten we deze soorten Slowly Changing Dimensions toelichten aan de hand van een voorbeeld. Je beschikt in je organisatie over klantgegevens zoals bijvoorbeeld naam en woonplaats. Je hebt in je datawarehouse een dimensie met twee attributen: Naam en Plaats:
Je klant, Rob, verhuist van Utrecht naar Zeist en hij informeert jouw organisatie over deze verhuizing. De dimensie moet worden bijgewerkt naar aanleiding van deze verhuizing. Dit kan je op verschillende manieren doen dankzij de verschillende type Slowly Changing Dimensions. Ieder type heeft zijn eigen voor- en nadelen.
Slowly Changing Dimension (SCD) Type 0
Bij een type 0 SCD blijft de data ongewijzigd. In het systeem blijft de plaats Utrecht gekoppeld aan Rob. Alle toekomstige interacties met Rob blijven geassocieerd met Utrecht en niet met zijn nieuwe woonplaats Zeist.
Slowly Changing Dimension (SCD) Type 1
Bij een type 1 SCD wordt Utrecht vervangen door Zeist. Vanaf nu zijn alle interacties met Rob geassocieerd met zijn nieuwe woonplaats Zeist. Ook interacties uit het verleden toen hij nog in Utrecht woonde. Dit is een prima methode als het niet belangrijk is om te weten in welke plaats Rob voorheen woonde.
Slowly Changing Dimension (SCD) Type 2
Bij een type 2 SCD voeg je de nieuwe woonplaats als extra regel toe. Je overschrijft de oude woonplaats dus niet. Het voordeel van type 2 is dat het je in staat stelt om te rapporteren op basis van historische data.
Alleen het toevoegen van deze nieuwe regel is nog niet voldoende om goed te kunnen rapporteren. Welke van de twee regels is nu de actuele? Om deze type 2 wijzigingen te kunnen verwerken, moeten we 4 nieuwe kolommen aanmaken:
- Surrogate Key: de originele ID waarde voldoet niet meer. Daarom moeten we een nieuwe ID aanmaken. Anders kunnen we de twee regels niet onderscheiden. Door de originele kolom met ID wel te bewaren, blijft Rob te herkennen aan deze ID waarde.
- Current Flag: dit is een eenvoudige methode om aan te geven wat de huidige record is.
- Start Date: de datum vanaf wanneer dat specifieke record actief is.
- End Date: de datum tot wanneer dat specifieke record actief is.
Als het voor je organisatie belangrijk is om over deze historische data te beschikken, is een type 2 SCD de meest gebruikte methode om historische data op te slaan. Het nadeel van type 2 is echter dat het zorgt voor meer werkzaamheden op gebied van beheer, hogere opslagkosten en dat het mogelijk consequenties heeft voor de performance van je dataomgeving. Het is daarom belangrijk om vooraf goed na te denken over de toepassing van je data. Op basis van die afweging maak je de keuze of en hoe je historische data wil opslaan.
Lees ook:
Verklein je dataset en los problemen met performance op
Slowly Changing Dimension (SCD) Type 3
Bij een type 3 SCD voeg je alleen een nieuwe kolom toe, genaamd “Vorige plaats” en update je de kolom Plaats met de nieuwe woonplaats. Het nadeel hiervan is echter dat je niet weet op welke datum de klant verhuisd is. Daarnaast moet je iedere keer als de klant wéér verhuist, weer een nieuwe kolom Vorige Vorige plaats toevoegen, etc.
Slowly Changing Dimension (SCD) Type 4
Bij een type 4 SCD blijft de tabel intact en update je de record alsof je een type 1 wijziging doorvoert. Het verschil is echter dat je ook direct een extra historietabel aanmaakt waarin je de historische wijzigingen opslaat en bijhoudt.
De type 1 tabel:
De type 4 historietabel:
Door de datahistorie los te trekken, verklein je de dimensies en verbeter je de performance. In de meeste gevallen heb je namelijk alleen de huidige waarde nodig. Wanneer je echter toch historische data nodig hebt, zorgt deze structuur voor extra complexiteit. Het is in veel gevallen beter om type 2 te gebruiken in plaats van type 4.
Slowly Changing Dimension (SCD) Type 6
Een type 6 SCD is eigenlijk een hybride methode waarbij je alle technieken van types 1, 2 en 3 (1+2+3=6) toepast. Hierbij behoud je de historie van alle wijzigingen en update je tegelijkertijd een “current value” kolom voor alle records. Op deze manier beschik je over een complete wijzigingshistorie zonder dat er aanvullende berekeningen nodig zijn.
Het nadeel van een SCD type 6 is dat het meer opslagruimte vereist. Dit leidt tot inefficiënt gebruik van opslagruimte en tot verhoogde kosten voor opslag en onderhoud. Bovendien wordt het beheer van een hybride SCD complexer, met verhoogde complexiteit en hogere onderhoudskosten tot gevolg.
Conclusie
In deze blog hebben we het gehad over Slowly Changing Dimensions (SCD) en de verschillende SCD-types die worden gebruikt in datawarehousing. Het beheer van veranderingen in de tijd van dimensionele gegevens is een belangrijk onderwerp voor organisaties die waarde willen halen uit hun gegevens.
Het kiezen van het juiste SCD-type is afhankelijk van verschillende factoren. Denk bijvoorbeeld de aard van de gegevens, hoe vaak gegevens veranderen, de noodzaak om historische gegevens te behouden en de vereisten van de organisatie. Het is ook belangrijk om de complexiteit van het beheer van de verschillende SCD-types te overwegen, aangezien complexere types meer opslagruimte en onderhoud vereisen. Kies zorgvuldig een type Slowly Changing Dimensions bij het ontwerpen van een datawarehouse, om te zorgen voor nauwkeurige en betrouwbare gegevens over een langere periode.
Boek direct een gratis adviesgesprek met Peter
✔ kies zelf je dag en tijd ✔ gratis en zonder verplichtingen
Meer weten?
Wil je meer weten over het bijhouden van datahistorie of over datawarehousing in het algemeen? Neem dan vrijblijvend contact met ons op. Eén van onze specialisten neemt binnen één werkdag contact met je op. Of plan direct zelf een gratis adviesgesprek in op een dag en tijd die jou het best uitkomt.