Freigeben über


Digital Twin Builder (Vorschau) in Real-Time Intelligence Lernprogramm Teil 2: Abrufen und Verarbeiten von Streamingdaten

In diesem Teil des Lernprogramms richten Sie eine andere Art von Beispieldaten ein: einen Echtzeitdatenstrom mit Beispielbusdaten, die Zeitreiheninformationen zu Busstandorten enthalten. Sie streamen die Beispieldaten in ein Eventhouse, führen einige Transformationen für die Daten durch und erstellen dann eine Verknüpfung, um die Eventhouse-Daten in das Beispieldaten-Lakehouse abzurufen, das Sie im vorherigen Abschnitt erstellt haben. Digital-Twin-Builder erfordert, dass die Daten in einem Lakehouse gespeichert sind.

Ein Eventhouse erstellen

  1. Navigieren Sie zu dem Arbeitsbereich, in dem Sie Ihre Tutorial-Ressourcen erstellen möchten. Sie müssen alle Ressourcen im selben Arbeitsbereich erstellen.

  2. Wählen Sie + Neues Element aus.

  3. Geben Sie im Suchfeld Nach Elementtyp filternEventhouse ein.

    Bereich

  4. Wählen Sie das Eventhouse-Element aus.

  5. Geben Sie "Tutorial" als Ereignishausnamen ein, und klicken Sie auf "Erstellen". Das Eventhouse und eine KQL-Datenbank werden gleichzeitig mit demselben Namen erstellt.

    Screenshot der Eventhouse-Schnittstelle mit dem Dialog

  6. Wenn die Bereitstellung abgeschlossen ist, klicken Sie im Willkommensfenster auf "Erste Schritte ".

    Screenshot der Willkommensoberfläche von Eventhouse mit hervorgehobener Schaltfläche

    Die Eventhouse System-Übersichtsseite wird angezeigt.

Erstellen des Eventstreams

In diesem Abschnitt erstellen Sie einen Eventstream, um Beispiel-Bus-Streamingdaten an das Eventhouse zu senden.

Quelle hinzufügen

Führen Sie die folgenden Schritte aus, um den Eventstream zu erstellen und Buses-Beispieldaten als Quelle hinzuzufügen.

  1. Wählen Sie auf der Seite "Systemübersicht " des Eventhouses die neue Lernprogrammdatenbank aus der Liste der KQL-Datenbanken aus.

  2. Wählen Sie im Menüband " Daten abrufen " und dann "Eventstream > New eventstream" aus.

    Screenshot des Abrufens eines neuen Eventstreams für die Lernprogrammdatenbank.

  3. Geben Sie BusEventstream als Namen ein, und wählen Sie "Erstellen" aus. Wenn der Eventstream bereit ist, wird er geöffnet.

  4. Wählen Sie Beispieldaten verwenden aus.

    Screenshot der Auswahl von Beispieldaten für den Eventstream.

  5. Wählen Sie auf der Seite "Quelle hinzufügen" unter "Beispieldaten" die Option "Busse" aus. Geben Sie BusDataSource für den Quellnamen ein. Wählen Sie Hinzufügen aus.

    Screenshot der Auswahl der Busbeispieldaten.

    Wenn der neue Eventstream bereit ist, wird er im Dokumenterstellungsbereich geöffnet.

Transformieren von Daten

In diesem Abschnitt fügen Sie eine Transformation zu den eingehenden Beispieldaten hinzu. Dieser Schritt wandelt die Zeichenfolgenfelder ScheduleTime und Timestamp in den DateTime-Typ um und benennt Timestamp zur Übersichtlichkeit in ArrivalTime um. Zeitstempelfelder müssen im DateTime-Format für Digital Twin Builder (Vorschau) sein, um sie als Zeitreihendaten zu verwenden.

