Power BI is vandaag de dag een van de makkelijkste en krachtigste tools om data te analyseren en te visualiseren. Je hoeft alleen data te importeren en als dit gelukt is, kan je meteen beginnen met het visualiseren. Helaas kan je tegen performance-problemen aanlopen. Al meteen, of pas later. In tachtig tot negentig procent van de gevallen ligt de oorzaak van deze problemen bij de basis: het datamodel. Iets wat makkelijk is te voorkomen, als je je aan twee datamodeling-vuistregels houdt.
Performance-problemen uiten zich bijvoorbeeld in langzaam ladende visuals, of de noodzaak om complexe DAX-codes (Data Analysis Expressions) te schrijven om je berekeningen te maken.
Het datamodel
Belangrijk is het om, nadat je weet welke data noodzakelijk is voor je rapportage, eerst de tijd te nemen om over je datamodel na te denken. Deze tijd verdient zich terug! Door er goed over na te denken, heb je later minder tijd nodig om de performance te verbeteren, of kan je makkelijker, en dus sneller, je DAX-codes schrijven.
Bij het maken van het datamodel is het goed om te beseffen dat Power BI werkt op de Vertipaq Engine. Deze engine is ontworpen om te werken met een ‘star model’. Zoals de naam al aangeeft, kan je in het datamodel-schema een ‘ster’ zien. De tabellen met dimensions zijn gecentreerd rondom de fact tabel. Door in je datamodel een duidelijke scheidingslijn te hanteren tussen facts en dimensies, verbeter je de fundering van je rapport.
Facts en dimensies
Wat houden deze zogenoemde facts en dimensions nu daadwerkelijk in?
De fact tabel bestaat uit feiten die hebben plaatsgevonden. Er zijn bijvoorbeeld tien producten verkocht of tien producten geproduceerd op datum 1-1-2020. Dus dan hebben we een regel in de fact tabel die bestaat uit “20200101,10,ProductX_ID”. Zoals je ziet, zijn het eigenlijk feiten waarmee te reken valt.
Dimensies bestaan uit aspecten waarop te filteren is. Dit kunnen producten, periodes of regio’s zijn. Een regel kan bijvoorbeeld zijn “ProductX_ID,T-shirt Power BI, zwart,XL”. De in de voorbeelden genoemde regels uit de tabellen Fact en Dimensie zijn te koppelen door de “ProductX_ID”. In elke tabel is het noodzakelijk om zo’n ID te genereren om de tabellen met elkaar te verbinden. Doe je dit niet, dan kan er niet gefilterd worden.
De twee vuistregels voor het opbouwen van een datamodel:
1. Zorg dat er in de fact tabel alleen data staat waarmee te rekenen is.
2. Zorg dat in de dimensie alleen data staat waarop gefilterd kan worden.
Makkelijk voor jezelf én je gebruikers
Door deze twee vuistregels te hanteren, maak je een goed datamodel om mee te werken. Voordeel is dat je de performance kan verbeteren, maar ook dat als je een DAX-code schrijft, die korter en eenvoudiger geschreven kan worden. Zo maak je het jezelf makkelijk én houd je de gebruikers van je rapportages tevreden.