28-12-2020

Power BI direct op bron of via semantische laag

Deel dit bericht

De populariteit van Microsoft Power BI is groot. Dat is met een reden, de tool is laagdrempelig om mee aan de slag te gaan, de visualisaties zijn eenvoudig samen te stellen en iemand met geen technische achtergrond kan zelfstandig al veel inzicht creëren in de data. Is Power BI daarmee ook geschikt om rechtstreeks op een cloud applicatie als D365 Business Central te gebruiken?

Naast de kracht van het gebruikersgemak schuilt er achter het canvas nog een reden waarom Power BI zo geliefd is. Als een ware kameleon sluit de tool naadloos aan bij hoe de gebruiker die wilt gebruiken. Zo kan je Power BI dashboard stand-alone inzetten voor jezelf en een dashboard maken op data die je geïmporteerd en gemodelleerd hebt en vervolgens de pbix file versturen aan iemand anders. Die kan de file weer openen met Power BI Desktop en ziet dan jouw visualisaties. Simpel en effectief, alleen is het wel zo dat iedereen met Power BI Desktop zo'n document mag wijzigen, inclusief data en modellering. Power BI ziet er voor de bouwer dan als volgt uit (als je de Modellerings pane hebt geselecteerd):
 

1_blog_import.png

Deze stand-alone inzet is handig voor prive-dashboards, one-off experimenten, testjes, eenvoudige analyses, maar ongewenst in een beveiligde, corporate omgeving met verschillende afdelingen, gebruikers en governance als het gaat om de definities van de cijfers. Power BI heeft daarvoor een slimme oplossing, namelijk de mogelijkheid om data en modellering buiten de tool te houden, zodat alleen de visualisatie overblijft in de definitie van het dashboard. In IT taal betekent dit dat Power BI elegant de switch kan maken van een Fat-client naar een Thin-client.

Semantische laag
Deze toepassing heet 'Live-connect', waarbij je connecteert met een Microsoft Analysis Service (Tabular) Model. Hiermee trek je de visualisatie in Power BI en de semantische laag los van elkaar. Zo'n semantische laag, in dit geval een Tabular model, lijkt sterk op de wijze waarop je modelleert in Power BI Desktop, en mensen met modellering ervaring in Power BI, zullen weinig tijd nodig hebben om de logica die ze hadden in Power BI te verplaatsen naar een 'Tabular Model'. Power BI ziet er voor de bouwer dan zo uit, waar je kan zien dat de data (namelijk de tabellen) niet beschikbaar zijn en dat je het model alleen kan 'bekijken'.

2_blog_live_connect.png

Klik je door op Tabular Editor, dan opent de Tabular Editor applicatie en kan je daarin eenvoudig je model ontwikkelen en beheren.

3_blog_tabular_editor.png

De voordelen van zo'n Tabular Model zijn legio, hieronder een opsomming van de belangrijkste:
1. Performance: Want het rekenen vindt plaats in Analysis Service, wat op een server draait en niet dus op je eigen pc
2. Schaalbaar: Data import in Power BI Desktop is gelimiteert aan de capaciteit van je eigen pc, bij een Tabular model opzet draait dat op een server die je daarvoor kan schalen. Laptops met veel geheugen zijn dan niet meer noodzakelijk.
3. Single-point-of-truth: In plaats van dat elke dashboard ook z'n eigen modellering nodig heeft, is er nu 1 plek waar definities vast gelegd zijn.
4. Beveiliging: Hetzelfde dashboard kan nu geopend worden door verschillende personen maar middels row-level security dat je kan definieren op het Tabular Model en wordt alleen maar de data getoond die men mag zien.
5. Beheer en ontwikkelsnelheid: Een tabular model is een meta data definitie en deze kan snel aangepast worden. In plaats van veel losse Power BI dashboard aan te moeten passen qua modellering, hoef je nu maar op 1 plek een wijziging door te voeren en die reflecteert zich in alle dashboards die gebruik daar van maken.
6. Self-service gemak voor een dashboard bouwer: Omdat de data import en modellering al uit handen zijn genomen, kan de bouwer zich focussen op de bouw van het dashboard ipv ook nog veel tijd te moeten steken in data laden en modellering.

