Tutorial von Philipp Lenz, Adesso Datenmodellierung und Präsentation mit Power BI

Autor / Redakteur: Philipp Lenz / Nico Litzel |

Die Power-BI-Plattform ist nun seit mehr als einem Jahr auf dem Markt und bietet die Möglichkeit, Daten in einem Datenmodell zu orchestrieren und in beeindruckenden Dashboards zu visualisieren. Die Herkunft der Daten ist dabei nicht nur auf Datenquellen von Microsoft beschränkt, sondern erstreckt sich auch auf viele andere wie beispielsweise Oracle, OData, Flatfiles etc.

Anbieter zum Thema

Der Autor: Philipp Lenz ist Business Intelligence Senior Consultant und bei der Adesso AG am Standort Köln tätig. Mit Beginn von Microsoft Power Pivot für Excel hat er seine Leidenschaft für diese Technologien entdeckt. Seit Mitte 2016 führt er als Gründungsmitglied auch die Microsoft Power BI Usergroup in Köln.
Der Autor: Philipp Lenz ist Business Intelligence Senior Consultant und bei der Adesso AG am Standort Köln tätig. Mit Beginn von Microsoft Power Pivot für Excel hat er seine Leidenschaft für diese Technologien entdeckt. Seit Mitte 2016 führt er als Gründungsmitglied auch die Microsoft Power BI Usergroup in Köln.
(Bild: Adesso)

So schön und einfach der Aufbau eines Datenmodells in vielen Demonstrationen aussieht, so schnell ist es in der Praxis auch umgesetzt. Aber die Komplexität im Modell steigt durch stetig wachsende Anforderungen und die Datenmenge. Die Praxis strapaziert somit das Datenmodell und auch dessen Wartbarkeit. Der folgende Artikel zeigt Best-Practice-Lösungsansätze für optimale Datenmodelle auf und erläutert Möglichkeiten individueller Visualisierungsformen, um optimale Darstellungen zu zaubern. Der Artikel zeigt zudem, wie Informationen in Organisationen verteilt sind und wie sich bestehende SQL-Server-Berichte in Microsoft Power BI einbinden lassen.

Datenmodelle von Anfang bis Ende richtig planen und sie auf die Quellen abstimmen

Abbildung 1: Datenquellen
Abbildung 1: Datenquellen
(Bild: Philipp Lenz)

Wie in Abbildung 1 zu sehen ist, werden verschiedenste Daten in ein Datenmodell durch die Vielzahl an Verbindungsmanagern in ein Power-BI-Modell importiert. Diese Datenquellen haben in der Regel unterschiedlichste Aktualisierungs-Rhythmen und Granularitäten. Dies ist eine der Herausforderungen für die ETL-Prozesse und den Datenimport, um die Daten im Datenmodell auf ein gemeinsames fachliches Level zu heben. Hier empfiehlt es sich, eine „High Level Map“ als Dokumentation mit den Aktualisierungsintervallen zu erstellen und bei Bedarf nur einzelne Datenquellen zu aktualisieren, um die Daten nach Aktualität zu organisieren. Lässt sich hier dauerhaft kein gemeinsamer Nenner finden (weil zum Beispiel manche Datenquellen sich schneller und andere sich langsamer oder unzuverlässiger aktualisieren), ist es sinnvoll, eine ETL-Strecke in ein Data-Warehouse zu implementieren mit dem Ziel, eine Analyseschicht für Auswertungen bereitzustellen.

Daten-Importe richtig umsetzen

Ist diese Hürde genommen, lässt sich mit dem Importieren und dem Erstellen eine Microsoft-Power-BI-Mappe starten. Für den Import in Power BI lassen sich einerseits die Daten direkt in das Datenmodell importieren oder via Power Query, beziehungsweise mit der Programmiersprache „M“ transformiert in das Datenmodell einfügen, und zwar indem man Daten filtert, aggregiert oder durch Berechnungen anreichert. Durch Filtern der Daten lässt sich die Datensparsamkeit in den Vordergrund stellen und im Vorhinein bestimmen, welche Zeilen und Spalten importiert werden. Auch wenn sich Power BI durch eine Engine auszeichnet, die unter anderem die Daten komprimiert speichert, empfiehlt es sich, nicht alle Daten zu importieren, um dauerhaft eine optimale Performance und Übersichtlichkeit zu haben. Der Vorteil: Das Aktualisieren der Datenquellen wird verkürzt.

