Power Query onder de knie krijgen: platte data omzetten naar een sterschema
By Mirko Peters · · Updated
Welkom terug bij de bijbehorende blog van de podcast! In dit artikel duiken we diep in de technische kant van datamodellering. Als je ooit een enorme, platte datadump uit een enterprisesysteem hebt overgenomen, waarin elke transactie klantnamen, productcategorieën en geografische locaties opnieuw herhaalt, een miljoen keer, dan ken je de pijn die dat oplevert voor je rapporten. Trage prestaties, o
Automatically translated with AI from the original post. Read the English original
Welkom terug bij de bijbehorende blog van de podcast! In dit artikel duiken we diep in de technische kant van datamodellering. Als je ooit een enorme, platte datadump uit een enterprisesysteem hebt overgenomen, waarin elke transactie klantnamen, productcategorieën en geografische locaties een miljoen keer herhaalt, dan ken je de pijn die dat oplevert voor je rapporten. Trage prestaties, onduidelijke DAX-formules en opgeblazen bestandsgroottes zijn nog maar het topje van de ijsberg. Gelukkig bestaat er een beproond architectuurpatroon dat professionele BI-ontwikkelaars gebruiken om precies dit probleem op te lossen: het sterschema.
In deze uitgebreide gids laten we zien hoe je een rommelige export uit één tabel omzet naar een schone centrale feitentabel en efficiënte, snelle dimensietabellen, met Power Query. Daarbij behandelen we strategische planning, best practices voor het opschonen van data, het genereren van surrogaatsleutels en optimalisatietechnieken voor het model, zodat je Power BI-rapporten razendsnel worden.
Inleiding tot Power Query en de basis van het sterschema
Bij het bouwen van oplossingen in Microsoft Power BI bepaalt de onderliggende datastructuur alles wat daarna komt. Een sterschema is een volwassen, sterk geoptimaliseerde datamodelleringstechniek waarbij je bedrijfsmetrieken in een centrale feitentabel opslaat, terwijl beschrijvende kenmerken van je bedrijfsentiteiten in omliggende dimensietabellen staan. In een diagram lijkt deze opzet op een ster. De meeste BI-ontwikkelaars kiezen voor deze methode omdat ze daarmee een bi-oplossing krijgen die uitzonderlijk eenvoudig te onderhouden en te schalen is.
Onderzoek laat consequent zien dat deze ontwerpmethode enorm veel oplevert. Zo meldt ongeveer 80% van de Power BI-gebruikers die een sterschemamodel bouwen betere prestaties en een efficiëntere analyse, vergeleken met aanpakken op basis van platte tabellen. Omgekeerd leidt het overslaan van een sterschema tot ernstige wrijvingspunten in je ontwikkelproces:
- Trage queryprestaties door enorme dataredundantie en duplicatie.
- Ingewikkelde DAX-formules door dubbelzinnige of ontbrekende tabelrelaties.
- Moeilijk onderhoud en schaalproblemen zodra er nieuwe bedrijfsdata binnenkomt.
Laten we eerst kijken naar de fundamentele stappen die nodig zijn voordat je ook maar één regel transformatiecode schrijft, zodat je precies weet hoe je je data gaat herstructureren.
Je sterschema plannen
Voordat je transformatiestappen in Power BI gaat schrijven, heb je een duidelijk en doordacht plan nodig voor je sterschema. Zorgvuldige planning voorkomt verwarring, versnelt je rapporten en maakt je model veel makkelijker te onderhouden. Als BI-ontwikkelaar controleer je daarom altijd je gegevensbronnen en breng je het schema in kaart voordat je ruwe, ongestructureerde dumps in Power BI Desktop importeert.
Gegevensbronnen analyseren en belangrijke tabellen identificeren
Begin je architectuurtraject met een grondige review van je ruwe gegevensbronnen. Zoek naar tabellen of platte bestanden met numerieke bedrijfsgebeurtenissen, zoals verkooptransacties, webklikken of voorraadmutaties. Die worden uiteindelijk je centrale feitentabel. Zoek daarna naar kolommen die bedrijfsentiteiten beschrijven, zoals klantnamen, productomschrijvingen, personeelslijsten of kalenderdatums. Die vormen de basis voor je dimensietabellen.
Tip: gebruik voor je tabelkoppelingen altijd numerieke gehele getallen als sleutels. Numerieke sleutels versnellen de queries van de VertiPaq-engine en maken relaties aanzienlijk betrouwbaarder dan matching op basis van tekst.
Zodra je de tabellen hebt geïdentificeerd, teken je een visueel entity-relationshipdiagram. Zorg dat je centrale feitentabel rechtstreeks naar de afzonderlijke dimensietabellen verwijst, en vermijd strikt om twee afzonderlijke feitentabellen rechtstreeks met elkaar te verbinden. Door je model beperkt te houden tot één stap tussen feiten en dimensies voorkom je filterdubbelzinnigheid en blijft je semantisch model overzichtelijk.
Data importeren en opschonen met Power Query
Het importeren van je data in Power BI legt de absolute basis voor een betrouwbaar sterschema. Je moet verbinding maken met je gegevensbronnen, je binnenkomende data opschonen en transformeren, en je tabellen zorgvuldig laden. Power Query fungeert als je belangrijkste werkplek voor datavoorbereiding, waar je informatie kunt vormgeven en verfijnen voordat ze je datamodel bereikt.
Bij het ophalen van gegevens moet je de instellingen voor ‘Laden inschakelen’ in Power Query verstandig gebruiken. Schakel het laden uit voor stagingquery's en tussenliggende hulptabellen, zodat alleen je definitieve, geoptimaliseerde feit- en dimensietabellen het geheugen van je model belasten. Voer daarnaast zoveel mogelijk filter- en transformatiestappen uit zo dicht mogelijk bij de gegevensbron – dit noemt men query folding – zodat je gegevensvernieuwingen razendsnel blijven verlopen.
Gegevens opschonen betekent systematisch fouten verwijderen, opmaakinconsistenties oplossen en tekenreeksen standaardiseren. Controleer kritieke sleutelkolommen voor vreemde sleutels op ontbrekende waarden en corrigeer die meteen. Zorg ervoor dat sleutels in verschillende tabellen exact hetzelfde gegevenstype hebben; dat is een vereiste voor een succesvolle relatiekoppeling.
Dimensietabellen maken en surrogaatsleutels
Een goed ontworpen dimensietabel is de echte ruggengraat van je sterrenschema. Je gebruikt dimensietabellen om rijke contextuele details over je bedrijfsactiviteiten vast te leggen. Om deze dimensies uit een platte gegevensexport te halen, isoleer je de unieke kenmerken van een entiteit en verwijder je dubbele rijen.
Kenmerken extraheren en duplicaten verwijderen
Bij het bouwen van een dimensietabel uit een platte gegevensexport selecteer je alleen de kolommen die relevant zijn voor filteren en groeperen. Een productdimensie isoleert bijvoorbeeld het product-id, de productnaam, de categorie, de subcategorie en de eenheidsprijs. Nadat je deze kolommen hebt geïsoleerd, verwijder je dubbele records zodat elke entiteit precies één keer voorkomt. Unieke rijen zorgen ervoor dat je één-op-veel-relaties werken zonder onverwachte bijwerkingen door kruislingse filtering.
Om je dimensietabellen bestand te maken tegen wijzigingen in brontoepassingen, kun je overwegen surrogaatsleutels te genereren. Een surrogaatsleutel is een kunstmatige, automatisch oplopende gehele kolom die je maakt tijdens de transformatiestappen in Power Query. Door surrogaatsleutels te gebruiken in plaats van wisselvallige natuurlijke tekstsleutels, blijven je historische feitgegevens behouden wanneer beschrijvende gegevens van de bron veranderen – zoals het woonadres van een klant of de naam van een product.
De feittabel opbouwen en aggregeren
Zodra je schone dimensietabellen veilig zijn ingericht, kun je je aandacht richten op de bouw van de kern van je model: de feittabel. De feittabel slaat meetbare, kwantitatieve bedrijfsgebeurtenissen op. Elke rij vertegenwoordigt een specifieke transactie of gebeurtenis op het laagste detailniveau dat je belanghebbenden nodig hebben.
Voor het verwerken van enorme datasets kun je overwegen aggregatietabellen te bouwen, op queryniveau of op het niveau van het datawarehouse. Vooraf aggregeren op maand, regio of productcategorie verkleint het aantal rijen aanzienlijk en versnelt het renderen van visuals. Let er bij het bouwen van je feittabel op dat de granulariteit consistent is. Als je dagelijkse geaggregeerde rijen combineert met individuele transacties op seconde-niveau in dezelfde feittabel, worden je maatwaardeaggregaties onbetrouwbaar en krijg je dubbel geteld.
Relaties configureren en het model optimaliseren
Zodra je tabellen in Power BI zijn geladen, moet je de modelrelaties configureren in de modelweergave. Leg schone één-op-veel-relaties vast, van de ‘één’-kant van je dimensietabellen naar de ‘veel’-kant van je centrale feittabel.
Houd standaard de kruislingse filtering in één richting. Vermijd bidirectionele filtering tenzij dat absoluut noodzakelijk is, want het introduceert complexe filterpaden, verslechtert de prestaties van de VertiPaq-engine en levert vaak onverwachte analyseresultaten op. Controleer je model regelmatig: verwijder ongebruikte kolommen, beperk tekstvelden met hoge cardinaliteit in relaties en zorg ervoor dat je doorlopende agendatabel expliciet is gemarkeerd als datumtabel, zodat tijdintelligentieberekeningen naadloos werken.
Rapporteren en analyseren met je sterrenschema
Uiteindelijk komt al je datamodelleringswerk samen in de rapportagelaag. Wanneer je semantische model als een schoon sterrenschema is opgebouwd, wordt het bouwen van interactieve dashboards een echte plezier. Slicers en filters schuiven direct op hun plek, DAX-measures blijven leesbaar en eenvoudig te debuggen, en de functies voor vragen in natuurlijke taal (Q&A) halen opmerkelijk nauwkeurige resultaten.
Wil je dit architectuurpatroon in meer detail verkennen en expertinzichten horen over het vermijden van veelvoorkomende modelleringsvalkuilen? Bekijk dan zeker de bijbehorende podcastaflevering: Build a Power BI Star Schema for Faster Reports.
Conclusie
Het omzetten van platte, rommelige datadumps naar een geoptimaliseerd sterrenschema met Power Query is een van de meest waardevolle vaardigheden die een Power BI-ontwikkelaar kan beheersen. Door je schema zorgvuldig te plannen, je dimensies op te schonen, stabiele surrogaatsleutels te genereren en strikte één-op-veel-relaties in te stellen, ontgrendel je een razendsnelle queryprestatie, eenvoudigere DAX-berekeningen en robuuste rapportages voor de hele onderneming.
Vergeet niet om te leunen op modelleringschecklists, je rijaantallen te valideren aan de hand van de brontsystemen en je modellen voortdurend te controleren naarmate de behoeften van je organisatie veranderen. Voor een dieper inzicht in deze strategieën en praktische discussies over best practices binnen het Microsoft-ecosysteem kun je de volledige aflevering beluisteren op Build a Power BI Star Schema for Faster Reports. Veel plezier met modelleren!