Tutorial: Erstellen eines Azure Digital Twins-Graphen unter Verwendung der Azure CLI
In diesem Tutorial wird in Azure Digital Twins ein Graph mit Modellen, Zwillingen und Beziehungen erstellt. 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
- Abfragen des Graphen zur Beantwortung von Fragen
Voraussetzungen
Für dieses Tutorial benötigen Sie Folgendes:
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Herunterladen der Beispielmodelle
In diesem Tutorial werden zwei vorab geschriebene Modelle aus dem End-to-End-C#-Beispielprojekt für Azure Digital Twins verwendet. Die Modelldateien befinden sich hier:
Verwenden Sie die oben bereitgestellten Navigationslinks, und kopieren Sie die Dateiinhalte auf Ihrem Computer in lokale Dateien mit dem gleichen Namen (Room.json und Floor.json).
Vorbereiten der Umgebung für die Azure CLI
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
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 im obigen Befehl anstelle der ID auch Ihren Abonnementnamen verwenden.
Wenn Sie dieses Abonnement zum ersten Mal mit Azure Digital Twins nutzen, führen Sie diesen Befehl aus, um sich im Namespace von Azure Digital Twins zu registrieren. (Falls Sie sich nicht sicher sind, ist es in Ordnung, ihn erneut auszuführen, auch wenn Sie ihn irgendwann zuvor schon einmal ausgeführt haben.)
az provider register --namespace 'Microsoft.DigitalTwins'
Als Nächstes fügen Sie die Microsoft Azure IoT-Erweiterung für die 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
Nun können Sie in der Azure CLI mit Azure Digital Twins arbeiten.
Sie können dies durch Ausführung von az dt --help
jederzeit überprüfen, um eine Liste der verfügbaren Azure Digital Twins-Befehle 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 Anleitung enthält auch Schritte zur Überprüfung, ob Sie jeden Schritt erfolgreich abgeschlossen haben und für die Nutzung Ihrer neuen Instanz bereit sind.
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 Anzeigenamen 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>
Diese Daten werden in der Ausgabe wie folgt angezeigt:
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:
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.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.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 TypRoomName
hinzuzufügen:,{ "@type": "Property", "name": "RoomName", "schema": "string" }
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 Typcontains
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.
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 Cloud Shell-Speicher hochladen, damit sie verfügbar sind, wenn Sie den Cloud Shell-Befehl ausführen, bei dem sie verwendet werden. Wählen Sie hierzu das Symbol „Dateien hochladen/herunterladen“ und anschließend „Hochladen“ aus.
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.
Verwenden Sie als Nächstes den Befehl az dt model create, wie im Anschluss gezeigt, um das aktualisierte Raummodell (Room) 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 (Sie können auch den Anzeigenamen der Instanz mit einer leichten Verringerung der Leistung verwenden) sowie einen Platzhalter für einen Pfad zu jeder Modelldatei. Wenn Sie Cloud Shell verwenden, befinden sich Room.json und Floor.json im Hauptspeicherverzeichnis, sodass Sie die Dateinamen einfach direkt im folgenden Befehl verwenden können, in dem 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 des jeweiligen Befehls enthält Informationen zum erfolgreich hochgeladenen Modell.
Tipp
Sie können auch alle Modelle in einem Verzeichnis auf einmal hochladen, indem Sie die Option
--from-directory
für den Befehl „model create“ verwenden. Weitere Informationen finden Sie in den optionalen Parametern für „az dt model create“.Vergewissern Sie sich wie im Anschluss gezeigt mithilfe des Befehls az dt model list, dass die Modelle erstellt wurden. Dieser Befehl gibt eine Liste mit allen Modellen, die in die Azure Digital Twins-Instanz hochgeladen wurden, sowie mit ausführlichen Informationen zu den Modellen aus. 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 model list --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --definition
Suchen Sie in den Ergebnissen nach dem bearbeiteten Room-Modell:
Errors
Von der CLI werden auch Fehler des Diensts behandelt.
Führen Sie den Befehl az dt model create
erneut aus, um eins des hochgeladenen Modelle ein zweites Mal hochzuladen:
az dt model create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --models Room.json
Da Modelle nicht überschrieben werden können, wird bei der Ausführung dieses Befehls für dasselbe Modell jetzt der Fehlercode ModelIdAlreadyExists
zurückgegeben.
Erstellen digitaler Zwillinge
Sie haben einige Modelle in Ihre Azure Digital Twins-Instanz hochgeladen und können nun 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.
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 generell optional, aber sie sind für dieses Tutorial erforderlich.) 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äß analysiert werden.
Weitere Informationen finden Sie unter Verwenden von Sonderzeichen in verschiedenen Shells.
Die Ausgabe der einzelnen Befehle enthält Informationen zum erfolgreich erstellten Zwilling (einschließlich Eigenschaften für die Raumzwillinge, die mit ihnen initialisiert wurden).
Mithilfe des im Anschluss gezeigten Befehls az dt twin query können Sie sich vergewissern, dass die Zwillinge erstellt wurden. 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 Anzeigenamen der Instanz mit einer leichten Verringerung der Leistung verwenden).
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:
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 von Ihnen erstellten Zwillings ändern.
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 Anzeigenamen der Instanz mit einer leichten Verringerung der Leistung verwenden).
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 diesem Tutorial in der Bash-Umgebung zu verwenden. Wenn Sie die PowerShell-Umgebung verwenden, müssen die Anführungszeichen ggf. mit Escapezeichen versehen werden, damit der JSON-Wert
--json-patch
ordnungsgemäß analysiert werden kann.Die Ausgabe dieses Befehls enthält die aktuellen Informationen des Zwillings mit dem neuen Wert für
RoomName
im Ergebnis.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 Anzeigenamen der Instanz mit einer leichten Verringerung der Leistung verwenden).
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.
Führen Sie den folgenden Code aus, um eine Beziehung vom Typ
contains
(enthält) 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 Anzeigenamen der Instanz mit einer leichten Verringerung der Leistung verwenden).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
Da die Beziehung vom Typ
contains
im Modell „Floor“ mit zwei Eigenschaften (ownershipUser
undownershipDepartment
) definiert wurde, können Sie beim Erstellen der Beziehungen auch Argumente mit den Anfangswerten für diese Eigenschaften angeben. 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.
Sie können die Beziehungen mithilfe einer der folgenden Befehle zum Ausgeben der Beziehungen in der Azure Digital Twins-Instanz überprüfen. Jeder Befehls besitzt einen Platzhalter für den Hostnamen der Instanz (Sie können auch den Anzeigenamen der Instanz mit einer leichten Verringerung der Leistung verwenden).
- So zeigen Sie alle Beziehungen an, die von den einzelnen Etagen ausgehen (Anzeige 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
- So können Sie sich diese Beziehungen einzeln (nach ID) ansehen:
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
- So zeigen Sie alle Beziehungen an, die von den einzelnen Etagen ausgehen (Anzeige der Beziehungen von einer Seite):
Die Zwillinge und Beziehungen, die Sie in diesem Tutorial eingerichtet haben, bilden den folgenden konzeptionellen Graphen:
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 Befehls besitzt einen Platzhalter für den Hostnamen der Instanz (Sie können auch den Anzeigenamen der Instanz mit einer leichten Verringerung der Leistung verwenden).
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:
Tipp
Wie Sie sehen, handelt es sich hierbei um den gleichen Befehl, den Sie bereits im Abschnitt Erstellen digitaler Zwillinge verwendet haben, um alle Azure Digital Twins-Instanzen in der Instanz zu finden.
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).
Welche Räume befinden sich auf floor0? (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 (wie floor0 in der obigen Abfrage) mithilfe des Metadatenfelds
$dtId
abgefragt wird. Nur room0 befindet sich auf floor0, weshalb es der einzige Raum im Ergebnis dieser Abfrage ist.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. Dies ist im obigen Screenshot dargestellt.Welche Zwillinge in meiner Umgebung haben eine Temperatur über 75? (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.
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 verwendetAND
, um die vorherige Abfrage der Zwillingstemperatur spezifischer zu gestalten. 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.
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>
Löschen Sie ggf. auch die Modelldateien, 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.
Im nächsten Tutorial wird eine Kombination aus Azure Digital Twins und anderen Azure-Diensten in einem datengesteuerten End-to-End-Szenario verwendet: