Realtime Dashboards in Power BI – Teil 3: Visualisierung mit Power BI Streaming und Push Datasets

Die Realtime Dashboard Funktion in Power BI kann dazu verwendet werden, um Sensordaten in Echtzeit zu visualisieren und damit ein Monitoring in einem Internet-of-Things (IoT) Szenario zu implementieren. Toni Kerschbaummayr hat im Teil 1 dieser Beitragsserie gezeigt, wie die Hardware Raspberry Pi mit dem Sensor BME 280 konfiguriert wird. Im Teil 2 wurde gezeigt, wie die beiden Azure Services IoT Hub und Stream Analytics konfiguriert werden, um diese Sensordaten in Echtzeit aufzubereiten und an Power BI weiterzugeben.

In diesem dritten und abschließenden Beitrag zeigen wir, wie diese Streamingdaten in Power BI visualisiert werden können und was der Unterschied zwischen einem Streaming Dataset i.e.S. und einem Push Dataset ist.

1. Erzeugen des Streaming Datasets

In Power BI gibt es insgesamt 4 Möglichkeiten, um ein Streaming Dataset anzulegen:

  1. PubNub (siehe dieser Blogbeitrag)
  2. Azure Stream Analytics
  3. (Power BI REST) API
  4. Microsoft Flow

Azure Stream Analytics wird zwar im Power BI Cloud Service als Menüpunkt zur Anlage eines neuen Streaming Datasets angeboten, dort wird jedoch nur ein Hinweis angezeigt, daß die Anlage in Azure Stream Analytics erfolgt:

Wie im Teil 2 dieser Blogserie gezeigt, erfolgt die Konfiguration im Bereich Outputs des Azure Stream Analytics Jobs (hier: linearis-sensors-stream) ...

... das Power BI Streaming Dataset wird dann beim ersten Output Event des Stream Analytics Jobs (also beim ersten Sensorsignal) im Power BI Service angelegt:

Der JSON Datenstream des Datasets kann über den Befehl Edit eingesehen werden, die für die Visualisierungen wichtigen Felder sind die beiden Wertfelder temperature und humidity, die Zeitachse wird durch das Feld EventEnqueuedUtcTime abgebildet:

Besonders wichtig ist der Schieber zur Historic data analysis, mehr dazu weiter unten.

2. Streaming Tiles mit Power BI Dashboards ("Streaming Dataset i.e.S.")

Im Blogbeitrag Realtime Dashboards mit dem PubNub Stream wurde bereits im Detail gezeigt, wie Streaming Tiles in Power BI Dashboards angelegt werden, daher werden hier nur noch die wichtigsten Stationen gezeigt. In einem neu angelegten (leerem) Dashboard wird über den Befehl Add Tile ein Custom Streaming Data Objekt hinzugefügt, in der Dataset Auswahl steht das (über Azure Stream Analytics angelegte) Dataset Realtime Raspberry Pi zur Auswahl:

In den meisten Fällen eignet sich (wegen der relativen Skalierung) ein Line Chart am besten, die optischen Konfigurationsmöglichkeiten sind (wie bereits im PubNub Beitrag erläutert) leider sehr stark eingeschränkt:

Ein Dashboard mit je 1 Line Chart und 1 Card für Temperatur und Luftfeuchtigkeit ist dafür aber rasch erstellt:

3. Streaming vs. Push Dataset

Wir haben bisher in diesem Blog pauschal von Streaming Datasets gesprochen, jetzt verfeinern wir diese Definition. Power BI kennt 2 unterschiedliche Typen von Streaming Datasets:

  1. Streaming Dataset i.e.S.
  2. Push Dataset

Die Entscheidung darüber fällt der relativ unauffällige Schieber Historic data analysis in den Streaming Dataset Einstellungen (der Schieber steht übrigens nicht nicht bei der Erstellung über PubNub zur Verfügung, diese sind immer Streaming Datasets i.e.S.)

Beim Streaming Dataset i.e.S. werden die JSON-Datensätze aus der Datenquelle (Azure Stream Analytics, API, Micrsoft Flow, PubNub) direkt in das Power BI Streaming Dataset gesendet und dort lediglich für kurze Zeit gecached. Der Vorteil des Streaming Datasets ist, daß die Latenz sehr gering ist (2-3 sec), der Nachteil liegt darin, daß nur stark eingeschränkte Gestaltungsmöglichkeiten zur Verfügung stehen.

Beim Push Dataset wird (automatisiert) in SQL Azure eine relationale Datenbank (mit nur 1 Tabelle) als permanenter Speicher angelegt und das Power BI Dataset ist über den sogenannten Direct Query Modus verbunden. Der Nachteil besteht darin, daß die Latenz etwas größer ist (5-6 sec), der große Vorteil besteht aber in der Nutzung vieler (wenn auch nicht aller) Gestaltungsmöglichkeiten von Power BI inkl. der Anlage von Measures. Dazu kann der gesamte historische Datenbestand ausgewertet werden und so tiefere Einblicke gewonnen werden. Die SQL Tabelle ist (derzeit) auf 1 Million Datensätze beschränkt.

Hier die Vor- und Nachteile der beiden Datasettypen Push und Streaming. Beachten Sie bitte, daß im Original dieser Gegenüberstellung "PubNub" als dritter Datasettyp geführt wird, aus unserer Sicht handelt es sich bei PubNub ebenfalls um ein Streaming-Dataset, es gibt also nur 2 und nicht 3 Datasettypen.

Quelle: https://docs.microsoft.com/en-us/power-bi/service-real-time-streaming

4. Streaming Reports mit Power BI Desktop ("Push Dataset")