Abbildung 2: Import-Prozess in Microsoft Power BI Desktop
Abbildung 2: Import-Prozess in Microsoft Power BI Desktop
(Bild: Philipp Lenz)

Zu beachten ist, dass es sich um eine spaltenorientierte Datenbank-Engine handelt, welche die jeweiligen Spalten in je einem Speicherbereich hält, das bedeutet, weniger Daten, kleinere Speicherbereiche, bessere Indizierung und somit weniger Arbeitsspeicher-Verbrauch sowie bessere Performance. Nutzer, die Datenquellen aus Datenbanken verwenden, die bereits in der Abfrage das Filtern von Daten ermöglichen, sollte diese bevorzugt verwenden. So lassen sich zum Beispiel auch über Sichten beide Filterarten direkt auf dem Server anwenden. Spätere Aggregationen der Daten lassen sich einerseits auf dem Server durchführen, andererseits beim Verbinden weiterer Datenquellen, die nicht aus der Datenbank entnommen werden, innerhalb von Power Query.

Die Modellierung bestimmt die Funktionalität

Was für performante OLAP Cubes gilt, gilt auch für Power BI. Je nach Möglichkeit empfiehlt es sich Star- beziehungsweise Snowflake-Schemata einzusetzen, die dimensional modelliert sind. Dies ermöglicht nicht nur übersichtliche Datenmodelle, sondern auch das Einstellen der Filter-Richtung.

Abbildung 3: Filter-Richtungen in Microsoft Power BI Desktop (einfach, links und beidseitig, rechts im Bild)
Abbildung 3: Filter-Richtungen in Microsoft Power BI Desktop (einfach, links und beidseitig, rechts im Bild)
(Bild: Philipp Lenz)

Durch die Filter-Richtungen lässt sich festlegen, ob alle Möglichkeiten dargestellt sind, welche die Dimensionen anbieten oder nur die, die im aktuellen Filter-Kontext noch zur Verfügung stehen. Wenn hingegen alle Daten in einer breiten Tabelle bereitgestellt werden, ist eine solche Einstellung nicht möglich. Nach Möglichkeit sollten Nutzer numerische Schlüsselattribute einsetzen, da das Datenmodell diese schneller verarbeiten kann und sie eine bessere Kompression und Indizierung ermöglichen.

Weiterhin ist es empfehlenswert, auch eine Datumsdimensionstabelle zu verwenden mit der sich zum Beispiel 2-Fakten-Tabellen miteinander verbinden und filtern lassen. Ein Beispiel ist die CALENDAR() Funktion in DAX, die eine entsprechende Tabelle erzeugt und die sich über die Funktionen Day(), Month() etc. ausbauen lässt.

Abbildung 4: Datenmodell mit Measure-Table (Microsoft Power BI Desktop)
Abbildung 4: Datenmodell mit Measure-Table (Microsoft Power BI Desktop)
(Bild: Philipp Lenz)

Um das Bedienen zu erleichtern sowie eine Governance von Kennzahlen zu gewährleisten, sollten alle Spalten aus dem Datenmodell ausgeblendet werden, mit denen Kennzahlen gebildet werden können. Dafür sind in DAX entsprechende Measures (berechnete Kennzahlen) zu erstellen, die in einer eigenen Measure-Tabelle abgelegt werden. Dafür wird eine leere Tabelle über den Menüpunkt „Daten eingeben“ erstellt. In dieser Tabelle werden dann die Measures erstellt. Dieses Vorgehen erlaubt es, komplexe sowie einfache Berechnungen im Datenmodell zentral zu platzieren. Dies wird für alle sinnvollen Zahlen, die in den Fakten enthalten sind, durchgeführt, um weiterhin den „Self-Service-BI“ Aspekt zu erhalten. Explizite Measures ermöglichen ein schnelles Wiederverwenden sowie das Sicherstellen der korrekten Berechnung. Damit das alles übersichtlich ist, sollte das Datenmodell noch „feingetuned“ werden, indem alle technischen Spalten, die für Verbindungen zwischen Tabellen notwendig sind, ausgeblendet werden. Jedoch ist hier eine entsprechende Governance eindringlich empfohlen, um auf bestehende Datawarehouse-Lösungen zurückgreifen zu können beziehungsweise auf den dortigen Cubes die vorhandenen berechneten Measures und KPIs wiederverwenden zu können.

