Getting started with Power BI Datamart

Wir leben im Zeitalter von Big Data. Die Herausforderung liegt darin, die Fülle an Daten effizient in wertvolle Erkenntnisse umzuwandeln. Einigen ist in diesem Zusammenhang Data Warehouse schon ein Begriff. Was jedoch ist Datamart? Was braucht man für die Implementierung? Im neuen Blogbeitrag zeigen wir Ihnen, welche Benefits Power BI Datamarts bieten – aber auch welche Schwierigkeiten auftreten können.

Was ist ein Power BI Datamart?

Prinzipiell ist ein Datamart eine einfache Form eines Data Warehouse, das sich auf ein Team oder einen einzelnen Geschäftsbereich (z.B. Finanzen, Marketing) konzentriert. Im Gegensatz zum Enterprise Data Warehouse kann ein Datamart relativ rasch implementiert werden, weil Datengrösse und Anzahl der Quellen geringer ist (Quelle: Microsoft). Power BI Datamarts stehen allen Power BI Premium und Premium per User Lizensierten zur Verfügung.

Power Bi Datamart kombiniert Dataflow, Azure SQL Datenbank und Dataset in einem webbasierten Interface. Wo früher mehrere Anwendungen oder Schritte nötig waren, um ein gewünschtes Ergebnis zu erzielen, reicht heute ein einziges Tool.

Ausserdem erstellt Datamart ein automatisch generiertes Dataset, mit dem man ohne grosse Mühe einen neuen Report erstellen kann.

Architektur eines Power BI Datamart (Quelle: Allgeier Schweiz)

Alles aus einer Hand mit dem Single Interface

Stellen Sie sich folgendes Szenario vor: Sie benötigen weder SSMS noch Visual Studio bzw. Power BI Desktop mehr, um Ihre eigene Data Warehouse in der Cloud zu erstellen. Klingt doch gut, oder? Mittlerweile können Sie all diese Prozesse im Power BI Datamart abwickeln.

Konkret funktioniert das folgendermassen: Mit dem webbasierten Userinterface erstellt man direkt im Power BI Arbeitsbereich (Premium Arbeitsbereich vorausgesetzt) einen Datamart, transformiert die eingelesenen Daten und erstellt ein Datenmodell mit den entsprechenden Beziehungen zwischen den Tabellen. Der PBI-Service generiert aus dem Datamart automatisch ein Dataset und stellt dieses dem User zur Verfügung. Alles, was Sie nur noch tun müssen, ist:

  • entweder direkt im Datamart auf «neuen Report erstellen» zu klicken oder
  • beim neuen Report den automatisch erstellten Datamart als Quelle zu wählen, um auf das Datenmodell zugreifen zu können.

Was man für die Nutzung von PBI Datamart braucht

Um Datamarts zu erstellen, braucht man keine separaten Azure SQL Datenbanken oder etwaige Lizenzen – man kommt sogar ohne Azure Subscription aus. Alles, was Ihr Unternehmen benötigt, ist eine Power BI Premium per User oder Premium Capacity Lizenz. Die Azure SQL Datenbank, Dataflows und Datasets sind in dieser Lizenz enthalten.

Unterschied zwischen Dataflow und Datamart

Der wesentliche Unterschied zwischen Dataflow und Datamart liegt im Datenzugriff, d.h. beim Power BI Dataflow werden Daten als csv-Files in einem Azure Data Lake Storage abgelegt, auf den man kein Zugriff hat. Bei Datamarts hingegen wird eine Azure SQL Datenbank im Hintergrund angelegt, auf die man auch mit der Connection String zugreifen und Query Abfragen machen kann.

Zudem kann man bei Datamart direkt auf die eingelesenen Tabellen im Azure SQL zugreifen und dort Abfragen erstellen, mit denen man Dateneinsicht bekommt.

SQL - Abfrage im Datamart (Quelle: Allgeier Schweiz)

Man kann Abfragen mittels Drag and Drop sowohl auf SQL-Ebene als auch auf der Visual-Query-Ebene erstellen.

Der Incremental Refresh auf Datamart Dataflow Ebene ist ein weiterer Vorteil.

Visuelle Darstellung von Power Query (Quelle: Allgeier Schweiz)

Co-Authoring: Bessere Zusammenarbeit im Team

Datamart bietet – im Gegensatz zu Dataflow – die Möglichkeit des Co-Authoring. Wollte früher ein neuer Benutzer einen bestehenden Dataflow von einem anderen anpassen, musste der Dataflow zuerst übernommen werden. Der User benötigte dafür die Berechtigungen für die darin liegenden Datenquellen, da Daten ansonsten nicht sauber geladen wurden.

