Direct naar hoofdinhoud

Welke types Slowly Changing Dimensions (SCD) zijn er?

Dimensies met lijnen van een netwerk
Filter: managed services
Filter: data & ai
delen

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:

Scroll onderstaande tabel om meer te zien
ID Naam Plaats
132876 Rob Utrecht

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.

Scroll onderstaande tabel om meer te zien
ID Naam Plaats
132876 Rob Utrecht

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.

Scroll onderstaande tabel om meer te zien
ID Naam Plaats
132876 Rob  Zeist

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.

Scroll onderstaande tabel om meer te zien
ID Naam Plaats
132876 Rob Utrecht
132876 Rob Zeist

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:

  1. 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.
  2. Current Flag: dit is een eenvoudige methode om aan te geven wat de huidige record is.
  3. Start Date: de datum vanaf wanneer dat specifieke record actief is.
  4. End Date: de datum tot wanneer dat specifieke record actief is.
Scroll onderstaande tabel om meer te zien
Surrogate key ID Naam Plaats Current flag Record start date Record end date
1 132876 Rob Utrecht 0 12-01-2014 17-04-2023
2 132876 Rob Zeist 1 17-04-2023 NULL

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.

 

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.

Scroll onderstaande tabel om meer te zien
ID Naam Plaats Vorige plaats
132876 Rob Zeist Utrecht

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:

Scroll onderstaande tabel om meer te zien
ID Naam Plaats
132876 Rob Zeist

De type 4 historietabel:

Scroll onderstaande tabel om meer te zien
Surrogate key ID Naam Plaats Create date
1 132876 Rob Utrecht 12-01-2014
2 132876 Rob Zeist 17-04-2023

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.

Scroll onderstaande tabel om meer te zien
Surrogate key ID Naam Plaats Vorige plaats Current flag Record start date Record end date
1 132876 Rob Zeist Utrecht 0 12-01-2014 17-04-2023
2 132876 Rob Zeist Zeist 1 17-04-2023 NULL

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.

Wil je meer weten over het bijhouden van datahistorie of over datawarehousing in het algemeen?

Laat je gegevens achter en dan nemen wij contact met je op.

meer blogs in managed services en data & AI