What the ...? Dataset, Dataflow, Datamart, Datamart, ich lese nur noch Data! Was ist das alles, und wo ist der Unterschied? Ein kleiner Orientierungsversuch.
1. Dataset
An einem Dataset kommt man in Power BI nicht vorbei. Es ist die Einheit, die jedem Bericht zugrunde liegt und Daten so organisiert, dass sie mittels DAX (Data Analysis Expressions) auswertbar werden.
Als best practice gilt hier das sogenannte Star Schema, aber auch flache Tabellen oder Snowflake Schemata können damit untersucht werden. Veratnwortlich dafüpr die ist die Vertipaq Engine, die spalten-basierte Berechnungen in atemberaubender Zeit durchführt.
Datasets werden speziell für die Berechnungen eines Berichts zusammengestellt. Das heißt, sie speichern zwar Daten in einer bestimmten Form ab, aber sie sind keine eigentliche Datenbank. Per Power Query werden die Daten aus einer Quelle (z.B. Excel, Sharepoint, Datenbank, …) im sogenannten ETL Prozess (Extract, Load, Transform) in das Dataset geladen und in der Regel dabei verändert. Verändern heißt in diesem Zusammenhang nicht verfälscht, sondern für die spätere Verwendung bereit gemacht. Das kann eine bloße Auswahl von Feldern sein (=Spalten), ein Filtern auf bestimmte Zeit- oder Organisationswerte, anreichern mit anderen Informationen, und und und.
Data Sets kommen mit jeder Lizensierung. Sobald man die Entwicklungsversion Power BI Desktop öffnet, erstellt man automatisch ein Dataset.
2. Dataflow
Dataflows werden häufig auch als „Power Query Online“ bezeichnet und das trifft es ganz gut. Im wesentlichen werden damit gleiche oder ähnliche Prozesse wie im normalen ETL Prozess gebaut, allerdings ist der Output eine (oder mehrere) .csv Datei. Diese wird, wie das Dataset, im Power BI Service gespeichert, sodass mehrere Nutzer gleichzeitig davon profitieren können.
Die Dataflows werden unzusammenhängend tabellarisch gespeichert, das heißt
- es können keine Beziehungen zwischen den Tabellen hinterlegt werden
- sie können, müssen aber nicht in einer Pivot Table angezeigt werden. Das ist teilweise praktisch, wenn man gar keine Aggregation vorhat, sondern beispielsweise nur Mappings erstellen muss
Dataflows gibt es für Pro und Premium Lizenzen. Allerdings gibt es bei Pro die Einschränkung, dass „berechnete Tabellen“ nicht angezeigt werden können. Diese Meldung von Microsoft ist allerdings irreführend:
Man kann sehr wohl mehrere Tabellen miteinander verbinden (=join/merge). Aber nur die „letzte“, also die zusammengeführte Tabelle lässt sich in den Service laden. Die Hilfstabelle muss dafür im Hintergrund als „nicht geladen“ stehen bleiben.
3. Datamart
Datamarts werden ebenfalls via Power Query eingesteuert, allerdings in einer Cloud SQL Datenbank gespeichert. Damit werden nun die Limitationen von Dataflows gestrichen. Es lassen sich Beziehungen hinterlegen, verschiedene DAX Berechnungen können ausgeführt werden und es gibt das RLS Sicherheitskonzept (Row Level Security).
Datamarts können per Online Query Editor connected werden, aber auch mit anderen Tools wie SQL Server Management Studio oder Azure Data Studio. Auch die Sprachauswahl bleibt einem frei – sowohl DAX als auch SQL können angewendet werden.
Um Datamarts verwenden zu können, benötigt man Power BI Premium, genauer Power BI Premium Gen 2. Es gibt ein Limit von 100GB Speicherkapazität.
4. Dataverse
Ähnlich wie Datamarts ist das Dataverse eine in der Cloud angesiedelte SQL Datenbank, allerdings ohne direkte Verbindung zu Power BI. Der Hauptunterschied liegt allerdings den Anwendungsbereichen. Während Datamarts für analytische Anwendungen optimiert sind, ist das Dataverse für Transaktionsprozesse gedacht. Diese Transaktionsprozesse sind kleine, schnelle Daten-Transaktionen, optimiert für Echtzeit- Prozesse und somit eher für operative Anwendungen.
Im BI Universum werden also die OLAP Anwendungen (Online Analytical Processes) den gewichtigeren Part einnehmen als die OLTP Anwendungen (Online Transaction Processes), aber der Vollständigkeit halber, und weil die Namensgebung seitens Microsoft hier wieder äußerst gelungen ist, habe ich das Dataverse in die Beschreibung mit aufgenommen.