Freigeben über


Tutorial: Erstellen eines Azure Digital Twins-Graphen unter Verwendung der Azure CLI

In diesem Tutorial bauen Sie in Azure Digital Twins einen Graph mit Modellen, Zwillingen und Beziehungen. Als Tool wird in diesem Tutorial der Azure Digital Twins-Befehlssatz für die Azure CLI verwendet.

Diese CLI-Befehle ermöglichen grundlegende Azure Digital Twins-Aktionen wie das Hochladen von Modellen, das Erstellen und Ändern von Zwillingen und das Erstellen von Beziehungen. Den vollständigen CLI-Befehlssatz finden Sie in der Referenzdokumentation zum Befehlssatz „az dt“.

In diesem Tutorial lernen Sie Folgendes:

  • Modellieren einer Umgebung
  • Erstellen digitaler Zwillinge
  • Hinzufügen von Beziehungen zur Erstellung eines Graphen
  • Graphen abfragen, um Fragen zu beantworten

Voraussetzungen

Um die Schritte in diesem Lernprogramm auszuführen, müssen Sie zunächst die folgenden Voraussetzungen ausführen.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Herunterladen der Beispielmodelle

Das Lernprogramm verwendet zwei vordefinierte Modelle, die Teil des C#-End-to-End-Beispielprojekts für Azure Digital Twins sind. Die Modelldateien befinden sich hier:

Um die Dateien auf Ihrem Computer abzurufen, verwenden Sie die Navigationslinks in der vorherigen Liste, und kopieren Sie die Dateitexte in lokale Dateien auf Ihrem Computer mit denselben Namen (Room.json und Floor.json).

Vorbereiten der Umgebung für die Azure CLI

Einrichten einer CLI-Sitzung

Um mit Azure Digital Twins in der CLI zu arbeiten, müssen Sie sich zunächst anmelden und den CLI-Kontext für diese Sitzung auf Ihr Abonnement festlegen. Führen Sie diese Befehle in Ihrem CLI-Fenster aus:

az login
az account set --subscription "<your-Azure-subscription-ID>"

Tipp

Sie können ihren Abonnementnamen auch anstelle der ID im vorherigen Befehl verwenden.

Wenn Sie dieses Abonnement zum ersten Mal mit Azure Digital Twins verwenden, führen Sie den folgenden Befehl aus, um sich beim Azure Digital Twins-Namespace zu registrieren. (Wenn Sie nicht sicher sind, ist es in Ordnung, es erneut auszuführen, auch wenn Sie es in der Vergangenheit irgendwann ausgeführt haben.)

az provider register --namespace 'Microsoft.DigitalTwins'

Als Nächstes fügen Sie die Microsoft Azure IoT-Erweiterung für Azure CLI hinzu, um Befehle für die Interaktion mit Azure Digital Twins und anderen IoT-Diensten zu aktivieren. Führen Sie den folgenden Befehl aus, um sicherzustellen, dass Sie über die neueste Version der Erweiterung verfügen:

az extension add --upgrade --name azure-iot

Jetzt können Sie mit Azure Digital Twins in der Azure CLI arbeiten.

Sie können diesen Status überprüfen, indem Sie az dt --help ausführen, um eine Liste der verfügbaren Azure Digital Twins-Befehle auf oberster Ebene anzuzeigen.

Vorbereiten einer Azure Digital Twins-Instanz

Für die Arbeit mit Azure Digital Twins in diesem Artikel müssen Sie zuerst eine Azure Digital Twins-Instanz einrichten und die für die Nutzung erforderlichen Berechtigungen gewähren. Wenn Sie zuvor bereits eine Azure Digital Twins-Instanz eingerichtet haben, können Sie diese nutzen.

Befolgen Sie andernfalls die Anleitung unter Einrichten einer Instanz und der Authentifizierung. Die Anweisungen enthalten auch Schritte, um zu überprüfen, ob Sie jeden Schritt erfolgreich abgeschlossen haben und bereit sind, ihre neue Instanz zu verwenden.

Nachdem Sie Ihre Azure Digital Twins-Instanz eingerichtet haben, notieren Sie sich die folgenden Werte, die Sie benötigen, um später eine Verbindung mit der Instanz herzustellen:

  • Hostname der Instanz
  • Das Azure-Abonnement, das Sie zum Erstellen der Instanz verwendet haben

Tipp

