Samouczek: tworzenie grafu usługi Azure Digital Twins przy użyciu interfejsu wiersza polecenia platformy Azure

W tym samouczku utworzysz graf w usłudze Azure Digital Twins przy użyciu modeli, reprezentacji bliźniaczych i relacji. Narzędzie do tego samouczka to zestaw poleceń usługi Azure Digital Twins dla interfejsu wiersza polecenia platformy Azure.

Polecenia interfejsu wiersza polecenia umożliwiają wykonywanie podstawowych akcji usługi Azure Digital Twins, takich jak przekazywanie modeli, tworzenie i modyfikowanie reprezentacji bliźniaczych oraz tworzenie relacji. Możesz również zapoznać się z dokumentacją referencyjną polecenia az dt set , aby wyświetlić pełny zestaw poleceń interfejsu wiersza polecenia.

W tym samouczku wykonasz...

  • Modelowanie środowiska
  • Tworzenie cyfrowych reprezentacji bliźniaczych
  • Dodawanie relacji w celu utworzenia grafu
  • Wykonywanie zapytań względem grafu w celu udzielenia odpowiedzi na pytania

Wymagania wstępne

Aby wykonać kroki opisane w tym samouczku, należy najpierw spełnić następujące wymagania wstępne.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Pobieranie przykładowych modeli

W tym samouczku są używane dwa wstępnie napisane modele, które są częścią kompleksowego projektu przykładowego języka C# dla usługi Azure Digital Twins. Pliki modelu znajdują się tutaj:

Aby pobrać pliki na maszynie, użyj powyższych linków nawigacji i skopiuj elementy plików do plików lokalnych na maszynie o takich samych nazwach (Room.json i Floor.json).

Przygotowywanie środowiska dla interfejsu wiersza polecenia platformy Azure

Konfigurowanie sesji interfejsu wiersza polecenia

Aby rozpocząć pracę z usługą Azure Digital Twins w interfejsie wiersza polecenia, najpierw należy się zalogować i ustawić kontekst interfejsu wiersza polecenia na subskrypcję dla tej sesji. Uruchom następujące polecenia w oknie interfejsu wiersza polecenia:

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

Napiwek

Możesz również użyć nazwy subskrypcji zamiast identyfikatora w powyższym poleceniu.

Jeśli po raz pierwszy użyto tej subskrypcji z usługą Azure Digital Twins, uruchom to polecenie, aby zarejestrować się w przestrzeni nazw usługi Azure Digital Twins. (Jeśli nie masz pewności, możesz uruchomić go ponownie, nawet jeśli zrobiłeś to kiedyś w przeszłości).

az provider register --namespace 'Microsoft.DigitalTwins'

Następnie dodasz rozszerzenie Microsoft Azure IoT dla interfejsu wiersza polecenia platformy Azure, aby umożliwić interakcję z usługą Azure Digital Twins i innymi usługami IoT. Uruchom to polecenie, aby upewnić się, że masz najnowszą wersję rozszerzenia:

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

Teraz możesz przystąpić do pracy z usługą Azure Digital Twins w interfejsie wiersza polecenia platformy Azure.

Możesz to sprawdzić, uruchamiając polecenie az dt --help w dowolnym momencie, aby wyświetlić listę dostępnych poleceń usługi Azure Digital Twins najwyższego poziomu.

Przygotowywanie wystąpienia usługi Azure Digital Twins

Aby pracować z usługą Azure Digital Twins w tym artykule, najpierw należy skonfigurować wystąpienie usługi Azure Digital Twins i wymagane uprawnienia do korzystania z niego. Jeśli masz już wystąpienie usługi Azure Digital Twins skonfigurowane z poprzedniej pracy, możesz użyć tego wystąpienia.

W przeciwnym razie postępuj zgodnie z instrukcjami w temacie Konfigurowanie wystąpienia i uwierzytelniania. Instrukcje zawierają również kroki umożliwiające sprawdzenie, czy każdy krok został ukończony pomyślnie i jest gotowy do przejścia do korzystania z nowego wystąpienia.

Po skonfigurowaniu wystąpienia usługi Azure Digital Twins zanotuj następujące wartości, które należy połączyć z wystąpieniem później:

  • Nazwa hosta wystąpienia
  • Subskrypcja platformy Azure użyta do utworzenia wystąpienia

