Data Analyse Breda

Power BI: Import, DirectQuery, en Live Connectie

Wanneer u verbinding maakt met databronnen in Power BI krijgt u soms de optie om een gegevens verbindingsmodus te kiezen. Hier heeft u de opties importeren, DirectQuery, en Live connectie. In deze blopost beschrijven we de verschillen, en voor-en nadelen van de twee verbindingsopties.

Wat is een Gegevensverbindingsmodus, en wanneer kan ik hiervoor kiezen?

Een Gegevensverbindingsmodus (Data Connectivity Mode in het Engels) is de manier waarop je een connectie maakt met de data. Wanneer je een verbinding maakt met een databron zal Power BI je in sommige gevallen vragen of je de data wil importeren, of dat je gebruik wil maken van de DirectQuery verbinding of Live Connectie.

Maar wanneer kan je kiezen tussen gegevensverbindingsopties? Als de databron een Live Connectie verbinding ondersteund zal Power BI je de keuze geven tussen importeren of verbinden via een Live Connectie. Er kan enkel een live connectie worden gemaakt wanneer je verbinding wil maken met de SQL Server Analyses Services Tabular, SQL Server Analysis Services Multi-Dimensional, of Power BI Service Dataset.

Wanneer een Live connectie niet mogelijk is, en een DirectQuery verbinding wel ondersteund word zal je de keuze krijgen tussen importeren of een DirectQuery verbinding. Voorbeelden van bronnen die dit ondersteunen zijn SQL Server, Amazon Redshift en Google BigQuery.

In sommige gevallen zal zowel een Live Connectie als DirectQuery verbinding niet beschikbaar zijn. In dat geval krijg je geen keuze, maar wordt de data automatisch geïmporteerd. Dit gebeurd onder andere wanneer je een connectie maakt met Excel, een web connector, een Access database, of Google analytics. In dit artikel van Microsoft kan je controleren welke databronnen een DirectQuery of Live Connectie ondersteunen.

Importeren

Wanneer je kiest voor importeren laad Power BI de data in het programma (caching). Er wordt dan een kopie gemaakt van de inhoud van je databron. Je moet de databron vernieuwen (refreshen) om de wijzigingen in de data te kunnen zien. Onderstaand een overzicht van de voor-en- nadelen van deze verbindingsoptie.

VOORDELEN

  • Het werkt super snel. De data bevind zich in het geheugen van het bestand, waardoor filters en visualisaties snel functioneren.
  • Je hebt toegang tot alle functies binnen Power BI. Zo kunnen alle DAX en M-Query formules kunnen gebruikt worden bij geïmporteerde data.

NADELEN

  • Als je verbind met een grote databron dient er veel data tijdelijk opgeslagen te worden. Dit kost veel geheugen en opslagruimte. Wanneer je werkt in Power BI desktop kan dit ervoor zorgen dat de bewerkingen en vernieuwingen lang duren. Hetzelfde geld wanneer je het bestand upload naar Power BI Online (je server).
  • Je Power BI dataset mag niet groter zijn dan 1GB. Wanneer dit wel zo is dien je Power BI premium aan te schaffen, dan heb je 50GB tot je beschikking.
  • Je data is zo vers als je laatste vernieuwing. In Power BI online kan je de data automatisch laten verversen met een scheduled refresh. Bij een scheduled refresh kan je de data maximaal 8 keer per dag refreshen (tenzij je een Premium SKU hebt). Je data is dus niet helemaal up-to-date.

Op sommige websites staat dat het niet mogelijk is om meer dan 1 miljoen rijen te importeren. Dit was voorheen wellicht zo, maar nu niet meer. Het is gewoon mogelijk om meer dan een miljoen rijen te importeren. Dit hoeft dus geen factor te zijn bij het maken van de juiste keuze op het gebied van gegevensverbinding.

DirectQuery

Bij een DirectQuery verbinding word er een rechtstreekse verbinding gemaakt met de databron. Hoe werkt dit precies? Power BI kopiërt alle schema’s, tabellen, en kolomnamen uit de database, maar niet de data. Wanneer jij een visualisatie creëert met die gekopiërde kolomnamen maakt Power BI een directe query naar de database, die de data vervolgens terug zal sturen. Vandaar ook de naam DirectQuery. Omdat je bijna rechtstreeks verbonden bent met de database worden veranderingen snel zichtbaar in het rapport. Ook heb je bij deze verbindingsoptie nog (beperkt) de mogelijkheid om wat transformaties door te voeren met measures. Onderstaand een volledig overzicht van alle voor-en-nadelen.

VOORDELEN

  • Je hebt beschikking tot de meest recente data. De databron wordt elke 15 minuten ververst. Dit is erg handig wanneer je een rapport bouwt waarbij de data altijd volledig up-to-date moet zijn.
  • Er zit geen limiet aan de grote van je dataset. Het is dus makkelijk om je dataset op te schalen, en om te werken met grote hoeveelheden data.
  • Het Power BI bestand is kleiner omdat de data niet gekopiërt en opgeslagen word. Dit maakt dashboarding in Power BI in sommige gevallen wat sneller.