Wenn Sie den freundlichen Namen Ihrer Instanz kennen, können Sie den folgenden CLI-Befehl verwenden, um den Hostnamen und die Abonnementwerte abzurufen.

az dt show --dt-name <Azure-Digital-Twins-instance-name>

Sie werden in der Ausgabe wie folgt angezeigt: Screenshot des Cloud Shell-Browserfensters mit der Ausgabe des Az dt Show-Befehls. Das Feld

Modellieren einer physischen Umgebung mit DTDL

Nachdem die CLI und die Azure Digital Twins-Instanz eingerichtet sind, können Sie mit der Erstellung eines Szenariographen beginnen.

Beim Erstellen einer Azure Digital Twins-Lösung werden zunächst Zwillingsmodelle für Ihre Umgebung definiert.

Modelle ähneln Klassen in objektorientierten Programmiersprachen. Sie stellen benutzerdefinierte Vorlagen für digitale Zwillinge bereit, die später eingesetzt und instanziiert werden. Sie sind in einer JSON-ähnlichen Sprache namens Digital Twins Definition Language (DTDL) geschrieben und können die Eigenschaften, Beziehungen und Komponenten eines Zwillings festlegen.

Hinweis

DTDL ermöglicht außerdem die Definition von Befehlen für digitale Zwillinge. Allerdings werden Befehle im Azure Digital Twins-Dienst derzeit nicht unterstützt.

Navigieren Sie auf Ihrem Computer zur Datei Room.js, die Sie im Abschnitt Voraussetzungen erstellt haben. Öffnen Sie sie in einem Code-Editor, und ändern Sie sie wie folgt:

  1. Aktualisieren Sie die Versionsnummer, um anzugeben, dass Sie eine aktualisierte Version dieses Modells bereitstellen. Ändern Sie hierzu 1 am Ende des Werts @id in 2. Jede Zahl, die größer als die aktuelle Versionsnummer ist, funktioniert ebenfalls.

  2. Bearbeiten Sie eine Eigenschaft. Ändern Sie den Namen der Humidity-Eigenschaft in HumidityLevel (oder einen anderen gewünschten Namen). Wenn Sie einen anderen Namen als HumidityLevel verwenden, merken Sie diesen, und verwenden Sie ihn im gesamten weiteren Tutorial anstelle von HumidityLevel.

  3. Fügen Sie eine Eigenschaft hinzu. Fügen Sie unterhalb der Eigenschaft HumidityLevel, die in Zeile 15 endet, den folgenden Code ein, um dem Raum eine Eigenschaft vom Typ RoomName hinzuzufügen:

    ,{
      "@type": "Property",
      "name": "RoomName",
      "schema": "string"
    }
    
  4. Fügen Sie eine Beziehung hinzu. Fügen Sie unterhalb der soeben hinzugefügten Eigenschaft RoomName den folgenden Code ein, um dieser Art von Zwilling die Möglichkeit zu geben, Beziehungen vom Typ contains mit anderen Zwillingen zu erstellen:

    ,{
      "@type": "Relationship",
      "name": "contains"
    }
    

Wenn Sie fertig sind, sollte das aktualisierte Modell wie folgt aussehen:

{
    "@id": "dtmi:example:Room;2",
    "@type": "Interface",
    "displayName": "Room",
    "contents": [
      {
        "@type": "Property",
        "name": "Temperature",
        "schema": "double"
      },
      {
        "@type": "Property",
        "name": "HumidityLevel",
        "schema": "double"
      }
      ,{
        "@type": "Property",
        "name": "RoomName",
        "schema": "string"
      }
      ,{
        "@type": "Relationship",
        "name": "contains"
      }
    ],
    "@context": "dtmi:dtdl:context;3"
  }

Achten Sie darauf, die Datei vor dem Fortfahren zu speichern.

Hochladen von Modellen in Azure Digital Twins