Napiwek

Jeśli znasz przyjazną nazwę wystąpienia, możesz użyć następującego polecenia interfejsu wiersza polecenia, aby uzyskać nazwę hosta i wartości subskrypcji:

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

Zostaną one wyświetlone w danych wyjściowych w następujący sposób: Screenshot of Cloud Shell browser window showing the output of the az dt show command. The hostName field and subscription ID are highlighted.

Modelowanie środowiska fizycznego przy użyciu języka DTDL

Po skonfigurowaniu interfejsu wiersza polecenia i wystąpienia usługi Azure Digital Twins możesz rozpocząć tworzenie grafu scenariusza.

Pierwszym krokiem tworzenia rozwiązania usługi Azure Digital Twins jest definiowanie modeli bliźniaczych reprezentacji dla danego środowiska.

Modele są podobne do klas w językach programowania obiektowego; udostępniają szablony zdefiniowane przez użytkownika dla cyfrowych reprezentacji bliźniaczych w celu późniejszego utworzenia wystąpienia i utworzenia ich wystąpienia. Są one napisane w języku przypominającym kod JSON o nazwie Digital Twins Definition Language (DTDL) i mogą definiować właściwości, relacje i składniki bliźniaczej reprezentacji.

Uwaga

Język DTDL umożliwia również definiowanie poleceń w cyfrowych reprezentacjach bliźniaczych. Jednak polecenia nie są obecnie obsługiwane w usłudze Azure Digital Twins.

