Das Aufteilen einer Power BI Anwendung in eine DATASET-Anwendung und eine oder mehrere damit verbundene REPORT-Anwendungen ist eine sehr wichtige Architekturoption für die Realisierung zahlreicher Praxisanforderungen mit Power BI. Einerseits wird damit das arbeitsteilige gleichzeitige Arbeiten am Dataset (durch das "Daten Team") und an den Reports (durch die "Reporting Teams") möglich. Andererseits können damit auch differenzierte Zugangsberechtigungen zu Reports umgesetzt werden, die aber alle mit dem gleichen (zentralen) Dataset verbunden sind und damit garantiert die gleichen Daten anzeigen.
In der Praxis ist es sehr effektiv, zurerst eine normale kombinierte PBIX-Anwendung ("Normalfall") zu erstellen und das Splitting in eine (Shared) DATASET- und eine oder mehrere REPORT-Anwendungen erst beim Go Live vorzunehmen. Die Vorgehensweise beim Splitting wird in diesem Teil 1 der Blogbeitragsserie behandelt, im Teil 2 geht es dann um das Handling von Shared Datasets in der Praxis.
Architekturoptionen in Power BI
In Power BI stehen über den "Normalfall" der kombinierten PBIX-Anwendung mehrere Architekturoptionen zur Verfügung, das "Shared Dataset" ist dabei die am einfachsten umzusetzende fortgeschrittene Option:
Vorgehensweise: Ausgangssituation
Unser Ausgangssituation ist also eine normale PBIX-Anwendung mit allen 3 Komponenten von Power BI Desktop:
- Queries
- Datenmodell
- Report Pages
Als ersten Schritt wird die PBIX-Datei 2x dupliziert und einmal als "Dataset" und einmal als "Report" benannt:
Vorgehensweise: Erstellen der Dataset Anwendung
Aus der PBIX-Datei mit der Bestimmung "Dataset" werden sämtliche Visualisierungskomponenten gelöscht:
- Report Pages (bzw. bleiben nur Pages zur Doku der Queries und des Datenmodells)
- Custom Visuals
- Bookmarks
- usw.
Nach diesem Rückbau wird die PBIX-Datei in den Ziel-Workspace hochgeladen, das dabei zwangsläufig erstellte Report-Artefakt sollte aus Übersichtlichkeitsgründen gelöscht werden (die Doku der Queries und des Datenmodells ist dann nur lokal in in der PBIX-Datei verfügbar):
Vorgehensweise: Erstellen der Report Anwendung
Aus der anderen PBIX-Datei mit der Bestimmung "Report" werden die Queries und das Datenmodell gelöscht und stattdessen mit einem "Live Connect" mit der im Cloud Service bereitgestellten DATASET-Anwendung verbunden.
Dazu wird zurerst Power Query gestartet ...
... und dort alle Queries (ggfs. in der Reihenfolge der Abhängigkeiten) gelöscht:
Zum Abschluß wird dann die leere Power Query Umgebung mit Close & Apply auf das Datenmodell übertragen ...
... und damit alle importierten Tabellen aus dem Datenmodell entfernt, was zum vorläufigen Zusammenbruch aller Reports führt. Zum Abschluß löschen wir noch alle Calculated Tables (hier: der Measures Table mit den Measures) ...
... um ein vollständig leeres Datenmodell zu erhalten. Jetzt starten wir mit Get Data -> Power Platform -> Power BI Dataset den Reconnect ...
... und wählen die bereitgestellte DATASET-Anwendung aus dem Ziel-Workspace aus:
Damit wird eine "Live Connect" Verbindung zum Dataset hergestellt, leicht zu erkennen an der Verbindungsinformation rechts unten und am fehlenden Button für den "Data View" am linken Rand von Power BI Desktop. Mit der wiederhergestellten Verbindung werden schlagartig alle Visuals wieder funktionstüchtig:
Diese REPORT-Anwendung wird jetzt ebenfalls mit der Funktion Publish in den Cloud Service hochgeladen.
Ergebnis
Die Trennung in eine DATASET- und eine REPORT-Anwendung wird jedenfalls dann vorgenommen, wenn es mehrere REPORT-Anwendungen (für verschiedene Empfänger) auf das gleiche DATASET geben soll. Jetzt können weitere REPORT-Anwendungen (hier: "Another Report") mit einem Live Connect erstellt und bereitgestellt werden:
Im zweiten Teil dieser Blogserie sehen wir uns einige praktische Implikationen beim Umgang mit Shared Datasets an.
Quellen
https://docs.microsoft.com/en-us/power-bi/guidance/report-separate-from-model
https://powerbi.tips/2020/06/split-an-existing-power-bi-file-into-a-model-and-report