selective focus photography cement

Ein neues Self-Service BI Zeitalter bricht an: DirectQuery für Power BI Datasets / Composite Models v2

Business Intelligence mit einer einzigen Datenquelle? Ein Enterprise Data Model als die eine (einzige) Quelle für alle Auswertungen im Unternehmen?
Wie soll das mit Self-Service BI funktionieren? Kann das überhaupt funktionieren oder widerspricht sich das nicht?

Wie oft haben wir alle erlebt, dass die Dateninhalte aus dem zentralen Datenmodell extrahiert und sehr oft in Exceldateien weiterverarbeitet wurden. Um vielleicht genau damit diese eine Liste zu verknüpfen.. oder genau diese eine Auswertung für den Team-/Abteilungsleiter oder Geschäftsführer erstellen zu können.

Wie oft war die “Schnelligkeit” und Agilität im Zusammenspiel mit dem Enterprise Data Model ein Hindernis und eher eine Bremse für ein gutes und aktives Arbeiten mit den Unternehmensdaten?

Diese teilweisen Showstopper für Self-Service BI sollen nun mit der neuen Funktionalität – DirectQuery für Power BI Datasets – beendet sein! Wirklich? Warum jetzt auf einmal? Und wie funktioniert das? Mehr dazu in diesem Beitrag

Live Connect

Du wirst dich vielleicht fragen, warum soll das jetzt so etwas Besonderes sein? Ich kann doch mehrere Datenquellen bereits jetzt in Power BI miteinander in einem Dataset verbinden und gemeinsam auswerten. Ja, das stimmt, ABER…

Wenn wir Power BI im Zusammenspiel mit einem semantischen Modell – wie zum Beispiel einem Power BI Datenmodell oder einem SQLServer/Azure Analysis Services (SSAS / AAS) Modell – als Visualisierungsfrontend verwenden, so gab es bis Dezember 2020 eine Einschränkung: Power BI verwendet dazu den Live Connect Modus, welcher einige Einschränkung mit sich brachte:

  • Nur das eine Datenmodell kann als Quelle verwendet werden
  • keine weiteren Datenquellen können hinzugefügt werden

In Power BI Desktop wird bereits im Tooltip darauf hingewiesen, dass bei einer Verbindung zu einem Power BI Datenmodell eine Live-Verbindung erstellt wird.

Vor der Dezember 2020 Version von Power BI Desktop (und vor der Einführung von Composite Models v2) stellt sich Power BI Desktop mit einer Live-Verbindung wie folgt dar:

In der Statusleiste (1) finden wir die Information über den Verbindungstyp (live connection) und den Namen des Datasets und Workspace (Sales / Blog Demos) . Die Tabellen des Datenmodells erscheinen in der Feldliste (2). Aufgrund der Live-Verbindung sind die Optionen zum Hinzufügen von Datenquellen nicht verfügbar (3).

Es besteht zwar die Möglichkeit, das Modell zu erweitern – neue Measures hinzufügen, aber das war es dann schon. Keine berechneten Spalten, keine Hierarchien, keine Veränderungen am Datenmodell!

Mit der Dezember 2020 Version von Power BI Desktop, wurden die Umstände und Möglichkeiten geändert. Wir können nun die Live-Verbindung zu einem Power BI Dataset (oder einem Azure Analysis Services Modell) in den DirectQuery Modus ändern. Und mit dieser Änderung können nun neue berechnete Spalten, zusätzliche Datenquellen und natürlich Beziehungen zwischen diesen Dateninseln erstellt werden.

Dann starten wir mal los..

Das DirectQuery feature (für Power BI datasets) wurde im Dezember 2020 als Preview veröffentlicht. Dies bedeutet, dass die Funktionalität noch nicht standardmäßig aktiviert ist. Damit wir diese nun testen können, müssen wir dieses Preview Feature aktivieren (im Menü File -> Options -> Preview Features.

Unser erstes Composite Model v2

Nach der Aktivierung des preview features (und dem Neustart von Power BI Desktop), können wir einen neuen Report basierend auf einem Power BI Dataset erstellen. Nachdem das Dataset (aus dem Power BI Service) ausgewählt wurde und die Verbindung in Power BI Desktop erstellt wurde, sieht es in Power BI Desktop (Dezember 2020 und neuer) so aus:

Ein schneller Blick genügt – weitere Datenquellen können hinzugefügt werden und in der Statusleiste finden wir den Hinweis: Make changes to this model

Und genau mit diesem Hyperlink können wir die Zukunft der Self-Service BusinessIntelligence einläuten 🙂

Power BI Desktop informiert und noch, dass ein lokales Modell für DirectQuery notwendig ist. Bestätigen wir diesen Dialog und beschäftigen wir uns mit dem lokalen Modell…

Was ist jetzt dieses lokale Modell? Und für was benötigen wir dieses? Wenn wir uns die erste Ankündigung der composite models ansehen (link dazu), dann sollte es klarer werden:

Diagram showing combinations of enterprise semantic models with Power BI datasets

Mit dieser Grafik wird die Architektur hinter Composite Models v2 – so denke ich – sehr gut dargestellt. Das zentrale Enterprise Semantic Model (ESM) wird durch lokale Modell erweitert. Innerhalb dieser lokalen Datenmodell werden a) eine Referenz zum zentralen (remote) ESM erstellt und b) weitere Datenquellen hinzugefügt und miteinander verknüpft.