Nach dem Entwerfen von Modellen müssen Sie diese in Ihre Azure Digital Twins-Instanz hochladen. Dadurch wird die Azure Digital Twins-Dienstinstanz mit Ihrem eigenen benutzerdefinierten Domänenvokabular konfiguriert. Nach dem Hochladen der Modelle können Sie Zwillingsinstanzen erstellen, die diese verwenden.

  1. Wenn Sie eine lokale Installation der Azure CLI verwenden, können Sie diesen Schritt überspringen. Wenn Sie Cloud Shell verwenden, müssen Sie Ihre Modelldateien in den Speicher von Cloud Shell hochladen, damit die Dateien verfügbar sind, wenn Sie den Cloud Shell-Befehl ausführen, der sie verwendet. Wählen Sie "Dateien verwalten" und dann "Hochladen" aus.

    Screenshot des Cloud Shell-Browserfensters, das die Auswahl des Symbols „Hochladen“ anzeigt.

    Navigieren Sie auf Ihrem Computer zur Datei Room.json, und wählen Sie „Öffnen“ aus. Wiederholen Sie diesen Schritt anschließend für Floor.json.

  2. Verwenden Sie als Nächstes den Befehl "az dt model create" wie im folgenden Beispiel gezeigt, um Ihr aktualisiertes Raummodell in Ihre Azure Digital Twins-Instanz hochzuladen. Mit dem zweiten Befehl wird ein weiteres Modell (Floor) hochgeladen. Dieses wird auch im nächsten Abschnitt verwendet, um verschiedene Arten von Zwillingen zu erstellen. Es gibt einen Platzhalter für den Hostnamen der Instanz. Alternativ können Sie den benutzerfreundlicheren Namen der Instanz verwenden, was jedoch zu einer leichten Leistungsminderung führen kann. Außerdem gibt es einen Platzhalter für den Pfad zu jeder Modelldatei. Wenn Sie Cloud Shell verwenden, befinden sichRoom.json und Floor.json im Hauptspeicherverzeichnis, sodass Sie die Dateinamen einfach direkt in den folgenden Befehlen verwenden können, in denen ein Pfad erforderlich ist.

    az dt model create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --models <path-to-Room.json>
    az dt model create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --models <path-to-Floor.json>
    

    Die Ausgabe aus den einzelnen Befehlen zeigt Informationen zum erfolgreich hochgeladenen Modell an.

    Tipp

    Sie können auch alle Modelle in einem Verzeichnis gleichzeitig hochladen, indem Sie die --from-directory Option zum Erstellen des Modells verwenden. Weitere Informationen finden Sie in den optionalen Parametern für „az dt model create“.

  3. Überprüfen Sie, ob die Modelle mit dem Befehl "az dt model list" erstellt wurden, wie im folgenden Beispiel gezeigt. Dadurch wird eine Liste aller Modelle gedruckt, die mit ihren vollständigen Informationen in die Azure Digital Twins-Instanz hochgeladen wurden. Es gibt einen Platzhalter für den Hostnamen der Instanz (Sie können auch den benutzerfreundlichen Namen der Instanz verwenden, was die Leistung leicht verringern kann).

    az dt model list --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --definition
    

    Suchen Sie in den Ergebnissen nach dem bearbeiteten Room-Modell:

    Screenshot: Cloud Shell mit dem Ergebnis des Befehls „model list“ (mit dem aktualisierten Raummodell)

Fehler

Von der CLI werden auch Fehler des Diensts behandelt.

Führen Sie den az dt model create Befehl erneut aus, um zu versuchen, eines der gleichen Modelle erneut hochzuladen, die Sie zum zweiten Mal hochgeladen haben:

az dt model create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --models Room.json

Da Modelle nicht überschrieben werden können, gibt das Ausführen dieses Befehls auf demselben Modell jetzt einen Fehlercode von ModelIdAlreadyExists.

Erstellen digitaler Zwillinge

Nachdem einige Modelle in Ihre Azure Digital Twins-Instanz hochgeladen wurden, können Sie basierend auf den Modelldefinitionen digitale Zwillinge erstellen. Digitale Zwillinge stellen die Entitäten in Ihrer Geschäftsumgebung dar, etwa Sensoren in einer Farm, Räume in einem Gebäude oder Beleuchtung in einem Fahrzeug.

Verwenden Sie zum Erstellen eines digitalen Zwillings den Befehl az dt twin create. Sie müssen auf das Modell verweisen, auf dem der Zwilling basiert, und können optional Anfangswerte für Eigenschaften im Modell definieren. Sie müssen in dieser Phase keine Beziehungsinformationen übergeben.

  1. Führen Sie diesen Code in der CLI aus, um mehrere Zwillinge basierend auf dem zuvor aktualisierten und einem anderen Modell (Floor) zu erstellen. Denken Sie daran, dass „Room“ drei Eigenschaften hat, sodass Sie Argumente mit den Anfangswerten für diese Eigenschaften angeben können. (Die Initialisierung von Eigenschaftswerten ist grundsätzlich optional, für dieses Tutorial werden sie allerdings benötigt.) Es gibt einen Platzhalter für den Hostnamen der Instanz (Sie können auch den Anzeigenamen der Instanz mit einer leichten Verringerung der Leistung verwenden).

    az dt twin create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --dtmi "dtmi:example:Room;2" --twin-id room0 --properties '{"RoomName":"Room0", "Temperature":70, "HumidityLevel":30}'
    az dt twin create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --dtmi "dtmi:example:Room;2" --twin-id room1 --properties '{"RoomName":"Room1", "Temperature":80, "HumidityLevel":60}'
    az dt twin create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --dtmi "dtmi:example:Floor;1" --twin-id floor0
    az dt twin create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --dtmi "dtmi:example:Floor;1" --twin-id floor1
    

    Hinweis

    Wenn Sie etwas anderes als die Cloud Shell in der Bash-Umgebung verwenden, müssen Sie möglicherweise bestimmte Zeichen im JSON-Inlinecode mit Escapezeichen versehen, damit sie ordnungsgemäß geparst werden.

    Weitere Informationen finden Sie unter Verwenden von Sonderzeichen in verschiedenen Shells.

    Die Ausgabe der einzelnen Befehle zeigt Informationen über den erfolgreich erstellten Zwilling (einschließlich Eigenschaften für die Raumzwillinge, die mit ihnen initialisiert wurden).

  2. Sie können überprüfen, ob die Zwillinge mit dem Az dt Twin-Abfragebefehl erstellt wurden, wie im folgenden Beispiel gezeigt. Mit der gezeigten Abfrage wird nach allen digitalen Zwillingen in Ihrer Azure Digital Twins-Instanz gesucht. Es gibt einen Platzhalter für den Hostnamen der Instanz (Sie können auch den benutzerfreundlichen Namen der Instanz verwenden, was die Leistung leicht verringern kann).

    az dt twin query --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --query-command "SELECT * FROM DIGITALTWINS"
    

    Suchen Sie in den Ergebnissen nach den Zwillingen room0, room1, floor0 und floor1. Der folgende Auszug zeigt einen Teil des Ergebnisses dieser Abfrage:

    Screenshot: Cloud Shell mit einem Teil des Ergebnisses der Zwillingsabfrage (mit „room0“ und „room1“)

Hinweis

Nachdem Sie eine Änderung an den Daten in Ihrem Graphen vorgenommen haben, kann eine Latenz von bis zu 10 Sekunden auftreten, bevor die Änderungen in Abfragen berücksichtigt werden.

Die DigitalTwins-API spiegelt Änderungen sofort wider. Wenn Sie also eine sofortige Antwort benötigen, verwenden Sie eine API-Anforderung (DigitalTwins GetById) oder einen SDK-Aufruf (GetDigitalTwin), um Zwillingsdaten zu erhalten, anstatt eine Abfrage durchzuführen.

Ändern eines digitalen Zwillings

Sie können auch die Eigenschaften eines Zwillings ändern, den Sie erstellt haben.

  1. Führen Sie den Befehl az dt twin update aus, um den RoomName-Wert für „room0“ von „Room0“ in „PresidentialSuite“ zu ändern. Es gibt einen Platzhalter für den Hostnamen der Instanz (Sie können auch den benutzerfreundlichen Namen der Instanz verwenden, was die Leistung leicht verringern kann).

    az dt twin update --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id room0 --json-patch '{"op":"add", "path":"/RoomName", "value": "PresidentialSuite"}'
    

    Hinweis

    Es wird empfohlen, die CLI in der Bash-Umgebung für dieses Lernprogramm zu verwenden. Wenn Sie die PowerShell-Umgebung verwenden, müssen Sie möglicherweise die Anführungszeichen mit Escape versehen, damit der JSON-Wert --json-patch richtig analysiert werden kann.

    Die Ausgabe dieses Befehls enthält die aktuellen Informationen des Zwillings mit dem neuen Wert für RoomName im Ergebnis.

    Screenshot: Cloud Shell mit dem Ergebnis des Aktualisierungsbefehls (mit dem RoomName-Wert „PresidentialSuite“)

  2. Sie können den Befehl az dt twin show ausführen, um die Informationen zu room0 anzuzeigen und sich so zu vergewissern, dass die Aktualisierung erfolgreich war. Es gibt einen Platzhalter für den Hostnamen der Instanz (Sie können auch den benutzerfreundlichen Namen der Instanz verwenden, was die Leistung leicht verringern kann).

    az dt twin show --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id room0
    

    In der Ausgabe sollte der aktualisierte Name angezeigt werden.

