Azure Data Explorer und Digital Twins
Schweizer Taschenmesser für IoT-Lösungen
Mit digitalen Zwillingen lassen sich Verbindungen zwischen Objekten und ihre Eigenschaften anschaulich beschreiben. In IoT-Lösungen spielen zudem die aktuellen und historischen Zustände dieser Zwillinge oft eine wichtige Rolle. Microsoft bietet Software und Konzepte, um diese Daten zu verarbeiten und für Analysen bereitzustellen.
Um digitale Zwillinge zu modellieren und ihre Beziehungen abzubilden, stellt Microsoft den Dienst Azure Digital Twins bereit. Für die Modellierung dieser Ontologien wurde der Standard Digital Twin Definition Language (DTDL) ins Leben gerufen. Auf Basis der Modelle können dann Instanzen und Relationen erzeugt werden. Deren Nutzen lässt sich beispielhaft leicht verdeutlichen.
Das Szenario
Ein Museumsbetreiber möchte herausfinden, wie viele Menschen sich zum aktuellen Zeitpunkt in einem seiner Museen aufhalten. Für diesen Zweck darf der Museumsbetreiber bei einem Telekommunikationsanbieter aktuelle GPS-Daten abfragen. Darüber hinaus will der Anbieter grundsätzlich auswerten, zu welchen Zeiten das Museum besonders gut besucht ist.
Modellierung von realen Objekten als digitale Zwillinge
Um dieses Szenario in Digital Twins darzustellen, braucht es u.a. die Definition des Museums. Dieses wird mit der DTDL definiert und kann beispielsweise folgende Eigenschaften haben: Adresse, Geo-Standort, Baujahr, Größe des Gebäudes, Maximale Besucherzahl, Epoche und Ausstellungsstücke. Weitere Modelle für Stadtbezirke, Straßen und Gebäude können folgen. Im Kern der Ontologie, also der Begriffe, Regeln und ihrer Beziehungen untereinander, steht das Museum, das sich in einem Stadtbezirk befinden kann. Für einige Szenarien, wie etwa Smart Cities, stellt Microsoft eine grundlegende Ontologie auf GitHub bereit, in der Definitionen für Museen, Bezirke und mehr bereit enthalten sind. Der Thin[gk]athon, veranstaltet vom Smart Systems Hub, vereint kollaborative Intelligenz und Industrie-Expertise, um in einem dreitägigen Hackathon innovative Lösungsansätze für komplexe Fragestellungen zu generieren. ‣ weiterlesen
Innovationstreiber Thin[gk]athon: Kollaborative Intelligenz trifft auf Industrie-Expertise
Historisierung
Digital Twins fokussiert sich auf das Abbilden des aktuellen Zustands digitaler Zwillinge. Um auch historische Werte zu speichern, wurde kürzlich die Funktion Data History vorgestellt. Damit schreibt Digital Twins alle Änderungen der Zwillinge und der Relationen automatisch in einen Data Explorer. Dieser Service wurde speziell für Big Data-Szenarien gebaut und kann problemlos mehrere hundert Terabyte an semistrukturierten Daten pro Tag aufnehmen. Abfragen können in einer SQL-ähnlichen Abfragesprache namens Kusto Query Language (KQL) geschrieben werden und die Daten werden in einer relationalen Struktur in Datenbanken, Tabellen und Spalten gespeichert. Des Weiteren können die Daten des Digital Twins auch über sogenannte Event Routes an andere Dienste ausgeleitet werden.
Telemetriedaten
Zusätzlich zu den Eigenschaften digitaler Zwillinge gibt es vor allem in IoT-Szenarien Momentaufnahmen aktueller Zustände: Beispielsweise eine aktuelle Temperaturmessung. Mit der DTDL können die einzelnen Eigenschaften oder Felder eines Modells auch als Telemetrie markiert und dadurch besonders behandelt werden. Diese Werte ändern sich mit hoher Frequenz und der aktuelle Wert hat eher weniger Bedeutung. Leider gibt es aktuell noch keine native Verknüpfung von Geräten im IoT Hub und Digital Twins im Digital Twin Service. Aushilfsweise erfolgt dies über eine Azure Function, die Telemetriedaten von Geräten vom IoT-Hub entgegennimmt und an den Digital Twins Service weitergibt. Die relevanten Schnittstellen des Digital Twins Service sind aktuell auf 1000 Aufrufe pro Sekunde beschränkt, lassen sich aber mittels Support Ticket auf Anfrage erhöhen. Bei größeren Datenmengen sollten Nutzer den Data Explorer verwenden und die Daten über Event Hub einspeisen. Der Data Explorer kann ein Mapping der Events auf die Spalten einer Tabelle definieren und es ist somit kein zusätzlicher Code notwendig.
Abfragen am Digital Twin durch den Data Explorer
Für dieses Szenario wurde ein digitaler Zwilling für das Museum erstellt, dieser mit Eigenschaften und Geo-Daten befüllt und die Daten von GPS-Geräten über einen Event Hub in den Data Explorer geleitet. Die ursprüngliche Frage war, wieviel Kunden sich derzeit im Museum aufhalten. Hierfür bietet Data Explorer die Möglichkeit, innerhalb einer Query auf die Daten im Azure Digital Twin Service zuzugreifen. Dazu definieren die Entwickeler zuerst Variablen für den zu betrachtenden Zeitraum und den Digital-Twin-Endpunkt.
Dann wird eine Query formuliert, die durch das evaluate Schlüsselwort und dem Azure Digital Twin Plugin des Data Explorers gegen den Azure Digital Twin ausgeführt wird. Im Beispiel interessiert das GeoJSON-Polygon des Museums, das im Coordinates-Feld des Zwillings gespeichert ist. Die Koordinaten danach in einen dynamic-Typ umgewandelt.
Der letzte Teil der Query ist eine Query-Abfrage gegen die Data Explorer Datenbank PersonTrackingData. Hier filtert die Query zuerst nach allen Positionen in den letzten zehn Minuten. Danach werden alle Einträge anhand ihrer Längen- und Breitengrade, die im Polygon des Museums liegen müssen, gefiltert. Dies geschieht durch die im Data Explorer integrierte Funktion geo_point_in_polygon. Die Funktion count zählt zum Abschluss alle Zeilen der Rückgabe-Query.
Nun kann durch das Ändern der Zeitstempel in der Query auch auf jeden anderen beliebigen Zeitpunkt in der Vergangenheit gefiltert werden und es können Visualisierungen direkt durch den Data Explorer ausgegeben werden. Dadurch kann die Frage beantwortet werden: „Zu welcher Zeit ist das Museum am besten besucht?“.
Statt am Ende der Query count aufzurufen, werden die Personendaten auf ein Vier-Stunden-Fenster aggregiert und es wird eine Serie daraus erstellt. Der Client wird abschließend durch den render Operator dazu aufgefordert, die Rückgabewerte als Zeitdiagramm zu rendern.
Alles an einem Platz
Mit Digital Twins steht also ein Dienst bereit, der auf die Anforderungen aktueller IoT-Szenarien abgestimmt wurde. Er ist in weitere Dienste des Azure-Ökosystems integriert. Das gleiche gilt für Data Explorer: Neben Digital Twins können auch viele weitere Dienste als Datenquellen eingebunden werden und manuelle Abfragen verschiedener Systeme entfallen. Er glänzt zudem durch die mächtige Query-Language, der Geschwindigkeit und der Skalierung. Gemeinsam dürften die beiden Dienste das Herzstück vieler kommender IoT-Lösungen darstellen.