Wat is een composite model in Power BI? Import en DirectQuery combineren
Een composite model is een Power BI-dataset waarin sommige tabellen via import worden geladen en andere tabellen via DirectQuery live worden bevraagd, binnen hetzelfde datamodel. Dit is nuttig wanneer je een grote, snel veranderende transactietabel niet volledig wilt importeren, maar wel wilt combineren met kleinere referentietabellen die je juist wel importeert voor snelheid. Power BI regelt automatisch welke opslagmodus per query wordt gebruikt via de storage mode-instelling per tabel.
Een composite model in Power BI combineert import en DirectQuery binnen één dataset, zodat je grote tabellen live bevraagt en kleinere tabellen snel in het geheugen houdt.
Niet kiezen tussen snelheid en actualiteit
Bij Power BI moet je normaal gesproken kiezen: importeer je data voor snelheid, of gebruik je DirectQuery voor actualiteit tegen de prijs van iets tragere rapporten. Een composite model laat je die keuze per tabel maken in plaats van voor de hele dataset. Je importeert de tabellen die klein genoeg zijn en niet elke seconde veranderen, en gebruikt DirectQuery voor de tabellen die te groot zijn om te importeren of waarvan de actualiteit cruciaal is, zoals een voorraadstand of een lopende ordertabel.
Hoe storage mode per tabel werkt
Elke tabel in een Power BI-datamodel heeft een storage mode: import, DirectQuery of dual. Bij import laadt Power BI de data in het gecomprimeerde Vertipaq-geheugen, wat de snelste rapportages oplevert. Bij DirectQuery blijft de data in de bron en stuurt elke visual een live query. Bij dual gedraagt de tabel zich als beide: Power BI kiest automatisch de snelste route afhankelijk van welke andere tabellen bij de query betrokken zijn. In een composite model stel je deze modus per tabel in via de eigenschappen in Power BI Desktop, in plaats van één instelling voor de hele dataset zoals bij een puur import- of DirectQuery-model.
Aggregaties: de sleutel tot bruikbare performance
Het echte probleem met composite models is performance: een DirectQuery-tabel van miljoenen rijen levert trage visuals op zodra gebruikers filteren of groeperen. De oplossing is een aggregatietabel: een vooraf samengevatte, geïmporteerde versie van de grote tabel op een hoger detailniveau, bijvoorbeeld omzet per dag per productgroep in plaats van per individuele transactie. Power BI herkent automatisch wanneer een query met de aggregatietabel kan worden beantwoord en valt alleen terug op de gedetailleerde DirectQuery-tabel als een gebruiker echt tot op transactieniveau wil inzoomen. Zo voelt het rapport meestal snel aan, met de garantie dat detailanalyses nog steeds mogelijk zijn.
Praktijkvoorbeeld: ERP-koppeling met live voorraad
Een veelvoorkomend scenario bij mkb-klanten is een ERP-systeem met miljoenen transactieregels waarvan het management wel de actuele voorraadstand wil zien, maar niet elke individuele mutatie hoeft te doorzoeken. Je zet de voorraadtabel op DirectQuery zodat de cijfers altijd actueel zijn, importeert de productcatalogus en klantentabel omdat die zelden wijzigen, en bouwt een aggregatietabel op dagniveau voor de historische trendanalyse. Het resultaat is een rapport dat zowel actuele als snelle onderdelen combineert zonder dat de gebruiker het verschil merkt.
Beperkingen om rekening mee te houden
Composite models voegen complexiteit toe aan het datamodel: relaties tussen tabellen met verschillende storage modes hebben soms beperkingen op het gebied van filterrichting, en niet elke DAX-functie werkt optimaal in combinatie met DirectQuery. Test daarom prestaties met realistische datavolumes voordat je een composite model in productie neemt, en overweeg eerst of een eenvoudiger import- of DirectQuery-model niet voldoende is. Composite models lossen een specifiek schaalprobleem op; ze zijn geen standaardkeuze voor elk rapport.
Onze tip: bouw eerst een prototype met alleen DirectQuery op de grote tabel om te zien hoe traag dat werkelijk aanvoelt, voordat je de moeite neemt om een composite model met aggregaties op te zetten. Vaak blijkt de performance beter dan verwacht voor kleinere gebruikersgroepen.
Veelgestelde vragen
Wanneer gebruik je een composite model in plaats van puur import of puur DirectQuery?
Een composite model is de juiste keuze wanneer je een deel van je data te groot of te actueel is voor import, maar je andere tabellen wel wilt profiteren van de snelheid van import. Een veelvoorkomend voorbeeld is een transactietabel van miljoenen rijen via DirectQuery, gecombineerd met een klantentabel of productcatalogus via import. Zo blijft de rapportage snel voor de kleine tabellen en actueel voor de grote, terwijl je niet de volledige transactietabel hoeft te laden.
Wat is een dual storage mode-tabel?
Een tabel met dual storage mode wordt zowel geïmporteerd als beschikbaar gehouden voor DirectQuery, en Power BI kiest per query automatisch de snelste optie. Dit wordt vaak gebruikt voor kleinere dimensietabellen die met meerdere DirectQuery-bronnen worden gecombineerd: de tabel gedraagt zich als import wanneer dat sneller is, en als DirectQuery wanneer die combinatie nodig is om consistente resultaten te garanderen bij meerdere bronnen.
Vertraagt een composite model de rapportprestaties?
Composite models kunnen trager zijn dan een volledig import-model, omdat elke visual die DirectQuery-tabellen aanspreekt live moet wachten op een antwoord van de bron. Met aggregatietabellen kun je dit grotendeels ondervangen: je maakt een vooraf samengevatte, geïmporteerde versie van de grote tabel die de meeste queries afvangt, en valt alleen terug op DirectQuery voor detailniveau-analyses. Goed opgezette aggregaties geven het beste van twee werelden.
Heb ik Power BI Premium nodig voor een composite model?
Nee, composite models werken ook met een Pro-licentie zolang de DirectQuery-bron dat toestaat. Premium-capaciteit wordt wel relevant als je grotere aggregatietabellen wilt gebruiken die de 1 GB-limiet van Pro-datasets benaderen, of als je performance nodig hebt die alleen dedicated capaciteit kan bieden. Voor de meeste mkb-toepassingen van composite models is Pro voldoende.