Real Time Intelligence ist eine der spannendsten Funktionen in Microsoft Fabric und bietet enormes Potenzial für Echtzeit-Szenarien.

Da ich ein großer Fan von Real Time Intelligence bin, wollte ich nicht nur theoretisch damit arbeiten, sondern ein privates Praxisprojekt umsetzen, um die Möglichkeiten von Fabric besser zu verstehen. Zwar stellt Microsoft zahlreiche Tutorials zur Verfügung, um RTI kennenzulernen.

So entstand die Idee, meine Photovoltaikanlage mit Microsoft Fabric und Real Time Intelligence zu verbinden und die erzeugten Daten in Echtzeit zu verarbeiten und auszuwerten – ein persönliches Projekt, das mir gleichzeitig ermöglicht, die Technik praxisnah zu erforschen.

Ein bewusst unkonventioneller Ansatz

Der naheliegendste Weg wäre gewesen, die Daten direkt über eine InfluxDB abzurufen und anschließend entsprechend aufzubereiten. Wie bereits erwähnt, habe ich mich jedoch bewusst dagegen entschieden. Stattdessen bin ich einen anderen Weg gegangen und habe die Daten über eine Webseite der Photovoltaikanlage bezogen, die diese Informationen ebenfalls zur Verfügung stellt.

Dieser Ansatz ist sicherlich nicht der klassischste, eignet sich aber hervorragend, um Real-Time-Szenarien in Microsoft Fabric praxisnah zu testen.


Wichtiger Hinweis

Der gesamte Code, der für dieses Projekt notwendig ist, befindet sich in meinem GitHub-Repository:

👉 https://github.com/renefuerstenberg

Bitte beachtet:
Auch wenn der Code frei verfügbar ist, ist ein gewisses technisches Know-how erforderlich, um das Projekt erfolgreich nachzubauen. Ich werde in diesem Blog bewusst nicht jeden einzelnen Schritt im Detail erklären, sondern mich auf die wesentlichen Komponenten und Konzepte konzentrieren.


Testaufbau und Voraussetzungen

Für den Testaufbau habe ich folgende Komponenten benötigt und eingerichtet:

  • Azure Function mit einem Consumption Flex Plan

  • VPN Gateway zur Anbindung an meine Fritz!Box

  • Microsoft Fabric Trial-Kapazität inklusive Workspace

Dies sind lediglich die grundlegenden Bausteine des Setups.

Für das Deployment der Azure Function habe ich Visual Studio Code verwendet. Die weitere Konfiguration und Darstellung erfolgte größtenteils über das Azure Portal – mit Ausnahme des VPN Gateways, das bereits im Vorfeld eingerichtet war.

Hier erst Mal das Architekturdiagramm.

Architekturdiagramm Aufbau Projekt Real Time Intelligence

Schritt 1 - Erstellung des Workspaces in Fabric

Um einen Workspace zu erstellen, musst du dich zunächst im Microsoft-Fabric-Portal anmelden. Dies ist über folgende URLs möglich:

Unter app.powerbi.com sollten wir dann später in den Bereich Fabric wechseln. Der Menüpunkt befindet sich unten links. Siehe auch Screenshot „Fabric Portal“

Nach der Anmeldung gehst du wie folgt vor:

  1. Navigiere im Menü zu Workspaces

  2. Klicke auf New Workspace

  3. Vergib einen passenden Namen für den Workspace

  4. Wähle als Kapazität entweder TRIAL (falls verfügbar) oder eine vorhandene Fabric-Kapazität aus

Nach dem Anlegen des Workspaces solltest du die entsprechende Konfiguration überprüfen.

📸 Siehe dazu die folgenden Screenshots.

Schritt 2 - Fabric Items erstellen - EventStream

Im nächsten Schritt erstellen wir die benötigten Fabric Items, um die Daten entsprechend empfangen und verarbeiten zu können.

Zunächst gehst du wie folgt vor:

  1. Klicke auf New Item

  2. Wähle Eventstream aus

  3. Vergib einen Namen und bestätige die Erstellung

Anschließend fügst du eine Datenquelle hinzu:

  1. Klicke auf Add Source

  2. Wähle Custom Endpoint

  3. Vergib einen Namen und bestätige