NADELEN

  • Het rapport of dashboard is langzamer. Wanneer je een filter of drillthrough toepast word de data direct opnieuw gequeried omdat je direct bent aangesloten op je databron. Elke keer dat je dus een filter gebruikt wordt er een nieuwe querie naar de database gestuurd. Dit zorgt er ook voor dat je rapport langzamer zal zijn, vooral wanneer veel gebruikers tegelijkertijd gebruik maken van het dashboard.
  • Het is moeilijk om je data te transformeren. Je kan niet alle functies in de Power Query Editor gebruiken bij een DirectQuery verbinding. Er zijn maar een bepertkt aantal DAX formules beschikbaar, en je kan alleen calculated columns creëeren met kolommen uit dezelfde data tabel. Time intelligence functies zijn in principe beschikbaar bij DirectQuery, maar dit maakt de query zo complex dat dit niet goed is voor de prestatie. Het is dan ook niet aan te raden om dit te doen!
  • Er is geen datumhiërarchie. Bij het importeren van data wordt er automatisch een hiërarchie aangemaakt waarbij je ook het jaar, het kwartaal, de maand, en de dag van de datum kan gebruiken. Dit is niet beschikbaar bij een DirectQuery.

In sommige artikelen zal je lezen dat je geen data kan combineren wanneer je een DirectQuery verbinding hebt. Voorheen was je inderdaad niet in staat om meerdere databronnen toe te voegen wanneer je gebruik maakte van een DirectQuery verbinding of een Live connectie. Sinds begin 2021 is het echter mogelijk om data met verschillende gegevensmodusopties te combineren door de introductie van Composite models (samengestelde modellen). Nu kan je dus bronnen met dezelfde of verschillende gegevensverbindingsmodus aan elkaar koppelen en combineren. Zo kan je een DirectQuery bron linken aan een geïmporteerde bron. Je kan zelfs een live connectie combineren aan een geïmporteerd bestand.

Live connectie

Bij een klein aantal bronnen is het ook mogelijk om te kiezen voor een live connectie. Je maakt dan rechtstreeks verbinding met het model van de databron. Er wordt niks in Power BI geladen, en je kan je data dan ook niet transformeren. Al je data modelling taken moeten dus uitgevoerd worden in je databron, en niet in Power BI. Deze verbindingsoptie is uitsluitend beschikbaar wanneer je een connectie maakt met de SQL Server Analyses Services Tabular, SQL Server Analysis Services Multi-Dimensional, of Power BI Service Dataset.

VOORDELEN

  • De data is real-time beschikbaar.
  • De prestatie is iets beter dan bij een DirectQuery verbinding.

NADELEN

  • Er zijn slechts drie connectoren die dit ondersteunen op het moment.
  • Je bent rechtstreeks verbonden met het model van de database, je kan dus geen transformaties aanbrengen aan de data. De Power Query Editor, Measures, of Calculated columns zijn dus niet beschikbaar.
  • Bij het importeren van data is de prestatie beter dan bij een live connectie.
  • De data view tab aan de linkerkant ontbreekt. Je kan de data hier dus niet bekijken.

Ik kan me voorstellen dat de verschillen tussen een DirectQuery en Live Connectie nog wat onduidelijk zijn. Bij een DirectQuery worden alle database velden gekopiërd, en word er op basis van de door jou geselecteerde velden een directe query naar de database gestuurd. Bij een Live Connectie ben je rechtstreeks verbonden met het model, en ook de data. Dit werkt dus iets sneller. Het nadeel is dat je hier niet de mogelijkheden hebt om een transformatie te maken met bijvoorbeeld een measure. Dit kan wel bij DirectQuery verbindingen.

Samenvatting en conclusie

Onderstaand een visuele samenvatting van alle voor-en nadelen van import, DirectQuery, en Live connectie. Persoonlijk werk ik zelf het liefste met een import verbinding. Hoofdzakelijk omdat de prestaties net wat beter zijn, en ik het fijn vind dat ik alle functies binnen Power BI kan gebruiken. Wanneer je echter werkt met zeer grote databestanden die je graag up-to-date wil zien, dan is de keuze voor DirectQuery of indien mogelijk een Live connectie logischer. Het grootste nadeel van de live connectie is dat het maar bij een beperkt aantal connecties beschikbaar is.

Ik hoop dat de verschillen, en voor-en nadelen van alle gegevensverbindingsmodussen duidelijk is. In onze volgende blogpost zullen we meer informatie verstrekken over composite models (samengestelde modellen). Dit stelt je in staat om gegevens met verschillende of eenzelfde gegevensverbindingsoptie te linken of te combineren. Wanneer je suggesties of vragen/ opmerkingen hebt over dit artikel kan je contact opnemen of een reactie achterlaten.

Leave a Reply