Het gebruik van Power BI datasets als bron voor Power BI rapporten is een Microsoft Power BI  architectuur die steeds meer voorkomt. Ook voor midden en klein bedrijf is dit door de vorig jaar geïntroduceerde Premium per user licentie een goede en betaalbare oplossing. In deze blog kijken we eens naar de ververs mogelijkheden voor een Power BI dataset.

Power BI dataset architectuur

Voordat we naar de verschillende ververs mogelijkheden kijken, is het goed om eerst eens naar de basis architectuur te kijken van Power BI wanneer gebruik gemaakt wordt van Power BI datasets. Hieronder is een simpele architectuur weergegeven waarbij gebruik gemaakt wordt van Power BI datasets. Of je nu een Power BI dataset bouwt op basis van een operationele (cloud) database, een datawarehouse of een tussen liggende variant maakt voor deze architectuur niet heel veel verschil. Een Power BI dataset als semantische laag biedt naast de interessante prijsstelling van een Premium per user licentie (€ 16,90 per gebruiker) ook een modelgrootte tot 100 GB wat meer dan genoeg is voor de meeste organisatie. Daarnaast is de performance van een power BI dataset vergelijkbaar met Azure Analysis Service. De rapporten die gebouwd zijn op basis van de Power BI dataset hebben een live connectie met de Power BI dataset. Dit betekent dat bij iedere interactie in het Power BI rapport er contact gelegd wordt met de Power BI dataset. Deze interactie (live connect) gaat echter razendsnel omdat de Power dataset sterk gecomprimeerd in-memory cache wordt opgeslagen. De actualiteit van de Power BI rapporten is dus afhankelijk van de actualiteit van de Power BI dataset en daarom kijken we hieronder eens naar de verschillende ververs mogelijkheden van een Power BI dataset.

PBI dataset architectuur

Scheduled refresh

De meest voor de hand liggende optie om een Power BI dataset te verversen is om deze te schedulen op een bepaald tijdstip. Dit kan eventueel op meerdere tijdstippen per dag waarbij het wel afhankelijk is wat de achterliggende architectuur is en hoelang de verversing duurt.

Scheduled refresh

Refresh via PowerShell

Wanneer de Power BI datasets gevuld worden vanuit bijvoorbeeld een copy database, DWH, datamart, of iets vergelijkbaar dan is de eindtijd van zo een laadproces niet altijd goed te voorspellen. Een goede manier om dit proces te optimaliseren is dan direct na je laadproces automatisch een Powershell script te draaien (bijvoorbeeld via een SQL Server Agent job) dat de Power BI dataset(s) ververst.  Het draaien van een Powershell script om een Power BI dataset te verversen kan jet het best doen met behulp van een Service-Principal in plaats van onder je eigen account. Zie ook deze link van Microsoft over Service-Pricipals. De communicatie tussen een Power BI werkruimte (workspace) en een Powershell script loopt via een versleuteld XMLA-eindpunt. Het gebruik van een XMLA-eindpunt is alleen mogelijk met een premium Power BI licentie. Zie ook deze link van mijn collega over XMLA-endpoints.

Refresh Power BI dataset met Power Automate

Power Automate is onderdeel van de Office365 suite en je logt hier gewoon in met je Power BI/Office365 account. Hieronder beschrijf ik 2 mogelijkheden waarbij je Power Automate zou kunnen inzetten om een dataset te verversen.

1. Via een geautomatiseerde cloudstroom

Dit is hetzelfde idee als via Powershell. Een trigger zorgt er in dat geval voor dat een Power BI dataset dan ververst wordt. In onderstaand voorbeeld wordt een gegevens set vernieuwd wanneer een bestand in een bepaalde SharePoint map gemaakt of gewijzigd wordt. In dit voorbeeld zal je dus na je laadproces via een scriptje een bestandje moeten uploaden naar SharePoint.

Powerautomate refresh dataset

Naast de grafische interface heeft dit ook als voordeel dat je hier makkelijk extra stappen aan kan toevoegen. Maak je Power BI dataset bijvoorbeeld gebruik van Power BI dataflows, dan kan je het verversen van de Power BI dataflows als extra stap hiertussen voegen. Of wil je een mail ontvangen wanneer het verversen van de Power BI dataset is mislukt? Ook deze stap kan je toevoegen aan de flow. Is SQL server je data bron? Dan kan je die ook als trigger instellen om een vernieuwing uit te voeren.

Powerautomate SQLServer

2. Wanneer de gebruiker op een knop drukt in een Power BI rapport

In Power BI kan je gebruik maken van de visualisatie “Power Automate”. Hiermee kan je een geautomatiseerde cloud stroom triggeren. Deze cloudstroom kan dan een Power Dataset of Power BI dataflow verversen. Dit kan handig zijn wanneer de Power BI dataset gebaseerd is op een operationele database of er zit een externe bron (bijvoorbeeld Excel met targets) in de Power BI dataflow/dataset die ververst moet worden. Voordeel is dat de gebruiker dan zelf het moment van verversen kan bepalen.

Powerautomate button

Powerautomate refresh in report

Hybrid tables

Het is al langer mogelijk om per tabel in een Power BI dataset aan te geven of deze incrementeel ververst moet worden. In veel gevallen wijzigt historische data niet meer en kan het aardig wat performance winst opleveren wanneer incrementeel verversen wordt toegepast. Hybrid Tables is een premium feature die in Public Preview is sinds December 2021. Dit geeft de mogelijk om Import mode en DirectQuery mode naast elkaar te gebruiken voor dezelfde tabel. Import mode geeft je een snelle performance en DirectQuery geeft je (near) real-time data zonder dat de Power BI dataset ververst hoeft te worden. Let op! Hier is wel een afweging te maken tussen performance en de nieuwigheid van data. De DirectQuery mode importeert de data niet in de Power BI dataset, maar zal voor elke interactie een query uitvoeren op de onderliggende database. Dit proces kost meer tijd en heeft een negatieve impact op de performance van rapporten. Met de juiste partities en indexen op de onderliggende database kan dit performance verlies eventueel beperkt worden. Echter is er nog een belangrijk nadeel en dat is de beperkte mogelijkheid van Power Query transformaties en DAX calculaties. Dus een tweede afweging is te kiezen tussen (near) real-time data en een Power BI dataset die meer geschikt is voor selfservice BI.

Hybrid table

Conclusie

Er zijn dus verschillende mogelijkheden om een Power BI dataset te verversen. De juiste keuze zal onder andere afhangen van de wensen van de organisatie, type licentie, onderliggende architectuur en performance.

 

This website uses cookies: more information