Erstellen eines Graphen durch Hinzufügen von Beziehungen

Im nächsten Schritt können Sie einige Beziehungen zwischen diesen Zwillingen erstellen, um Sie in einem Zwillingsgraphen zu verbinden. Zwillingsgraphen werden verwendet, um eine gesamte Umgebung darzustellen.

Die Arten von Beziehungen, die Sie zwischen Zwillingen erstellen können, werden in den zuvor hochgeladenen Modellen definiert. In der Modelldefinition für „Floor“ ist angegeben, dass Etagen eine Beziehung vom Typ contains haben können. Da diese Beziehung durch die Modelldefinition angegeben wird, ist es möglich, eine Beziehung vom Typ contains zwischen jedem Etagenzwilling (Floor) und dem entsprechenden enthaltenen Raum zu erstellen.

Verwenden Sie zum Hinzufügen einer Beziehung den Befehl az dt twin relationship create. Geben Sie den Zwilling, von dem die Beziehung ausgeht, die Art der Beziehung sowie den Zwilling an, mit dem die Beziehung hergestellt wird. Geben Sie abschließend eine eindeutige ID für die Beziehung an. Wenn eine Beziehung mit Eigenschaften definiert wurde, können Sie in diesem Befehl auch die Beziehungseigenschaften initialisieren.

  1. Führen Sie den folgenden Code aus, um eine Beziehung vom Typ contains zwischen jedem der zuvor erstellten Etagenzwillinge (Floor) um dem entsprechenden Raumzwilling (Room) hinzuzufügen. Die Beziehungen heißen relationship0 und relationship1. Es gibt einen Platzhalter für den Hostnamen der Instanz (Sie können auch den benutzerfreundlichen Namen der Instanz verwenden, was die Leistung leicht verringern kann).

    az dt twin relationship create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --relationship-id relationship0 --relationship contains --twin-id floor0 --target room0
    az dt twin relationship create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --relationship-id relationship1 --relationship contains --twin-id floor1 --target room1
    

    Tipp

    Die contains Beziehung im Floor-Modell wurde auch mit zwei Eigenschaften definiert, ownershipUserownershipDepartmentsodass Sie beim Erstellen der Beziehungen auch Argumente mit den Anfangswerten für diese Eigenschaften bereitstellen können. Wenn Sie eine Beziehung mit Initialisierung dieser Eigenschaften erstellen möchten, müssen Sie einem der obigen Befehle die Option --properties hinzufügen:

    ... --properties '{"ownershipUser":"MyUser", "ownershipDepartment":"MyDepartment"}'
    

    Die Ausgabe des jeweiligen Befehls enthält Informationen zur erfolgreich erstellten Beziehung.

  2. Sie können die Beziehungen mit einem der folgenden Befehle überprüfen, die die Beziehungen in Ihrer Azure Digital Twins-Instanz ausgeben. Jeder Befehl besitzt einen Platzhalter für den Hostnamen der Instanz (Sie können auch den freundlichen Namen der Instanz verwenden, was jedoch die Leistung leicht verringert).

    • Um alle Beziehungen zu sehen, die von den einzelnen Etagen ausgehen (Betrachtung der Beziehungen von einer Seite):
      az dt twin relationship list --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id floor0
      az dt twin relationship list --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id floor1
      
    • So zeigen Sie alle Beziehungen an, die bei jedem Raum ankommen (Anzeige der Beziehungen von der anderen Seite):
      az dt twin relationship list --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id room0 --incoming
      az dt twin relationship list --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id room1 --incoming
      
    • Um nach diesen Beziehungen einzeln, anhand der ID, zu suchen:
      az dt twin relationship show --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id floor0 --relationship-id relationship0
      az dt twin relationship show --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id floor1 --relationship-id relationship1
      

Die Zwillinge und Beziehungen, die Sie in diesem Lernprogramm eingerichtet haben, bilden das folgende konzeptionelle Diagramm:

Ein Diagramm mit einem konzeptionellen Graphen. „floor0“ ist über „relationship0“ mit „room0“ verbunden, und „floor1“ ist über „relationship1“ mit „room1“ verbunden.

Abfragen des Zwillingsgraphen zum Beantworten von Umgebungsfragen

