Power BI - Geheugen optimaliseren: tabellen samenvoegen

In deze serie van blogposts bekijken we hoe we op een aantal eenvoudige manieren de grootte van een model kunnen beperken.

De vorige blogposts:

Tabellen samenvoegen

In een relationele database proberen we data zoveel mogelijk in aparte tabellen te plaatsen; op die manier blijven de gegevens consistent: er zijn geen dubbels waardoor wijzigingen slechts op 1 plaats dienen te gebeuren.  Dit zorgt er wel voor dat een relationeel model vaak groot en complex is.

Power BI is geen database om gegevens efficiënt op te slaan. Je model moet ervoor zorgen dat je efficiënt kan rapporteren. 

Op dit moment ziet mijn model eruit als in de volgende screenshot.

Als je aan Power BI zou vragen om de som te berekenen van de kolom Amount in de tabel Sales voor de provincie Limburg, dan zal Power BI eerst de tabel Provinces filteren om het provincienummer van Limburg op te zoeken.  Vervolgens zal dit nummer doorgestuurd worden naar de tabel Cities en vervolgens zullen de CityIDs van Limburg doorgestuurd worden naar Sales.  Elke relatie vraagt dus ook berekeningstijd.

Daarnaast hoeven we in ons model een provincie niet als een op zichzelf staande entiteit te zien. We hebben immers geen extra velden die kenmerken zijn van de provincie zoals de provinciegouverneur, de oppervlakte…   Eigenlijk kunnen we perfect zeggen dat de provincie een kenmerk van een stad is.

Op dezelfde manier kunnen we ook zeggen dat een hoofdcategorie van een product een kenmerk is van een product in plaats van een op zichzelf staande entiteit.

Via Power Query kunnen we de provincie en de hoofdcategorie naar de andere tabellen brengen. Dit zorgt er niet alleen voor dat DAX minder relaties moet doorlopen waardoor het sneller werkt, maar het vermindert ook het aantal kolommen in ons model: als we de naam van de provincie in de tabel van de steden bijhouden hoeft de tabel met de provincies immers niet meer in het model geladen te worden.  De kolom ProvinceID in de tabel met de steden is dan ook overbodig aangezien we geen relatie meer zullen hebben.

Het eindresultaat ziet er als volgt uit (een zogenaamd star scheme):

Het originele bestand was ongeveer 7,3 MB. Voor ons geoptimaliseerd model is de grootte nog 1,4 MB; ongeveer 80% kleiner.

De originele grootte van ons model was 19,8 MB. Voor ons geoptimaliseerd model is de grootte nog slechts 2,2 MB; bijna zelfs 90% kleiner!

Deel dit blogbericht
Categorieën: Power BI
Tags: Power BI

Also interesting for you

Laat een antwoord achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd.

Breng jouw kennis en skills naar een hoger niveau

Schrijf nu in voor onze nieuwsbrief en krijg maandelijks:

  • Exclusieve tips & tricks
  • Informatie over onze opleidingen
  • Trends in opleidingen
  • Uitnodigingen voor studiedagen en events

Meest gekozen opleidingen