Mit Custom Visuals Daten besser präsentieren

Abbildung 5: Custom Visuals innerhalb von Microsoft Power BI
Abbildung 5: Custom Visuals innerhalb von Microsoft Power BI
(Bild: Philipp Lenz)

Mit Custom Visuals lassen sich Power-BI-Berichte neben den vorhandenen Visualisierungen ausbauen. Sie stehen in der Galerie zur Verfügung. Die Visualisierungen werden anhand der JavaScript-D3-Bibliothek im Zusammenspiel mit CSS entwickelt. Innerhalb von Power BI können diese durch wenige Klicks integriert werden. Zusätzlich lassen sich über die Webseite des Synoptic Designer individuelle Grafiken erstellen und so zum Beispiel Geschäftsprozesse mit Daten visualisieren.

Verteilen von Dashboards und Berichten

Microsoft Power BI bietet mehre Möglichkeiten, um Dashboards und Berichte zu verteilen. Berichte lassen sich zum einen in sogenannten Arbeitsbereichen organisieren und innerhalb vorhandener Office-365-Gruppen aus dem Azure Active Directory teilen. Zum anderen lassen sich Dashboards innerhalb und außerhalb der Organisation teilen. Letzteres lässt sich einstellen, damit Daten nicht in falsche Hände geraten. Dashboards an Externe zu verteilen ist beispielsweise dann eine interessante Option, wenn Unternehmen Dienstleister oder Zulieferer in ihre Prozesse mit einbinden und über den aktuellen Stand informieren möchten. Als weitere Möglichkeit steht das Veröffentlichen von Berichten ins Internet zur Verfügung. Der Bericht steht als öffentlicher Link zur Verfügung und kann unter anderem als IFrame in eine Webseite eingebunden werden. Zusätzlich bietet Power BI Schnittstellen zum Einbinden der Berichte via REST-Schnittstelle in Webseiten und Apps an.

Integration von Reporting-Services in Power BI

Abbildung 6: Microsoft SQL Server Reporting Services 2016
Abbildung 6: Microsoft SQL Server Reporting Services 2016
(Bild: Philipp Lenz)

Mit Microsoft SQL Server 2016 kam neuer Schwung in die Reporting-Services-Welt. Neu sind die Mobile Reports. Bei den klassischen Paginated Reports besteht nun die Möglichkeit, den Reporting-Services-Dienst über die Verwaltungskonsole mit einem Power BI Tenant zu verbinden. Von dort können die Benutzer Elemente aus den Berichten an vorhandene Power-BI-Dashboards „anheften“. Voraussetzung ist hierfür jedoch, dass die Datenquellen gespeicherte Anmeldeinformationen beinhalten und sich der jeweilige Benutzer mit seinen Power-BI-Anmeldeinformationen einloggt. Das Einloggen muss der Nutzer alle 90 Tage wiederholen, damit die Aktualisierung weiterhin funktioniert. Ab dem Einloggen aktualisiert der SQL-Server-Agent die Reporting-Services-Kachel vom Bericht automatisch. Sobald der Nutzer auf eine Reporting-Services-Kachel innerhalb eines Power-BI-Berichts klickt, wird er auf den Berichtsserver navigiert. Hierzu ist erforderlich, dass der Benutzer eine Verbindung zum Berichtsserver hat.

(ID:44414963)