Er zijn nog wel meer pluspunten op te sommen maar dat gaat te ver voor nu, belangrijk is om nog wel een issue aan te stippen met betrekking tot het inzetten van PowerBI Desktop met connectoren naar (cloud)applicaties zoals D365 Business Central. Vaak zijn dit OData of REST API's. Ook hiervoor geldt weer dat de limieten van de stand-alone inzet van Power BI snel in zicht komen.
Performance

Performance kan echt een probleem zijn als bij het openen van PowerBI de verversing gaat lopen en er eerst tientallen api calls afgehandeld moeten worden en wellicht 100 duizenden records opgehaald moeten worden. Veel van deze connectoren direct op een bron applicatie bieden je de mogelijkheid om entiteiten uit te vragen,maar daarna moet nog wel de modellering gedaan worden van hoe alles gerelateerd is. Dit vergt veel kennis van de dashboard bouwer van de bron applicatie, wat het aantal personen in een organisatie die dashboard daaro p kunnen bouwen reduceert.

Daarnaast is het zo dat iedereen die zo'n Power BI opent, de security opzet gebruikt van diegenen die die connectie initieel heeft opgezet in het dashboard, en vaak genoeg in de praktijk is dat met persoonlijke credentials opgezet ipv met een service account. Vaak genoeg komen we tegen dat geklaagd wordt dat een dashboard niet meer werkt wat dan vaak weer komt omdat de user die voor een bepaalde connectie werd gebruikt niet meer actief is.

Als je zorgt dat de data van zo’n connector in het Tabular Model wordt geladen, verdwijnen deze problemen. Het laden van data in het Tabular Model kan bijvoorbeeld 1x per dag gebeuren en niet meer per verversing van de dashboard gebruiken. Google Analytics is een goed voorbeeld waarbij de directe gebruikers verversing snel voor problemen zorgt omdat Google maar een x aantal aanroepen per dag toe staat. Ben je bijvoorbeeld de derde persoon die het dashboard ververst kan het zo maar zijn dat er geen data meer terug komt omdat de api dat niet meer toestaat omdat je al over het maximum heen bent gegaan van de toegestane calls.

Conclusie
Ons advies voor hoe je Power BI het beste inzet is afhankelijk van je gebruik. Ben je zelf de enige die de dashboards bekijkt en is de dataset klein? Dan is Power BI zonder een symantische laag (Tabular Model) geen issue, en zelfs fijn, want er is behalve dat je Power BI desktop moet installeren niets extra nodig aan software. Wel heb je dan technische kennis nodig van de bron(en) die je in je dashboard gebruikt.
Maar... zodra de dashboards door anderen bekeken moeten worden, de hoeveelheid data groter wordt, de security belangrijk is, wordt het moeilijk om alle voordelen die een Tabular Model biedt te negeren.

We zien klanten die met Power BI gebruik gestart zijn zonder inzet van een Tabular Model snel vastlopen en uiteindelijk moeten ze dan toch over naar de architectuur waarbij het Tabular Model zit tussen de bron data (applicaties) en de Power BI dashboards.

Dus ben je fan van Power BI en wil je het gaan gebruiken voor informatie voorziening in je bedrijf? Start dan gelijk met een Tabular Model als bron voor je dashboards en weersta de verleiding om zelf even snel wat binnen te halen met een connector. Dat lijkt in het begin snel en eenvoudig totdat je gevraagd wordt het live te brengen voor de hele organisatie en je tegen de genoemde problemen aanloopt.

Lodewijk Wiggers is Solutions & Technology Manager bij Ensior.

Partners