Führen Sie die folgenden Schritte aus, um die Datentransformation hinzuzufügen.

  1. Wählen Sie auf der Kachel Transformationsereignisse oder Ziel hinzufügen den Abwärtspfeil aus, und wählen Sie dann den vordefinierten Vorgang Felder verwalten aus. Die Kachel wird in "ManageFields" umbenannt.

    Screenshot der Auswahl des Vorgangs

  2. Wählen Sie das Bearbeitungssymbol (wie ein Bleistift) auf der Kachel "MangeFields " aus, wodurch der Bereich "Felder verwalten " geöffnet wird.

  3. Wählen Sie "Alle Felder hinzufügen" aus. Diese Aktion stellt sicher, dass alle Felder aus den Quelldaten durch die Transformation vorhanden sind.

    Tipp

    Wenn keine Felder hinzugefügt werden können, warten Sie einige Minuten, bis die Beispieldaten initialisiert wurden, und versuchen Sie es dann erneut. Sie können die früheren Knoten auf der Arbeitsfläche auswählen, um deren Daten in der Vorschau zu betrachten und zu bestätigen, dass die Beispieldaten dort angekommen sind.

  4. Wählen Sie das Zeitstempelfeld aus. Umschalten des Änderungstyps auf "Ja". Wählen Sie für „Konvertierter Typ“„DateTime“ aus der Dropdown-Liste aus. Geben Sie für "Name" den neuen Namen von ActualTime ein.

    Screenshot des Änderns des Zeitstempelfelds.

  5. Wählen Sie das Feld "ScheduleTime" aus. Umschalten des Änderungstyps auf "Ja". Wählen Sie für „Konvertierter Typ“„DateTime“ aus der Dropdown-Liste aus. Belassen Sie den Namen als ScheduleTime.

    Wählen Sie "Speichern" aus, um beide aktualisierten Eigenschaften zu speichern.

  6. Der Bereich "Felder verwalten " wird geschlossen. Die Kachel "ManageFields " zeigt weiterhin einen Fehler an, bis Sie sie mit einem Ziel verbinden.

Ziel hinzufügen

  1. Wählen Sie im Menüband " Ziel hinzufügen" und dann "Eventhouse" aus.

    Screenshot der Auswahl des Eventhouse-Ziels.

  2. Geben Sie die folgenden Informationen im Eventhouse-Bereich ein:

    Feld Wert
    Datenaufnahmemodus Ereignisverarbeitung vor der Erfassung.
    Zielname TutorialDestination
    Arbeitsbereich Wählen Sie den Arbeitsbereich aus, in dem Sie Ihre Ressourcen erstellt haben.
    Eventhouse Tutorium
    KQL-Datenbank Tutorium
    KQL-Zieltabelle Neu erstellen – Geben Sie bus_data_raw als Tabellennamen ein.
    Eingabedatenformat Json
    Aktivieren Sie die Aufnahme, nachdem Sie die Datenquelle hinzugefügt haben Geprüft
  3. Wählen Sie Speichern aus.

  4. Wählen Sie im Dokumenterstellungsbereich die Kachel "ManageFields" aus, und ziehen Sie den Pfeil auf die Kachel "TutorialDestination" , um sie zu verbinden. Diese Aktion löst alle Fehlermeldungen im Prozess auf.

  5. Wählen Sie im Menüband die Option "Veröffentlichen" aus. Der Eventstream beginnt nun mit dem Senden der Beispielstreamdaten an Ihr Eventhouse.

  6. Nach ein paar Minuten zeigt die TutorialDestination-Karte in der Eventstream-Ansicht Beispieldaten auf der Registerkarte "Datenvorschau " an. Möglicherweise müssen Sie die Vorschau einige Male aktualisieren, während Sie warten, bis die Daten eintreffen.

    Screenshot der Vorschaudaten.

  7. Überprüfen Sie, ob die Datentabelle in Ihrem Eventhouse aktiv ist. Wechseln Sie zu Ihrer Tutorial-KQL-Datenbank, und aktualisieren Sie die Ansicht. Sie enthält nun eine Tabelle mit dem Namen bus_data_raw , die Daten enthält.

    Screenshot der bus_data_raw Tabelle mit Daten.

Die Daten mithilfe von Updaterichtlinien transformieren.

Da sich Ihre Busstreamingdaten nun in einer KQL-Datenbank befinden, können Sie Funktionen und eine Kusto-Updaterichtlinie verwenden, um die Daten weiter zu transformieren. Die Transformationen, die Sie in diesem Abschnitt ausführen, bereiten die Daten zur Verwendung im Digital Twin Builder (Vorschau) vor und umfassen die folgenden Aktionen:

  • Trennt das JSON-Feld Properties in separate Spalten für jedes der enthaltenen Datenelemente und BusStatusTimeToNextStation. Der Digitale Zwillings-Generator verfügt nicht über JSON-Analysefunktionen, daher müssen Sie diese Werte trennen, bevor die Daten an den digitalen Zwillings-Generator gehen.
  • Fügt eine Spalte StopCodehinzu, bei der es sich um einen eindeutigen Schlüssel handelt, der jede Bushaltestelle darstellt. Der Zweck dieses Schritts besteht darin, den Beispieldatensatz abzuschließen, um dieses Lernprogrammszenario zu unterstützen. Instanzen verknüpfbarer Entitäten aus separaten Datenquellen müssen eine gemeinsame Spalte enthalten, die der Digital-Twin-Builder verwenden kann, um sie miteinander zu verknüpfen. Daher fügt dieser Schritt einen simulierten Satz von int-Werten hinzu, der dem Stop_Code-Feld im statischen Haltestellen-Datensatz entspricht. In der realen Welt enthalten verwandte Datasets bereits eine Art von Gemeinsamkeit.
  • Erstellt eine neue Tabelle namens bus_data_processed , die die transformierten Busdaten enthält.
  • Ermöglicht die Verfügbarkeit von OneLake für die neue Tabelle, sodass Sie eine Verknüpfung verwenden können, um auf die Daten in Ihrem TutorialLH Lakehouse zuzugreifen.