Eine Hauptfunktion von Azure Digital Twins ist das einfache Abfragen des Zwillingsgraphen und das effiziente Beantworten von Fragen zur Umgebung. In der Azure CLI erfolgt die Abfrage mit dem Befehl az dt twin query.

Hinweis

Nachdem Sie eine Änderung an den Daten in Ihrem Graphen vorgenommen haben, kann eine Latenz von bis zu 10 Sekunden auftreten, bevor die Änderungen in Abfragen berücksichtigt werden.

Die DigitalTwins-API spiegelt Änderungen sofort wider. Wenn Sie also eine sofortige Antwort benötigen, verwenden Sie eine API-Anforderung (DigitalTwins GetById) oder einen SDK-Aufruf (GetDigitalTwin), um Zwillingsdaten zu erhalten, anstatt eine Abfrage durchzuführen.

Führen Sie in der CLI die folgenden Abfragen aus, um einige Fragen zur Beispielumgebung zu beantworten. Jeder Befehl besitzt einen Platzhalter für den Hostnamen der Instanz (Sie können auch den freundlichen Namen der Instanz verwenden, was jedoch die Leistung leicht verringert).

  1. Welche Entitäten aus meiner Umgebung werden in Azure Digital Twins dargestellt? (Abfrage aller Elemente)

    az dt twin query --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --query-command "SELECT * FROM DIGITALTWINS"
    

    Mit dieser Abfrage können Sie schnell eine Bestandsaufnahme Ihrer Umgebung machen und sicherstellen, dass in Azure Digital Twins alles wunschgemäß dargestellt wird. Das Ergebnis dieser Abfrage ist eine Ausgabe, die jeden digitalen Zwilling mit seinen Details enthält. Auszug:

    Screenshot: Cloud Shell mit einem Teil des Ergebnisses der Zwillingsabfrage (mit „room0“ und „room1“)

    Tipp

    Möglicherweise erkennen Sie, dass dieser Befehl derselbe Befehl ist, den Sie zuvor im Abschnitt "Digitale Zwillinge erstellen " verwendet haben, um alle Azure Digital Twins in der Instanz zu finden.

  2. Welche Räume sind in meiner Umgebung vorhanden? (Abfrage nach Modell)

    az dt twin query --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --query-command "SELECT * FROM DIGITALTWINS T WHERE IS_OF_MODEL(T, 'dtmi:example:Room;2')"
    

    Sie können Ihre Abfrage auf Zwillinge eines bestimmten Typs beschränken, um spezifischere Informationen zu den dargestellten Elementen zu erhalten. Im Ergebnis werden „room0“ und „room1“, aber nicht „floor0“ oder „floor1“ angezeigt (da es sich dabei um Etagen und nicht um Räume handelt).

    Screenshot: Cloud Shell mit dem Ergebnis der Modellabfrage (nur mit „room0“ und „room1“)

  3. Welche Zimmer gibt es auf Etage 0? (Abfrage nach Beziehung)

    az dt twin query --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --query-command "SELECT room FROM DIGITALTWINS floor JOIN room RELATED floor.contains where floor.\$dtId = 'floor0'"
    

    Sie können Abfragen basierend auf den Beziehungen in Ihrem Graphen durchführen, um Informationen zu den Beziehungen zwischen Zwillingen zu erhalten oder um die Abfrage auf einen bestimmten Bereich zu beschränken. Diese Abfrage veranschaulicht auch, dass die ID eines Zwillings (z. B. boden0 in der vorherigen Abfrage) mithilfe des Metadatenfelds $dtIdabgefragt wird. Nur room0 befindet sich auf floor0, weshalb es der einzige Raum im Ergebnis dieser Abfrage ist.

    Screenshot: Cloud Shell mit dem Ergebnis der Beziehungsabfrage (mit „room0“)

    Hinweis

    Wenn Sie Cloud Shell verwenden, um eine Abfrage mit Metadatenfeldern wie diesem auszuführen, die mit $ beginnen, müssen Sie $ mit einem umgekehrten Schrägstrich versehen, um Cloud Shell mitzuteilen, dass es sich dabei nicht um eine Variable handelt und es im Abfragetext als Literal behandelt werden soll. Das Escape-Metadatenfeld wird im vorherigen Screenshot dargestellt.

  4. Bei welchen Zwillingen in meiner Umgebung liegt die Temperatur über 75 Grad Fahrenheit? (Abfrage nach Eigenschaft)

    az dt twin query --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --query-command "SELECT * FROM DigitalTwins T WHERE T.Temperature > 75"
    

    Sie können den Graphen auf der Grundlage von Eigenschaften abfragen, um verschiedene Fragen zu beantworten. Dazu zählt auch das Auffinden von Ausreißern in Ihrer Umgebung, die möglicherweise Ihre Aufmerksamkeit erfordern. Andere Vergleichsoperatoren (<, >, = oder !=) werden ebenfalls unterstützt. room1 wird hier in den Ergebnissen angezeigt, da die Temperatur 80 beträgt.

    Screenshot der Cloud Shell zeigt das Ergebnis der Eigenschaftsabfrage, die nur room1 umfasst.

  5. Welche Räume auf floor0 haben eine Temperatur über 75? (Verbundabfrage)

    az dt twin query --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --query-command "SELECT room FROM DIGITALTWINS floor JOIN room RELATED floor.contains where floor.\$dtId = 'floor0' AND IS_OF_MODEL(room, 'dtmi:example:Room;2') AND room.Temperature > 75"
    

    Sie können die Abfragen oben auch wie in SQL mithilfe von Kombinationsoperatoren (etwa AND, OR, NOT) kombinieren. Diese Abfrage verwendet AND, um die vorherige Abfrage zu den Zwillings-Temperaturen genauer zu spezifizieren. Das Ergebnis enthält jetzt nur noch Räume mit einer Temperatur von über 75, die sich auf floor0 befinden – in diesem Fall kein Raum. Das Resultset ist leer.

    Screenshot: Cloud Shell mit dem Ergebnis der Verbundabfrage (ganz ohne Elemente)

