Overslaan en naar de inhoud gaan

📕 Download ons e-book 'De Lusten en Lasten van een Dataplatform'

Stan
30-09-2024 - 4 min

In 5 stappen naar een krachtig stermodel

Stermodelleren (www.KimballGroup.com) is een buzzword dat je tegenwoordig in bijna elk CV van een data engineer ziet staan. Echter, in de praktijk merk ik dat veel professionals vaak worstelen met waar ze moeten beginnen, of dat ze cruciale stappen overslaan. In deze blog wil ik het belang van een goed stermodel uitleggen en een duidelijk stappenplan presenteren om dit aan te pakken.

1. Begin bij het einde: de business

Het stermodel moet uiteindelijk dienen voor een doel, en dat doel komt altijd vanuit de business. Voordat je ook maar begint met het modelleren van data, is het essentieel dat je de businessdoelstellingen goed begrijpt. Dit betekent dat je diepgaand in gesprek moet gaan met de stakeholders. Vraag door: wat willen ze echt bereiken? Welke beslissingen willen ze nemen op basis van de data? Welke KPI's zijn belangrijk?

2. Business matrix: de brug tussen business processen en dimensies

Een goede business (bus) matrix is onmisbaar in het proces van stermodelleren. Het helpt je om de businessprocessen en dimensies op een gestructureerde manier in kaart te brengen. De processen die je wilt meten, zoals verkopen, budgetten en productvoorraden vormen de rijen. De dimensies, zoals klant, product en datum komen in de kolommen. Dit zijn de assen waarop je wilt filteren in het uiteindelijke rapport. Gebruik ook bestaande rapporten om beter te begrijpen wat de informatiebehoefte is. Vaak helpt een “mock-up” om beter tot de kern van de behoefte te komen.

Tabel voor stermodel

Bron: https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques

3. Het ontwerpen van een stermodel op tabelniveau

Zodra de busmatrix klaar is, is de stap naar de benodigde feiten- en dimensietabellen klein. De feiten in je model zijn de gebeurtenissen die je meet, zoals factuurregels. Een "business proces" kan 1 of meerdere "feit" tabellen hebben afhankelijk van de informatiebehoeften. Het is hier van cruciaal belang dat de "granulariteit" van elk van de feit tabellen bekend is. Bedenk voor dimensietabellen of deze alleen de laatste versie van een attribuut moet opslaan of ook historie moet bijhouden (slowly changing dimension).

Probeer een "snowflake"-structuur zoveel mogelijk wilt vermijden. In een stermodel zijn de dimensies direct gekoppeld aan de feitentabel, wat zorgt voor eenvoud en snelheid in analyses. 

4. Bepaal kolommen per tabel en onderzoek de bronvelden

De volgende stap is om te bepalen welke kolommen in elke tabel moeten komen. In de feitentabel staan in principe alleen metrieken (zoals een bedrag) en verwijzingen naar de dimensietabellen (foreign keys). In sommige gevallen kun je ook een "gedegenereerde dimensie" opnemen. Bedenk wat de business kolom(men) is/zijn en of het nodig is om een surrogaatsleutel op te nemen. Dit is bijvoorbeeld voor feitentabellen niet altijd nodig. [https://www.kimballgroup.com/2006/07/design-tip-81-fact-table-surrogate-key/]  Zorg ervoor dat je datatypes correct definieert: metrieken moeten bijvoorbeeld altijd numeriek zijn, zodat je ermee kunt rekenen.

Stermodel gevisualiseerd

Bron: https://learn.microsoft.com/nl-nl/power-bi/guidance/star-schema

Daarnaast is het belangrijk om per kolom te onderzoeken waar de bronvelden vandaan komen en welke logica nodig is om de juiste waarden te berekenen. Een handige tool hiervoor is een eenvoudige Excel-sheet waarin je de volgende kolommen bijhoudt: tabelnaam, kolomnaam, datatype, brontabel, bronveld, logica.

5. Standaardiseer het bouwen van de tabellen

Om consistentie en efficiĂ«ntie te waarborgen, is het verstandig om een template te gebruiken bij het standaardiseren van de queries. Dit kan bijvoorbeeld een Python-library zijn die standaardbewerkingen uitvoert, zoals het genereren van ‘onbekend’ regels of het samenvoegen van nieuwe data met eerdere versies van de tabel. Ook afspraken rondom naamgevingconventies zijn hierin essentieel. Dit maakt het ontwikkelen en interpreteren van het model makkelijker. In een volgende blog zal ik dieper ingaan op hoe je zo'n template kunt opzetten en gebruiken om je ontwikkelproces te optimaliseren.

Conclusie

Het opzetten van een goed stermodel hoeft geen complex proces te zijn, zolang je een gestructureerde aanpak volgt. Door deze vijf stappen te volgen, zorg je ervoor dat je model niet alleen technisch klopt, maar ook echt waarde toevoegt aan de business. Bij Creates zijn we gespecialiseerd in het bouwen van effectieve datamodellen en denken we graag met je mee. Aan onze tafel is er altijd plek voor een goed gesprek!

Over de schrijver

Stan

Stan Verwer: "Empowering people with data"

LinkedIn