Przejdź na maszynie do pliku Room.json utworzonego w sekcji Wymagania wstępne. Otwórz go w edytorze kodu i zmień go na następujące sposoby:

  1. Zaktualizuj numer wersji, aby wskazać, że udostępniasz bardziej zaktualizowaną wersję tego modelu. Zrób to, zmieniając wartość 1 na końcu @id wartości na 2. Każda liczba większa niż bieżący numer wersji również będzie działać.

  2. Edytuj właściwość. Zmień nazwę Humidity właściwości na HumidityLevel (lub coś innego, jeśli chcesz. Jeśli używasz czegoś innego niż HumidityLevel, pamiętaj, co zostało użyte i nadal używasz tego elementu zamiast humidityLevel w całym samouczku.

  3. Dodaj właściwość. Poniżej właściwości kończącej HumidityLevel się w wierszu 15 wklej następujący kod, aby dodać RoomName właściwość do pokoju:

    ,{
      "@type": "Property",
      "name": "RoomName",
      "schema": "string"
    }
    
  4. Dodaj relację. Poniżej właśnie dodanej RoomName właściwości wklej następujący kod, aby dodać możliwość tworzenia contains relacji bliźniaczych z innymi reprezentacjami bliźniaczymi:

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

Po zakończeniu zaktualizowany model powinien być zgodny z następującymi elementami:

{
    "@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"
  }

Przed przejściem upewnij się, że plik został zapisany.

Przekazywanie modeli do usługi Azure Digital Twins

Po zaprojektowaniu modeli należy przekazać je do wystąpienia usługi Azure Digital Twins. W ten sposób skonfiguruje wystąpienie usługi Azure Digital Twins przy użyciu własnego niestandardowego słownictwa domeny. Po przekazaniu modeli możesz utworzyć wystąpienia bliźniaczych reprezentacji, które ich używają.

  1. Jeśli używasz lokalnej instalacji interfejsu wiersza polecenia platformy Azure, możesz pominąć ten krok. Jeśli używasz usługi Cloud Shell, musisz przekazać pliki modelu do magazynu usługi Cloud Shell, aby pliki były dostępne podczas uruchamiania polecenia usługi Cloud Shell, które z nich korzysta. W tym celu wybierz ikonę "Przekaż/Pobierz pliki", a następnie wybierz pozycję "Przekaż".

    Screenshot of Cloud Shell browser window showing selection of the Upload icon.

    Przejdź do pliku Room.json na maszynie i wybierz pozycję "Otwórz". Następnie powtórz ten krok dla pliku Floor.json.

  2. Następnie użyj polecenia az dt model create , jak pokazano poniżej, aby przekazać zaktualizowany model pokoju do wystąpienia usługi Azure Digital Twins. Drugie polecenie przekazuje inny model Floor, który będzie również używany w następnej sekcji, aby utworzyć różne typy reprezentacji bliźniaczych. Istnieje symbol zastępczy nazwy hosta wystąpienia (można również użyć przyjaznej nazwy wystąpienia z nieznacznym spadkiem wydajności) i symbolem zastępczym ścieżki do każdego pliku modelu. Jeśli używasz usługi Cloud Shell, plik Room.json i Floor.json znajdują się w głównym katalogu magazynu, więc możesz po prostu użyć nazw plików bezpośrednio w poleceniu poniżej, gdzie wymagana jest ścieżka.

    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>
    

    Dane wyjściowe z każdego polecenia będą zawierać informacje o pomyślnym przekazaniu modelu.

    Napiwek

    Możesz również przekazać wszystkie modele w katalogu w tym samym czasie, używając --from-directory opcji polecenia create modelu. Aby uzyskać więcej informacji, zobacz Parametry opcjonalne dla polecenia az dt model create.

  3. Sprawdź, czy modele zostały utworzone za pomocą polecenia az dt model list , jak pokazano poniżej. Spowoduje to wyświetlenie listy wszystkich modeli przekazanych do wystąpienia usługi Azure Digital Twins z pełnymi informacjami. Istnieje jeden symbol zastępczy nazwy hosta wystąpienia (można również użyć przyjaznej nazwy wystąpienia z niewielkim spadkiem wydajności).

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

    Wyszukaj edytowany model pokoju w wynikach:

    Screenshot of Cloud Shell showing result of the model list command, which includes the updated Room model.

Błędy

Interfejs wiersza polecenia obsługuje również błędy z usługi.

Uruchom ponownie polecenie, az dt model create aby spróbować ponownie przekazać jeden z przekazanych modeli po raz drugi:

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

Ponieważ nie można zastąpić modeli, uruchomienie tego polecenia w tym samym modelu zwróci teraz kod błędu ModelIdAlreadyExists.

Tworzenie cyfrowych reprezentacji bliźniaczych

Teraz, gdy niektóre modele zostały przekazane do wystąpienia usługi Azure Digital Twins, możesz utworzyć cyfrowe reprezentacje bliźniacze na podstawie definicji modelu. Cyfrowe reprezentacje bliźniacze reprezentują jednostki w środowisku biznesowym — takie jak czujniki na farmie, pokoje w budynku lub światła w samochodzie.

Aby utworzyć cyfrową reprezentację bliźniaczą, użyj polecenia az dt twin create . Musisz odwołać się do modelu opartego na bliźniaczej reprezentacji i opcjonalnie zdefiniować początkowe wartości dla dowolnych właściwości w modelu. Na tym etapie nie trzeba przekazywać żadnych informacji o relacji.

  1. Uruchom ten kod w interfejsie wiersza polecenia, aby utworzyć kilka reprezentacji bliźniaczych na podstawie zaktualizowanego wcześniej modelu Pokoju i innego modelu Floor. Pamiętaj, że pokój ma trzy właściwości, więc można podać argumenty z początkowymi wartościami dla tych właściwości. (Inicjowanie wartości właściwości jest opcjonalne ogólnie, ale są one wymagane w tym samouczku). Istnieje jeden symbol zastępczy nazwy hosta wystąpienia (można również użyć przyjaznej nazwy wystąpienia z niewielkim spadkiem wydajności).

    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
    

    Uwaga

    Jeśli używasz niczego innego niż usługa Cloud Shell w środowisku powłoki Bash, może być konieczne ucieczka niektórych znaków w wbudowanym formacie JSON, aby była poprawnie analizowana.

    Aby uzyskać więcej informacji, zobacz Używanie znaków specjalnych w różnych powłokach.

    Dane wyjściowe z każdego polecenia będą zawierać informacje o pomyślnie utworzonej reprezentacji bliźniaczej (w tym właściwości bliźniaczych reprezentacji pokoju, które zostały z nimi zainicjowane).

  2. Możesz sprawdzić, czy bliźniacze reprezentacje zostały utworzone za pomocą polecenia az dt twin query , jak pokazano poniżej. Wyświetlone zapytanie znajduje wszystkie cyfrowe reprezentacje bliźniacze w wystąpieniu usługi Azure Digital Twins. Istnieje jeden symbol zastępczy nazwy hosta wystąpienia (można również użyć przyjaznej nazwy wystąpienia z niewielkim spadkiem wydajności).

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

    Poszukaj w wynikach bliźniaczych reprezentacji bliźniaczych room0, room1, floor0 i floor1. Oto fragment przedstawiający część wyniku tego zapytania.

    Screenshot of Cloud Shell showing partial result of twin query, including room0 and room1.

Uwaga

Po wprowadzeniu zmiany danych na grafie może wystąpić opóźnienie do 10 sekund, zanim zmiany zostaną odzwierciedlone w zapytaniach.

Interfejs API DigitalTwins odzwierciedla zmiany natychmiast, więc jeśli potrzebujesz natychmiastowej odpowiedzi, użyj żądania interfejsu API (DigitalTwins GetById) lub wywołania zestawu SDK (GetDigitalTwin), aby pobrać dane bliźniaczej reprezentacji zamiast zapytania.

Modyfikowanie cyfrowej reprezentacji bliźniaczej

Możesz również zmodyfikować właściwości utworzonej reprezentacji bliźniaczej.

  1. Uruchom następujące polecenie az dt twin update , aby zmienić room0's RoomName z Room0 na PresidentialSuite. Istnieje jeden symbol zastępczy nazwy hosta wystąpienia (można również użyć przyjaznej nazwy wystąpienia z niewielkim spadkiem wydajności).

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

    Uwaga

    Zaleca się używanie interfejsu wiersza polecenia w środowisku powłoki Bash na potrzeby tego samouczka. Jeśli używasz środowiska programu PowerShell, może być konieczne ucieczka znaków cudzysłowu w celu poprawnego --json-patch przeanalizowania wartości JSON.

    Dane wyjściowe tego polecenia pokażą bieżące informacje bliźniaczej reprezentacji bliźniaczej i powinny zostać wyświetlone nowe wartości w RoomName wyniku.

    Screenshot of Cloud Shell showing result of the update command, which includes a RoomName of PresidentialSuite.

  2. Możesz sprawdzić, czy aktualizacja powiodła się, uruchamiając polecenie az dt twin show , aby wyświetlić informacje o pokoju0. Istnieje jeden symbol zastępczy nazwy hosta wystąpienia (można również użyć przyjaznej nazwy wystąpienia z niewielkim spadkiem wydajności).

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

    Dane wyjściowe powinny odzwierciedlać zaktualizowaną nazwę.

Tworzenie grafu przez dodawanie relacji

Następnie możesz utworzyć relacje między tymi bliźniaczymi reprezentacjami, aby połączyć je z grafem bliźniaczych reprezentacji. Wykresy bliźniaczych reprezentacji są używane do reprezentowania całego środowiska.

Typy relacji, które można utworzyć z jednej reprezentacji bliźniaczej do drugiej, są definiowane we wcześniej przekazanych modelach . Definicja modelu dla floor określa, że podłogi mogą mieć typ relacji o nazwie contains. Ponieważ definicja modelu określa tę relację, można utworzyć relację containstypu -type z każdej reprezentacji bliźniaczej floor do odpowiedniego pokoju, który zawiera.

Aby dodać relację, użyj polecenia az dt twin relationship create . Określ bliźniacze reprezentację, z którą pochodzi relacja, typ relacji i bliźniacze, z którą łączy się relacja. Na koniec nadaj relacji unikatowy identyfikator. Jeśli zdefiniowano relację, aby mieć właściwości, można również zainicjować właściwości relacji w tym poleceniu.

  1. Uruchom następujący kod, aby dodać relację contains-type z każdej utworzonej wcześniej reprezentacji bliźniaczej Floor do odpowiadającej reprezentacji bliźniaczej pokoju. Relacje mają nazwę relationship0 i relationship1. Istnieje jeden symbol zastępczy nazwy hosta wystąpienia (można również użyć przyjaznej nazwy wystąpienia z niewielkim spadkiem wydajności).

    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
    

    Napiwek

    Relacja contains w modelu Floor została również zdefiniowana z dwiema właściwościami i ownershipDepartmentownershipUser , dzięki czemu można również podać argumenty z początkowymi wartościami dla nich podczas tworzenia relacji. Aby utworzyć relację z tymi właściwościami zainicjowanymi, dodaj --properties opcję do jednego z powyższych poleceń, w następujący sposób:

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

    Dane wyjściowe z każdego polecenia będą zawierać informacje o pomyślnie utworzonej relacji.

  2. Relacje można zweryfikować przy użyciu dowolnego z następujących poleceń, które wyświetlają relacje w wystąpieniu usługi Azure Digital Twins. Każde polecenie ma jeden symbol zastępczy nazwy hosta wystąpienia (można również użyć przyjaznej nazwy wystąpienia z niewielkim spadkiem wydajności).

    • Aby wyświetlić wszystkie relacje wychodzące z każdego piętra (wyświetlanie relacji z jednej strony):
      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
      
    • Aby wyświetlić wszystkie relacje przychodzące do każdego pokoju (wyświetlanie relacji z "drugiej" strony):
      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
      
    • Aby wyszukać te relacje indywidualnie, według identyfikatora:
      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
      

Bliźniacze i relacje skonfigurowane w tym samouczku tworzą następujący graf koncepcyjny:

A diagram showing a conceptual graph. floor0 is connected via relationship0 to room0, and floor1 is connected via relationship1 to room1.

Wykonywanie zapytań względem grafu bliźniaczej reprezentacji w celu udzielenia odpowiedzi na pytania dotyczące środowiska

Główną funkcją usługi Azure Digital Twins jest możliwość łatwego i wydajnego wykonywania zapytań względem grafu bliźniaczej reprezentacji w celu odpowiadania na pytania dotyczące środowiska. W interfejsie wiersza polecenia platformy Azure wykonywanie zapytań odbywa się za pomocą polecenia az dt twin query .

Uwaga

Po wprowadzeniu zmiany danych na grafie może wystąpić opóźnienie do 10 sekund, zanim zmiany zostaną odzwierciedlone w zapytaniach.

Interfejs API DigitalTwins odzwierciedla zmiany natychmiast, więc jeśli potrzebujesz natychmiastowej odpowiedzi, użyj żądania interfejsu API (DigitalTwins GetById) lub wywołania zestawu SDK (GetDigitalTwin), aby pobrać dane bliźniaczej reprezentacji zamiast zapytania.

Uruchom następujące zapytania w interfejsie wiersza polecenia, aby odpowiedzieć na kilka pytań dotyczących przykładowego środowiska. Każde polecenie ma jeden symbol zastępczy nazwy hosta wystąpienia (można również użyć przyjaznej nazwy wystąpienia z niewielkim spadkiem wydajności).

  1. Jakie są wszystkie jednostki z mojego środowiska reprezentowane w usłudze Azure Digital Twins? (zapytanie wszystkie)

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

    To zapytanie umożliwia błyskawiczne przedstawienie środowiska i upewnienie się, że wszystko jest reprezentowane w taki sposób, jak chcesz, aby był w usłudze Azure Digital Twins. Wynikiem tego zapytania jest dane wyjściowe zawierające każdą cyfrową reprezentację bliźniaczą ze szczegółami. Oto fragment:

    Screenshot of Cloud Shell showing partial result of twin query, including room0 and room1.

    Napiwek

    Możesz rozpoznać, że jest to to samo polecenie, które zostało wcześniej użyte w sekcji Tworzenie cyfrowych reprezentacji bliźniaczych, aby znaleźć wszystkie usługi Azure Digital Twins w wystąpieniu.

  2. Jakie są wszystkie pokoje w moim środowisku? (zapytanie według modelu)

    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')"
    

    Zapytanie można ograniczyć do bliźniaczych reprezentacji określonego typu, aby uzyskać bardziej szczegółowe informacje o reprezentowanych elementach. Wynik tego pokazuje pokój0 i pokój1, ale nie pokazuje floor0 ani floor1 (ponieważ są to podłogi, a nie pokoje).

    Screenshot of Cloud Shell showing result of model query, which includes only room0 and room1.

  3. Jakie są wszystkie pokoje na piętrze0? (zapytanie według relacji)

    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'"
    

    Możesz wykonywać zapytania na podstawie relacji na wykresie, aby uzyskać informacje na temat sposobu łączenia bliźniaczych reprezentacji bliźniaczych lub ograniczenia zapytania do określonego obszaru. To zapytanie ilustruje również, że identyfikator bliźniaczej reprezentacji bliźniaczej (na przykład floor0 w powyższym zapytaniu) jest odpytywane przy użyciu pola $dtIdmetadanych . Tylko room0 znajduje się na piętrze, więc jest to jedyne miejsce w wyniku dla tego zapytania.

    Screenshot of Cloud Shell showing result of relationship query, which includes room0.

    Uwaga

    W przypadku używania usługi Cloud Shell do uruchamiania zapytania z polami metadanych, takim jak ten rozpoczynający się od $, należy użyć $ ukośnika odwrotnego, aby poinformować usługę Cloud Shell, że nie jest to zmienna i powinna być używana jako literał w tekście zapytania. Zostanie to odzwierciedlone na powyższym zrzucie ekranu.

  4. Jakie są wszystkie bliźniacze reprezentacje w moim środowisku z temperaturą powyżej 75? (zapytanie według właściwości)

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

    Możesz wykonać zapytanie względem grafu na podstawie właściwości, aby odpowiedzieć na różne rodzaje pytań, w tym znaleźć wartości odstające w środowisku, które mogą wymagać uwagi. Obsługiwane są również inne operatory porównania (<, =>, lub !=). room1 pojawia się w wynikach tutaj, ponieważ ma temperaturę 80.

    Screenshot of Cloud Shell showing result of property query, which includes only room1.

  5. Jakie są wszystkie pokoje na piętrze0 z temperaturą powyżej 75? (zapytanie złożone)

    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"
    

    Możesz również połączyć wcześniejsze zapytania, takie jak w języku SQL, przy użyciu operatorów kombinacji, takich jak AND, , ORNOT. To zapytanie używa AND polecenia , aby poprzednie zapytanie dotyczące temperatury reprezentacji bliźniaczej było bardziej szczegółowe. Wynik obejmuje teraz tylko pomieszczenia o temperaturze powyżej 75, które znajdują się na podłodze 0 — w tym przypadku nie jest to żaden z nich. Zestaw wyników jest pusty.

    Screenshot of Cloud Shell showing result of compound query, which doesn't include any items.

Czyszczenie zasobów

Po ukończeniu tego samouczka możesz wybrać zasoby, które chcesz usunąć, w zależności od tego, co chcesz zrobić dalej.

  • Jeśli planujesz przejść do następnego samouczka, możesz zachować skonfigurowane tutaj zasoby i ponownie użyć wystąpienia usługi Azure Digital Twins bez czyszczenia niczego między nimi.
  • Jeśli nie potrzebujesz żadnych zasobów utworzonych w tym samouczku, możesz usunąć wystąpienie usługi Azure Digital Twins i wszystkie inne zasoby z tego artykułu za pomocą polecenia az group delete interfejsu wiersza polecenia. Spowoduje to usunięcie wszystkich zasobów platformy Azure w grupie zasobów, a także samej grupy zasobów.

    Ważne

    Usunięcie grupy zasobów jest nieodwracalne. Grupa zasobów oraz wszystkie zawarte w niej zasoby zostaną trwale usunięte. Uważaj, aby nie usunąć przypadkowo niewłaściwych zasobów lub niewłaściwej grupy zasobów.

    Otwórz usługę Azure Cloud Shell lub lokalne okno interfejsu wiersza polecenia, a następnie uruchom następujące polecenie, aby usunąć grupę zasobów i wszystko, co zawiera.

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

Możesz również usunąć pliki modelu utworzone na komputerze lokalnym.

Następne kroki

W tym samouczku rozpoczęto pracę z usługą Azure Digital Twins, tworząc graf w wystąpieniu przy użyciu interfejsu wiersza polecenia platformy Azure. Utworzono modele, cyfrowe reprezentacje bliźniacze i relacje w celu utworzenia grafu. Uruchomiono również kilka zapytań na grafie, aby dowiedzieć się, jakiego rodzaju pytania usługa Azure Digital Twins może odpowiedzieć na temat środowiska.

Przejdź do następnego samouczka, aby połączyć usługę Azure Digital Twins z innymi usługami platformy Azure w celu ukończenia scenariusza opartego na danych, kompleksowego: