Met de opkomst van de verschillende tools binnen het Power BI platform wordt ons steeds vaker de vraag gesteld wat het verschil is tussen al deze tools en wat nu de beste architectuur is voor verschillende klanten. Nu is daar natuurlijk niet een algemeen antwoord op te geven, maar ik kan wel uitlichten wat welke tool doet en hoe je deze het beste kan inzetten.
Verschillende fases
Onderstaand plaatje laat goed zien welke fases er zijn voordat je een Power BI rapport of dashboard kan maken. Niet elke tool is geschikt om voor al deze fases te gebruiken. Per tool zal ik even kort toelichten waar deze wel en niet geschikt voor is.
- Data ontsluiting
- Data transformatie
- Data modellering
Power BI Dataflow
Met een Power BI Dataflow kan data uit verschillende bronnen worden ontsloten en worden ingeladen in een Azure Data Lake. Meer hierover kunt U lezen in mijn andere blog Power BI Dataflow. In bovenstaand plaatje wordt dit nog een keer duidelijk weergegeven. Data kan ontsloten worden vanuit verschillende bronnen en er kunnen eventueel transformaties op de data worden gedaan. Fase 1 en fase 2 kunnen dus met deze tool worden gedaan.
Power BI Datasets
Een Power BI Dataset is eigenlijk al vanaf het begin van het Power BI tijdperk beschikbaar. In een dataset kan data uit verschillende bronnen worden ingeladen. Data kan rechtstreeks vanuit de bron worden ingeladen of er kan ook data vanuit een dataflow of vanuit SSAS worden ingeladen. Op deze data kunnen dan transformaties gedaan worden. Binnen de dataset kan dan het model gemaakt worden. De modellering is eigenlijk de fase waarin de verschillende ontsloten tabellen aan elkaar worden gekoppeld. Met een Power BI Dataset kan je dus alle verschillende fases doorlopen.
SQL Server Analysis Services
Met SQL Server Analysis Services is juist bedoeld om te modelleren. Hiermee kunnen dus ook alle verschillende fases doorlopen worden. SSAS kan on-premise gedraaid worden of tevens ook als service in azure worden afgenomen.
Verschil Dataflow en Dataset?
Met Dataflow kan geen data worden gemodelleerd. Daar is altijd een Dataset voor nodig. Met een Dataflow en Dataset kan data ontsloten worden, dus waarom zou er gekozen worden voor een dataflow ipv dataset? Een aantal voordelen van het gebruik van een Dataflow is:
- Hergebruik van entities in verschillende datasets. Tabellen kunnen hergebruikt worden. Transformaties hoeven dan maar 1 keer gedaan te worden en de data is dan in alle datasets hetzelfde
- Incrementeel laden van de data. Grote tabellen kunnen incrementeel worden ingeladen.
- Performance. Door het verleggen van de logica naar een dataflow kan deze online worden bewerkt. Alle data hoeft dus niet meer in Power BI te worden ingeladen. Dit is met grote datasets soms problematisch
Waarom SSAS
Er zijn ook een aantal redenen waarom er gewoon voor SSAS gekozen zal worden als tool om te modelleren.
Dataflow/Dataset | SSAS | Opmerkingen | |
Self-Service | ++ | - | Het modelleren van data is toegankelijker binnen de dataset, omdat deze interface hetzelfde is als Power BI |
Row-level security | - | ++ | Dit is binnen SSAS centraal in te regelen en moet anders per dataset worden ingeregeld |
Version Management | - | ++ | SSAS / Visual Studio is er voor gemaakt. Binnen power BI kan dit tot op heden nog niet |
Debug/Performance | - | ++ | SSAS heeft veel mogelijkheden en functionaliteit om de performance te optimaliseren en onderzoeken. Dit is bij Dataflows nog erg beperkt en niet inzichtelijk |
Partitionering | -- | ++ | Buiten het wel of niet incrementeel laden van een dataflow (op datumveld) zijn er geen mogelijkheden voor bijvoorbeeld partitionering van de data |
Perspectives | + | ++ | De mogelijkheid voor het gebruik van perspectieven is op dit moment nog beperkt binnen datasets |
Browser-based | ++ | -- | Er is geen extra tooling nodig voor het ontwikkelen van Dataflows/Datasets |
Scalability | + | + | Afhankelijk van de gekozen SSAS architectuur kan in beide gevallen makkelijk opgeschaald worden |
Conclusie
Voor iedere organisatie moet natuurlijk een weloverwogen keus worden gemaakt wat de best passende BI architectuur is. Op dit moment heeft SSAS nog veel functionaliteit en mogelijkheden welke bij dataflows/datasets nog ontbreekt of niet toereikend is. Toch kan, afhankelijk van de organisatie, de inzet van dataflows en datasets een goede BI architectuur vormen.