Wichtiger Hinweis zum Veröffentlichen

Damit Microsoft Fabric die Daten im Event Hub korrekt bereitstellt, muss der Eventstream zuerst veröffentlicht werden. Erst nach dem Veröffentlichen werden der Event Hub Name sowie der Endpoint Name angezeigt.

Die Schaltfläche Publish (Veröffentlichen) befindet sich oben rechts im Editor.


Vorbereitung für die Azure Function

Sobald der Eventstream veröffentlicht wurde, können der Event Hub Name und der Endpoint Name in der Azure Function hinterlegt werden.

💡 Empfehlung:
Speichere dir diese beiden Werte in einem Textdokument. So kannst du sie im nächsten Schritt bei der Erstellung der Azure Function direkt und fehlerfrei eintragen.

Schritt 3 - Azure Function im Azure Portal

Im nächsten Schritt habe ich die Azure Function erstellt. In diesem Abschnitt zeige ich einen Auszug der fertigen Function in Form von Screenshots, ergänzt durch weitere Bilder – unter anderem auch einen Screenshot der Webseite, von der die Daten geladen werden.


Erforderliche Anpassungen in der Azure Function

Damit die Azure Function korrekt funktioniert, sind einige Anpassungen notwendig:

  • Die Azure Function muss eine Verbindung zur lokalen Photovoltaikanlage herstellen können (in meinem Beispiel über das lokale Netzwerk).

  • Ich nutze einen Event Hub in Microsoft Fabric (Details dazu folgen später).
    Dafür müssen der Event Hub Name sowie der Endpoint in der Function entsprechend konfiguriert werden (siehe Screenshot).

  • Wichtig: Nach der Anpassung der Konfiguration müssen die Local Settings in die Azure Function hochgeladen werden.


Trigger und Abrufintervalle

Die einzelnen Functions rufen die Daten jede Minute ab. Dieses Intervall kann pro Function in der Datei functions.json angepasst werden. Auch hierzu habe ich einen Screenshot ergänzt.

Zusätzlich habe ich Time-Trigger-Functions verwendet, um die regelmäßige Ausführung der Datenabfragen sicherzustellen.

Schritt 4 - Eventhouse erstellung

Datenfluss zum Event Hub und Erstellung des Eventhouse

Sobald die Azure Function erfolgreich deployed wurde und die Konfiguration für den Event Hub korrekt ist, werden die Daten automatisch an den Event Hub gesendet.

Funktioniert dieser Schritt wie erwartet, können wir im nächsten Schritt das Eventhouse erstellen und die benötigten Tabellen anlegen, um die eingehenden Daten dauerhaft zu speichern.


Erstellen des Eventhouse

Gehe dazu wie folgt vor:

  1. Klicke auf New Item

  2. Wähle Eventhouse aus

  3. Vergib einen Namen und bestätige die Erstellung

Nach der Erstellung wirst du automatisch auf die Eventhouse-Seite weitergeleitet. Von dort aus kannst du zur Datenbank wechseln und weitere Einstellungen vornehmen.


Anlegen der Tabellen mit einem Queryset

Im nächsten Schritt habe ich die benötigten Tabellen über ein Queryset angelegt. Sobald das Queryset ausgeführt wurde, erscheinen die neu erstellten Tabellen auf der linken Seite.

Was macht das Queryset?
  • Es legt alle benötigten Tabellen an

  • Es erstellt die Functions für die Daten­transformationen


Hinweis

ℹ️ Die verwendeten Skripte sind – wie bereits erwähnt – vollständig in meinem GitHub-Repository zu finden.

Schritt 5 - Ziel im Eventstream anlegen

Konfiguration des Ziels im Eventstream

Um das Ziel im Eventstream zu konfigurieren, wechsle ich zunächst zurück in den Eventstream und wähle dort als Ziel das Eventhouse aus. Anschließend erfolgt die entsprechende Konfiguration.

Als Ingestionsart habe ich Direct ingestion ausgewählt. Die Transformationen führe ich bewusst nicht im Eventstream, sondern über Functions im Queryset aus.


Veröffentlichen und Zieltabelle auswählen

Damit die nächsten Schritte durchgeführt werden können, muss der Eventstream erneut veröffentlicht werden. Erst danach ist es möglich, die Zieltabelle auszuwählen.