Im Datamart hat man dieses Problem nicht mehr und kann unkompliziert den Datamart öffnen und gleich loslegen – vorausgesetzt man hat Zugriff auf den Arbeitsbereich, in dem sich der Datamart befindet.

Ein weiterer Vorteil für die Zusammenarbeit im Team sind die Co-Authoring Möglichkeiten im Bereich DAX Measures und Relationships. Wenn mehrere Personen lokal an einem Report arbeiten (um Beziehungen oder neue Measures zu erstellen) besteht die Gefahr, dass verschiedene Versionen entstehen und Anpassungen mühsam von Hand zusammengeführt werden müssen. Im Datamart kann man Measures und Relationships für das Datenmodell auf dem Datamart erstellen, das dann für alle darauf gebauten Reports angepasst oder hinzugefügt wird.

Bekannte Probleme und Nachteile im Datamart

Wir möchten an dieser Stelle auf bereits bekannte Probleme mit Datamart eingehen:

  • UI-Aktualisierung: 
    Werden grössere Mengen an Daten aktualisiert, dauert das Laden eine gefühlte Ewigkeit. Das muss man berücksichtigen und mehr Geduld mitbringen.
  • Crash bei Co-Authoring:
    Wenn mehrere User an einem Datamart gleichzeitig Anpassungen vornehmen und aktualisieren, verliert Datamart bei der Aktualisierung die zugehörige SQL-Datenbank im Hintergrund. Dadurch kann das Dataset nicht mehr geladen werden. Als Lösung bietet Microsoft mittlerweile einen Recovery Prozess, der die Funktionsfähigkeit von Datamart wiederherstellt. Dieser kann jedoch zwischen 4-6 Stunden dauern.
  • Date-Time Problem bei Dataflows als Quellen:
    Wenn man Dataflows als Quellen in einen Datamart einbindet, erscheint ein «Status 500 Error» laut dem die Daten aus dem Dataflow nicht im Datamart geladen werden können. Das Problem tritt auf, wenn man im Dataflow Datumsspalten hat, bei denen der Datamart die Regionsumwandlung nicht durchführen kann. Dieser Bug ist Microsoft bekannt und sollte demnächst behoben werden. Als Workaround kann man zunächst im Dataflow eine DateKey Spalte als Integer ablegen, um im zweiten Schritt im Datamart über eine Kalendertabelle, die für jedes Datum einen Integer DateKey hat, die Beziehung für die Modellierung aufbauen.
  • Refresh Schedule für Datamart mit Schwierigkeiten:
    Datamart bietet zwei Aktualisierungsmöglichkeiten: Entweder aktualisiert man den ganzen Datamart geplant oder einzelne Tabellen anhand ausgewählter Datumsspalten inkrementell. Ein Nachteil entsteht beim Einbinden von Archivdaten, die nicht täglich aktualisiert werden müssten. Auch wenn man diese über eine Datumsspalte als inkrementelles Laden konfiguriert, wird die täglich geplante Aktualisierung trotzdem ausgeführt.
    Ein weiteres Problem kann bei der Aktualisierung von Datamarts auftreten: Konkret führen Azure SQL Datenbanken mit über 40 Tabellen und 1,8 Mio. Einträgen dazu, dass die Aktualisierung vom Datamart in ein Timeout geht. Microsoft hat dieses Problem bereits als Bug identifiziert, das Bug Fix Ende wurde für Ende November angekündigt.
  • Besitzer kann noch nicht gewechselt werden:
    Derzeit ist es noch nicht möglich den Besitzer eines Datamarts zu wechseln. Das bedeutet, dass nur der Besitzer neue Tabellen hinzufügen und ein Devops Deployment auf ein bestehendes Datamart initiieren kann. Einen Workaround für ersteres gibt es noch nicht. Beim letzteren kann man das Problem umgehen, indem man den Datamart im Ziel löscht und das Deployment komplett neu initiiert.

Fazit

Mit dem Power BI Datamart bietet Microsoft eine kostengünstige Alternative zum Data Warehouse. Auch wenn das Feature aktuell noch im Preview ist und einige Fehler auftreten, konnten erste erfolgreiche Datamarts im produktiven Umfeld in Betrieb genommen werden. Der wichtige Punkt für KMUs liegt in der Kostenersparnis, da man mit einer einzigen Lizenz ein ganzes DWH über den Browser erstellen und verwalten kann. Was man hierbei allerdings beachten muss, ist die Datenmenge mit der man den Datamart aufbauen möchte bzw. wie diese Daten aufgebaut sind.

Quellen

;