Führen Sie die folgenden Schritte aus, um die Transformationsabfragen auszuführen.

  1. Öffnen Sie den KQL-Abfrage-Editor, indem Sie Tutorial_queryset unter Ihrer KQL-Datenbank auswählen.

    Screenshot des Öffnens des Abfrage-Editors.

  2. Kopieren Sie die folgenden Codeausschnitte, und fügen Sie sie in den Abfrage-Editor ein (Sie können die Beispielabfragen ersetzen oder unten hinzufügen). Führen Sie jeden Codeblock in der reihenfolge aus.

    // Set columns
    .create-or-alter function extractBusData ()
    {
        bus_data_raw
        | extend BusState = tostring(todynamic(Properties).BusState)
            , TimeToNextStation = tostring(todynamic(Properties).TimeToNextStation)
            , StopCode = toint(10000 + abs(((toint(BusLine) * 100) + toint(StationNumber)) % 750))
        | project-away Properties
    }
    
    // Create table
    .create table bus_data_processed (ActualTime:datetime, TripId:string, BusLine:long, StationNumber:long, ScheduleTime:datetime, BusState:string, TimeToNextStation:string, StopCode:int)
    
    //Load data into table
    .alter table bus_data_processed policy update
    ```
    [{
        "IsEnabled": true,
        "Source": "bus_data_raw",
        "Query": "extractBusData",
        "IsTransactional": false,
        "PropagateIngestionProperties": true
    }]
    ```
    
    // Enable OneLake availability
    .alter-merge table bus_data_processed policy mirroring dataformat=parquet with (IsEnabled=true, TargetLatencyInMinutes=5)
    

    Tipp

    Sie können auch die Verfügbarkeit von OneLake für die neue Tabelle über die Benutzeroberfläche aktivieren, anstatt Code zu verwenden. Wählen Sie die Tabelle aus, und aktivieren Sie die OneLake-Verfügbarkeit.

    Screenshot der Aktivierung der OneLake-Verfügbarkeit in der Benutzeroberfläche.

    Bei der Ui-Option beträgt die Standardlatenz je nach Datenvolumen 15 Minuten bis mehrere Stunden. Um die Latenz auf fünf Minuten zu reduzieren, verwenden Sie den Befehl ".alter-merge table ", wie im vorherigen Codeblock gezeigt.

  3. Benennen Sie optional die Abfrageregisterkarte in "Bus-Datenverarbeitung" um, damit Sie sie später erkennen können.

  4. Nach dem Ausführen der Abfragen wird in Ihrer Datenbank eine neue Tabelle mit dem Namen bus_data_processed erstellt. Nach kurzer Wartezeit beginnt sie mit den verarbeiteten Busdaten aufzufüllen.

    Screenshot der bus_data_processed Tabelle mit Daten.

Erstellen einer Lakehouse-Verknüpfung

Erstellen Sie schließlich eine Verknüpfung, mit der die verarbeiteten Busdaten im TutorialLH Lakehouse verfügbar gemacht werden, das Beispieldaten für den digitalen Zwillings-Generator (Vorschau) enthält. Dieser Schritt ist erforderlich, da der Digital Twin Builder seine Datenquelle in Form eines Lakehouse benötigt.

  1. Wechseln Sie zu Ihrem TutorialLH Lakehouse (Sie haben es zuvor in Teil 1 erstellt, Kontextdaten hochladen). Wählen Sie im Menüband die Option "Daten abrufen>Neue Verknüpfung" aus.

    Screenshot der Schaltfläche „Neue Verknüpfung“.

  2. Wählen Sie unter Interne Quellen die Option Microsoft OneLake aus. Wählen Sie dann die KQL-Datenbank des Lernprogramms aus.

  3. Erweitern Sie die Liste der Tabellen , und aktivieren Sie das Kontrollkästchen neben bus_data_processed. Wählen Sie Weiteraus.

  4. Überprüfen Sie Ihre Verknüpfungsdetails und wählen Sie Erstellen aus.

    Screenshot des Erstellens der Verknüpfung.

  5. Die bus_data_processed Tabelle ist jetzt in Ihrem Lakehouse verfügbar. Überprüfen Sie, ob sie Daten enthält (dies kann einige Minuten dauern).

    Screenshot von bus_data_processed im Seehaus.

Als Nächstes verwenden Sie diese Lakehouse-Daten als Quelle, um eine Ontologie im digitalen Zwillings-Generator aufzubauen.

Nächster Schritt