Wil je verder sparren over Direct Query op Snowflake?
Laat je gegevens achter en dan nemen wij contact met je op.
Optimalisatie van Power BI met Direct Query (DQ) op Snowflake is dé oplossing voor snel, kostenefficiënt en AVG-proof werken in Power BI. Helaas is Direct Query vaak te traag gebleken. Het is ons gelukt om de performance significant te verbeteren: bijna 10 keer zo snel! Ontdek in deze blog hoe we dit hebben bereikt.
Een architect wil niet twee keer dezelfde handelingen uitvoeren, een gebruiker wil een snel dashboard en de CFO wil zo min mogelijk kosten maken. Ondertussen vereisen AVG-regels dat gebruikers alleen zien wat ze mogen zien. Dit alles is mogelijk met Snowflake & Direct Query in Power BI. We laten hierbij het traditionele dimensioneel modelleren van Ralph Kimball (sterschema’s) los om de beste performance te bereiken.
Met Snowflake als onze analytical database kunnen we een One Big Table (OBT) modelleren. Daarmee heb je geen losse dimensies meer nodig, wat leidt tot een betere query performance. We vertellen je er graag meer over.
In de Power BI community is ‘Import’ de standaard opslagmodus voor Power BI. De data wordt dan in Power BI opgeslagen. Het belangrijkste voordeel van de Import modus is dat de performance voor de gebruikers zeer goed is. De keerzijde is dat de data zowel in het dataplatform als in Power BI wordt opgeslagen, wat meerdere nadelen heeft.
Als we werken met persoonsgegevens (PII = Persoonlijk Identificeerbare Informatie) moeten we in het dataplatform maatregelen nemen waardoor die persoonsgegevens alleen leesbaar zijn voor medewerkers met de juiste rechten: een medewerker van HR ziet op een rapportage volledige postcodes, maar een medewerker van marketing ziet alleen de eerste vier cijfers. In de door Inergy ontwikkelde AVG-oplossing op basis van het Snowflake dataplatform is functionaliteit beschikbaar om dit te doen, ook op grote datasets.
Bij het gebruik van de Import opslagmodus in Power BI moet de data zowel met als zonder PII worden opgeslagen in een Power BI dataset en wordt in Power BI afgeschermd wie welke data mag zien. Dit leidt tot dubbele opslag, meer verbruik en beheer en onderhoud op meerdere plekken.
Het alternatief is de modus ‘DirectQuery’. Daarbij wordt de data niet geïmporteerd in Power BI, maar worden de query’s rechtstreeks vanuit Power BI doorgestuurd naar Snowflake. Een belangrijk voordeel bij deze opslagmodus in de context van dit onderzoek is dat de AVG-oplossing die in Snowflake is geïmplementeerd, benut wordt door Power BI.
Omdat een gebruiker ingelogd is wanneer hij of zij het rapport gebruikt, wordt zijn of haar gebruikersnaam doorgestuurd naar Snowflake en kan Snowflake bepalen of de data al dan niet geanonimiseerd dient te worden teruggegeven. Een elegante, en qua beheer en opslag, efficiënte oplossing.
Helaas is Direct Query vaak te traag gebleken. Eén van de verklaringen hiervoor is dat Power BI voor iedere visual op het scherm een query naar de achterliggende database stuurt. Voor sommige dashboards kunnen dat er tientallen zijn. Zelfs voor een snelle database als Snowflake kost het gewoon meerdere seconden om een dergelijk aantal query’s af te handelen.
Het is met de nodige inspanning en creativiteit gelukt om de performance van de testpagina te verbeteren van een gemiddelde testscore van 7.879 ms over drie testgevallen, naar een gemiddelde van 873 ms over drie testgevallen, dus bijna 10 x zo snel! Daarbij zijn er slechts zeer beperkte concessies gedaan aan de visuele kant van het rapport.
In Snowflake zijn er diverse instellingen mogelijk die de performance beïnvloeden. Allereerst kijken we naar het Virtual Warehouse. Het Virtual Warehouse levert de rekenkracht om gegevens op te vragen.
Naast het Warehouse is ook het gehanteerde datamodel van grote invloed op de performance. Het sterschema is sinds jaar en dag de manier van het ontwerpen van BI datamodellen. Dat pad verlaten we voor onze dashboards.
Ook in Power BI zijn er diverse manieren om een oplossing te realiseren en de keuzes die je hier maakt, zijn van invloed op de performance van je dashboard.
Ook het visualiseren in Power BI heeft invloed op de uiteindelijke performance die de gebruiker ervaart. Kijk maar naar onderstaande tips:
Natuurlijk kun je bovenstaande tips prima uit te voeten, maar iedereen heeft andere data. Het is dus belangrijk om goed te kijken hoe deze tips op jouw data uitwerken. Hoe je dat doet? Lees snel verder.
Natuurlijk is het belangrijk om te kijken of voor jouw situatie de OBT-werkwijze handig is. Daarom bespreken we nog een aantal aspecten die van invloed zijn op deze keuze. Een OBT maak je primair om te zorgen dat je een goede Direct Query performance voor je standaard dashboard krijgt. Eenvoudigere queries zorgen daarvoor. In een dashboard met gegevens uit meerdere informatiegebieden moet je werken met selector dimensies om synchronisatie van de selecties (bijvoorbeeld jaar) over verschillende visuals mogelijk te maken. Kimball noemt dit soort gegevens geconformeerde dimensies. Uit onze testen blijkt dat:
Kom je tot andere conclusies dan wat wij je in dit artikel vertellen? Mooi! Ik hoor dat graag en dan kunnen we onderzoeken waar het door komt. Zo krijgen we met elkaar steeds een beter begrip van het optimaliseren van Direct Query op Snowflake.