Bereinigen von Ressourcen

Nach Abschluss dieses Tutorials können Sie die zu entfernenden Ressourcen auswählen, abhängig davon, wie Sie weiter vorgehen möchten.

  • Wenn Sie mit dem nächsten Tutorial fortfahren möchten, können Sie die hier eingerichteten Ressourcen behalten und die Azure Digital Twins-Instanz wiederverwenden, ohne dazwischen etwas zu löschen.
  • Wenn Sie die Azure Digital Twins-Instanz aus diesem Artikel weiterhin verwenden möchten, aber alle Modelle, Zwillinge und Beziehungen von ihr löschen möchten, führen Sie den folgenden az dt job deletion-CLI-Befehl aus:

    az dt job deletion create -n <name-of-Azure-Digital-Twins-instance> -y
    

    Wenn Sie nur einige dieser Elemente löschen möchten, können Sie die Befehle az dt twin relationship delete, az dt twin delete und az dt model delete verwenden, um nur die Elemente, die Sie entfernen möchten, selektiv zu löschen.

  • Wenn Sie die in diesem Tutorial erstellten Ressourcen nicht benötigen, können Sie die Azure Digital Twins-Instanz und alle anderen Ressourcen in diesem Artikel mit dem CLI-Befehl az group delete löschen. Dadurch werden alle Azure-Ressourcen in einer Ressourcengruppe sowie die Ressourcengruppe selbst gelöscht.

    Wichtig

    Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Die Ressourcengruppe und alle darin enthaltenen Ressourcen werden unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen.

    Öffnen Sie Azure Cloud Shell oder ein lokales CLI-Fenster, und führen Sie den folgenden Befehl aus, um die Ressourcengruppe und alle darin enthaltenen Elemente zu löschen.

    az group delete --name <your-resource-group>
    

Möglicherweise möchten Sie auch die Modelldateien löschen, die Sie auf Ihrem lokalen Computer erstellt haben.

Nächste Schritte

In diesem Tutorial haben Sie die ersten Schritte mit Azure Digital Twins durchgeführt, indem Sie unter Verwendung der Azure CLI einen Graphen in Ihrer Instanz erstellt haben. Sie haben Modelle, digitale Zwillinge und Beziehungen erstellt, um einen Graphen zu erstellen. Darüber hinaus haben Sie einige Abfragen für den Graphen ausgeführt, um eine Vorstellung davon zu erhalten, welche Arten von Fragen Azure Digital Twins zu einer Umgebung beantworten kann.

Fahren Sie mit dem nächsten Tutorial fort, um Azure Digital Twins mit anderen Azure-Diensten zu kombinieren und ein datengesteuertes End-to-End-Szenario abzuschließen.