Die Schritte im Überblick:

  1. Auf Konfigurieren klicken

  2. In meinem Fall die Tabelle import_solarsystem auswählen

  3. Bestätigen und den Assistenten bis zum Ende durchlaufen


Kurze Erklärung zum Datenimport

Der Datenfluss sieht wie folgt aus:

  1. Die Daten werden über die Azure Function an den Event Hub gesendet

  2. Der Eventstream leitet die Daten an das Eventhouse weiter

  3. Die Daten werden in der Zieltabelle import_solarsystem gespeichert

  4. Anschließend werden Functions ausgeführt (siehe Screenshot),
    die die notwendigen Transformationen durchführen und
    die Daten in die entsprechenden Zieltabellen schreiben

Schritt 6 - Real Time Dashboard erstellen

Wenn bis hierhin alles erfolgreich funktioniert hat, werden die Daten der Photovoltaikanlage im Eventhouse gespeichert. Im nächsten Schritt können wir ein Real-Time-Dashboard erstellen, um diese Daten zu visualisieren.

Im zweiten Teil dieser Blog-Serie werde ich zusätzlich zeigen, wie die Daten in Power BI weiterverwendet werden. Darauf gehe ich an dieser Stelle jedoch noch nicht ein.


Anlegen eines Real-Time-Dashboards

Um ein Real-Time-Dashboard zu erstellen, gehst du wie gewohnt wie folgt vor:

  1. New Item

  2. Real-Time Dashboard auswählen

  3. Einen Namen vergeben und bestätigen

Nach dem Erstellen wirst du automatisch auf die Dashboard-Seite weitergeleitet.


Datenquelle auswählen und KQL-Abfragen erstellen

Im Dashboard kannst du nun die Datenquelle auswählen – in meinem Fall eine KQL-Datenbank aus dem Eventhouse. Anschließend hast du die Möglichkeit, KQL-Abfragen zu erstellen.

In meinem Projekt habe ich insgesamt vier Abfragen erstellt. Im Blog zeige ich exemplarisch, wie eine dieser Abfragen aufgebaut ist und welche Einstellungen ich vorgenommen habe.

📸 Siehe dazu die Screenshots.


Erstellung eines Visuals

Die Vorgehensweise ist wie folgt:

  1. KQL-Skript einfügen

  2. Auf RUN klicken, um zu prüfen, ob die Abfrage Daten zurückliefert

  3. Falls erfolgreich, den Bereich Visuals auswählen

  4. Als Visualisierung Line Chart auswählen

  5. Einen passenden Namen für das Visual vergeben

Die KQL-Skripte lassen sich selbstverständlich jederzeit an die eigenen Anforderungen anpassen.

Anschließend bestätige ich alles über Apply Changes.
Diesen Vorgang wiederhole ich für alle erstellten Abfragen – in meinem Fall vier Stück.


Finales Dashboard und Auswertungen

Das finale Dashboard ist im Screenshot zu sehen.
Im Real-Time-Dashboard lässt sich der Time Range dynamisch anpassen.

Aktuell werden folgende Werte angezeigt:

  • Aktuelle Leistung, die die Anlage erzeugt

  • Batteriespeicher der Anlage

  • Tagesverbrauch

  • Aktueller Verbrauch des Haushalts

Hier gibt es noch zahlreiche weitere Möglichkeiten, um die Daten der Anlage auszuwerten und zu analysieren.

Fazit Teil 1 – Real-Time-Daten in Microsoft Fabric

Im ersten Teil dieses Tutorials haben wir die Grundvoraussetzungen geschaffen, um Daten in Echtzeit in ein Eventhouse zu schreiben. Darüber hinaus haben wir ein Real-Time-Dashboard erstellt, das die Daten praktisch Near Real-Time anzeigt und uns einen direkten Einblick in die Photovoltaikanlage ermöglicht.

Im zweiten Teil der Serie werden wir diese Daten weiterverarbeiten und in Power BI visualisieren, um noch tiefere Einblicke und Auswertungen zu ermöglichen.

Ihr dürft gespannt sein!
Wenn ihr Anregungen oder Vorschläge habt, freue ich mich über eure Nachrichten über die üblichen Kanäle.