Nach der Bestätigung wird durch Power BI Desktop das interne / lokale Datenmodell erstellt und der Storage Mode wird auf DirectQuery verändert (siehe auch in der Statuszeile).

In meinem Beispiel verwende ich als Datenquelle ein Power BI Datenmodel welches auf der WideWorldImporters Datenbank basiert und Sales information beinhaltet.

Im neuen DirectQuery Modus, haben wir nun (fast) alle Möglichkeiten, das Modell zu erweitern und zu verändern. Ein Beispiel dafür ist das Hinzufügen einer neuen berechneten Spalte. Das Context Menü bietet uns nun auch sehr viel mehr an Möglichkeiten:

Für die Überprüfung der Berechnung steht uns keine Data View zur Verfügung. Die Daten bleiben beim DirectQuery Modus im remote Modell, das lokale Modell beinhaltet eine Referenz darauf! Für die Überprüfung habe ich nun eine Matrix auf die Report Seite hinzugefügt:

Als nächste Zutat: Exceldaten

Bisher war das ja noch nicht allzuspannend – als nächsten Schritt fügen wir eine zusätzliche Datenquelle in das lokale Datenmodell hinzu: eine Excel Liste mit den Sales Mitarbeitern.

Nach den notwendigen Aufbereitungsschritten bekommen wir von Power BI Desktop einen Dialog dargestellt:

Die Frage ist nun: Warum? Beim DirectQuery Modus und wenn Daten aus zwei oder mehreren Datenquellen miteinander in lokalen Modell verbunden sind, kann es sein, dass Dateninhalte aus einer Quelle (z.B. ein Mitarbeitername) als Filter im Sales Datenmodell verwendet wird.

Das lokale Datenmodell stellt sich im ersten Schritt wie folgt dar. Zwei Dateninseln (Sales und Employees) welche noch nicht miteinander verbunden sind. Was noch fehlt ist eine Brücke (=Beziehung) zwischen diesen beiden Tabellen.

Die Verbindung kann wie bereits gewohnt durch Drag & Drop erstellt werden.

Hinter den Kulissen – Architektur

Was geschieht hinter den Kulissen? Sobald wir von einer Live-Verbindung zu einer DirectQuery gewechselt sind, wurde von Power BI Desktop ein lokales Datenmodell erzeugt.

Das lokale Datenmodell beinhaltet eine Referenz auf das remote Datenmodell (Sales), keine Daten werden kopiert – es ist einfach “nur” eine Referenz auf das Datenmodell.

Das lokale Datenmodell (Sales with Employees) ist unser composite Model, welches das Sales Modell und unsere Excel Liste zusammenbringt.

Jetzt wird ausprobiert…

Um das neue Datenmodell zu testen, habe ich eine Matrix erstellt, um

  • den Wert für LineTotal (=die berechnete Spalte im lokalen Modell)
  • für jeden Employee (aus dem Excel File im lokalen Modell)
  • für jedes Kalenderjahr (=Attribut aus dem remote Datenmodell)

auszuwerten. Funktioniert ohne Probleme und es fühlt sich so an, wie ein einzelnes Datenmodell.

Für uns Power BI Entwickler ist die einfache Verbindung zwischen zwei Dateninseln ein simpler Task – im Hintergrund jedoch bietet uns dieser Ansatz ein bisher ungeahntes und mächtiges Werkzeug. Es handelt sich um die bisher fehlende Möglichkeit, Self-Service BI mit dem zentralen Enterprise Semantic Model zu verbinden. Und dies einfach! Ohne großartige Konfiguration, ohne Wartezeit bis die weiteren Daten in das ESM wandern usw.

Die im Dezember 2020 veröffentlichte Funktionalität ist eine Preview Version! Somit gilt: ACHTUNG! Aktuell vorhandene Einschränkungen und geplante Erweiterungen können im Power BI Blog und der Dokumentation nachgelesen werden:

In diesem Sinne – so kann ein Jahr enden und ein neues spannendes Jahr beginnen!

Quelle für das Featured Image: https://www.pexels.com/photo/selective-focus-photography-cement-2219024/

Leave a Reply

Your email address will not be published. Required fields are marked *

*

code