Der Riesenvorteil des Push Datasets liegt also in der Möglichkeit, Reports mit Power BI Desktop (oder natürlich auch dem Power BI Service) aufbauen zu können und dabei das gewohnte Instrumentarium für die Visualisierungen, Filterungen und Interaktionen nutzen zu können. Die Verbindung erfolgt über den Power BI Datasets Konnektor ...

... danach kann das gewünschte Push Dataset Realtime Raspberry Pi ausgewählt werden (Hinweis: Streaming Datasets i.e.S. wie das Realtime PubNub werden zwar auch in der Liste angezeigt, es kann aber keine Verbindung erstellt werden):

Technisch gesehen wird eine sogenannte Live Connection zum cloud-basierten (und über Azure Stream Analytics erzeugte) Push Dataset angelegt, das Dataset selbst ist wiederum im Direct Query Modus mit der relationalen SQL Datentabelle verbunden. Der Live Connection Modus wird einerseits rechts unten angezeigt, ist aber auch an den fehlenden Buttons für das Datamodel und die inaktive Query Komponente zu erkennen. Der Inhalt des Datasets entspricht 1:1 der relationalen SQL Tabelle und wird rechts in der Feldliste von Power BI Desktop aufgelistet:

Leider können die Default Summarization und die Formatierung der beiden Felder messageId und PartitionId nicht wie gewohnt konfiguriert werden, da das Datamodel nicht bearbeitet werden kann. Aber immerhin können (sog. Report Level) Measures bspw. für die beiden Kennzahlen Temperatur und Luftfeuchtigkeit definiert werden (was hier aufgrund der Einfachheit der Auswertung aber nicht gemacht wurde).

In Power BI Desktop können - anders als in den Streaming Tiles des Power BI Dashboards - alle Visuals mit sämtlichen Formatierungsoptionen genutzt werden. Dazu können Slicer als Filter eingesetzt werden und die Visuals filtern sich auch wie gewohnt gegenseitig (Crossfilter).

Kritisch ist anzumerken, daß die Slicer lediglich auf Datumsebene arbeiten und nicht auch Uhrzeit unterstützen (über die 00:00:00 Uhrzeit sind dann bei einer Selektion idR gar keine Ergebnisdatensätze zu sehen). Auch unterstützen die relativen Zeitfilter nur Jahre, Monate, Wochen und Tage aber nicht Minuten und Stunden:

Power BI Desktop ist also für Realtime Auswertungen noch nicht perfekt gerüstet und die Reports aktualisieren auch nicht automatisch, weder in Power BI Desktop noch nach dem Upload im Power BI Service. Jetzt aber die gute Nachricht: werden die Visuals des Reports an ein Dashboard angepinnt, dann aktualisieren diese sehr wohl automatisch im etwa im 3 Sekundentakt:

Kritisch ist hier anzumerken, daß nur die einzeln gepinnten Visuals automatisch aktualisieren, nicht aber gepinnte Reports Pages (zumindest hat das in unseren Tests bisher nicht funktioniert).

Evaluierung

Die Realtime Funktionalität in Power BI bietet insbesondere mit dem Push Dataset bereits heute sehr interessante Möglichkeiten. Als Power User sieht man natürlich auch gleich, daß hier noch Potential nach oben besteht: auch Push-Datasets sind nicht bearbeitbar (aber immerhin können Report-Level Measures definiert werden) und an ein Dashboard gepinnte Report Pages aktualisieren nicht automatisch (aber sehr wohl einzeln gepinnte Visuals aus dem Report).

Wie auch schon im PubNub Beitrag angesprochen, erscheint die Technologie der Streaming Datasets i.e.S. noch nicht ausgereift, es fehlen Funktionen und die Technologie wurde in der letzten Zeit auch nicht spürbar weiterentwickelt. Bezüglich auftretender Fehler und Bugs war unsere subjektive Wahrnehmung jedoch so, daß in diesem Setting hier deutlich weniger Anomalien aufgetreten sind als bei der Verwendung des PubNub Public Streams.

Die Beschränkung auf 1 Mio gespeicherte Datensätze im Push-Dataset wirft natürlich die Frage auf, welche Skalierungsmöglichkeiten bestehen, wenn das nicht ausreicht. Unserer Meinung nach derzeit keine direkte, da eine Ausgabe aus Stream Analytics bspw. in einen Azure Data Lake zwar möglich und sinnvoll ist, aber kein Push Dataset auf diesen Datenspeicher erstellt werden kann (sondern nur ein "normales" Dataset). Aber es können ja das Push (oder Streaming) Dataset parallel zur Auswertung des Data Lakes betrieben werden, insofern sollte die Zeilenbeschränkung kein Problem darstellen (auch bleibt die Direct Query Auswertung performanter, wenn die Tabelle nicht unendlich groß werden kann).

Zusammenfassend: trotz der Kritik im Detail liefert die heute verfügbare Realtime Technologie bereits für viele Einsatzszenarien spannende Möglichkeiten, die jedenfalls evaluiert und genutzt werden sollten.

Quellen

https://docs.microsoft.com/en-us/power-bi/service-real-time-streaming

https://studios.ppedv.de/lerne/2018%7cSQLDays%7cHowToEchtzeitdatensetsinPowerBI

Share on linkedin
Share on twitter
Share on facebook

Leave a Replay

Über den Autor

Blog auf Feedly abonnieren

Kategorien

Verwandte Beiträge

Kennen Sie schon data1.io?

data1.io ist unsere innovative Cloud Anwendung zum Sammeln, Aggregieren und Teilen von Geschäftsdaten innerhalb und außerhalb des Unternehmens.

Kostenlos zum Newsletter anmelden

Ihre Anfrage

Schicken Sie uns Ihre Fragen und Anregungen!