Udostępnij za pomocą


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ń Azure Digital Twins dla Azure CLI.

Polecenia interfejsu wiersza polecenia umożliwiają wykonywanie podstawowych czynności Azure Digital Twins, takich jak przekazywanie modeli, tworzenie i modyfikowanie bliźniaków cyfrowych oraz tworzenie relacji. Możesz również zapoznać się z dokumentacją referencyjną zestawu poleceń az dt, aby wyświetlić pełny zestaw poleceń CLI.

W tym samouczku nauczysz się...

  • Modelowanie środowiska
  • Tworzenie cyfrowych bliźniaków
  • 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 linków nawigacji na poprzedniej liście i skopiuj elementy plików do plików lokalnych na maszynie o takich samych nazwach (Room.json i Floor.json).

Przygotuj środowisko dla Azure CLI

Konfigurowanie sesji CLI

Aby rozpocząć pracę z Azure Digital Twins w CLI, najpierw należy się zalogować i ustawić kontekst CLI na swoją subskrypcję na tę sesję. 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 poprzednim poleceniu.

Jeśli używasz tej subskrypcji z usługą Azure Digital Twins po raz pierwszy, uruchom następujące 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 uruchomiono go kiedyś w przeszłości).

az provider register --namespace 'Microsoft.DigitalTwins'

Następnie dodaj rozszerzenie Microsoft Azure IoT dla Azure CLI, aby umożliwić korzystanie z poleceń do interakcji z 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 pracować z usługą Azure Digital Twins w interfejsie wiersza polecenia platformy Azure.

Ten stan można 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.

Przygotuj instancję Azure Digital Twins

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

W przeciwnym razie postępuj zgodnie z instrukcjami w sekcji konfigurowanie wystąpienia i uwierzytelnianie. Instrukcje zawierają również kroki umożliwiające sprawdzenie, czy pomyślnie ukończyłeś każdy krok i jesteś gotowy, aby zacząć korzystać z nowego wystąpienia.

Po skonfigurowaniu wystąpienia usługi Azure Digital Twins zanotuj następujące wartości, które będą potrzebne do późniejszego połączenia z tym wystąpieniem.

  • Nazwa hosta wystąpienia
  • Subskrypcja Azure, której użyłeś do utworzenia wystąpienia

Napiwek

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

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

Są one wyświetlane w danych wyjściowych w następujący sposób: zrzut ekranu przedstawiający okno przeglądarki usługi Cloud Shell z danymi wyjściowymi polecenia az dt show. Wyróżniono pole hostName i identyfikator subskrypcji.

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 w tworzeniu rozwiązania Azure Digital Twins jest określanie modeli dla środowiska.

Modele są podobne do klas w językach programowania obiektowego; udostępniają szablony zdefiniowane przez użytkownika dla cyfrowych bliźniaków, aby je później zinstancjować. Są one napisane w języku podobnym do JSON o nazwie Digital Twins Definition Language (DTDL) i mogą definiować właściwości, relacje i składniki bliźniaka.

Uwaga

Język DTDL umożliwia również definiowanie poleceń na cyfrowych bliźniakach. 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 1 na końcu @id 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żyjesz innej nazwy niż HumidityLevel, zapamiętaj ją i używaj jej konsekwentnie zamiast HumidityLevel w całym samouczku.

  3. Dodaj właściwość. Poniżej właściwości, która kończy się w wierszu 15, wklej następujący kod, aby dodać właściwość HumidityLevel 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 z innymi bliźniakami:

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

Po zakończeniu zaktualizowany model powinien odpowiadać temu:

{
    "@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 je przesłać do instancji usługi Azure Digital Twins. Skonfigurujesz w ten sposób wystąpienie usługi Azure Digital Twins za pomocą własnego niestandardowego słownictwa domeny. Po przekazaniu modeli można tworzyć bliźniacze wystąpienia, które z nich korzystają.

  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. Wybierz pozycję Zarządzaj plikami , a następnie pozycję Przekaż.

    Zrzut ekranu przedstawiający okno przeglądarki usługi Cloud Shell z wyborem ikony Przekaż.

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

  2. Następnie użyj polecenia az dt model create, jak pokazano w poniższym przykładzie, aby wgrać zaktualizowany model pomieszczenia do instancji usługi Azure Digital Twins. Drugie polecenie przekazuje inny model o nazwie Floor, który będzie również używany w następnej sekcji, aby utworzyć różne typy bliźniaków. Jest symbol zastępczy nazwy hosta wystąpienia (można również użyć przyjaznej nazwy wystąpienia, co może spowodować nieznaczny spadek wydajności) oraz symbol zastępczy dla ścieżki do każdego pliku modelu. Jeśli używasz usługi Cloud Shell, Room.json i Floor.json znajdują się w głównym katalogu pamięci masowej, więc możesz po prostu użyć nazw plików bezpośrednio w następujących poleceniach, w których 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>
    

    Rezultaty z każdego polecenia zawierają informacje o pomyślnie załadowanym modelu.

    Napiwek

    Możesz również jednocześnie przekazać wszystkie modele w katalogu, używając opcji --from-directory polecenia tworzenia modelu. Więcej informacji znajdziesz w sekcji Parametry opcjonalne dla polecenia az dt model create.

  3. Sprawdź, czy modele zostały utworzone za pomocą polecenia az dt model list , jak pokazano w poniższym przykładzie. W ten sposób wyświetlana jest lista wszystkich modeli wgranych do wystąpienia usługi Azure Digital Twins wraz z ich pełnymi informacjami. Jest jeden symbol zastępczy dla nazwy hosta instancji (można również użyć przyjaznej nazwy instancji, co wiąże się 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:

    Zrzut ekranu usługi Cloud Shell przedstawiający wynik polecenia listy modeli, który zawiera zaktualizowany model pokoju.

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 załadować 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 zwraca teraz kod błędu .ModelIdAlreadyExists

Tworzenie cyfrowych bliźniaków

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

Aby utworzyć cyfrowego bliźniaka, użyj polecenia az dt twin create. Należy powołać się na model, na podstawie którego stworzono bliźniaka, i opcjonalnie zdefiniować wartości początkowe dla dowolnych właściwości w modelu. Na tym etapie nie trzeba przekazywać żadnych informacji o relacji.

  1. Uruchom ten kod w konsoli, aby utworzyć kilka bliźniaków na podstawie zaktualizowanego wcześniej modelu Pokoju i innego modelu Podłogi. 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 czegoś innego niż Cloud Shell w środowisku Bash, być może będziesz musiał uciec się do znaków specjalnych w osadzonym JSON, aby były one poprawnie analizowane.

    Aby uzyskać więcej informacji, zapoznaj się z Jak używać znaków specjalnych w różnych powłokach.

    Dane wyjściowe z każdego polecenia zawierają informacje o pomyślnie utworzonej bliźniaczej jednostce (w tym właściwościach bliźniaczych jednostek pokoju, które zostały zainicjowane razem z nimi).

  2. Możesz sprawdzić, czy bliźniaki zostały utworzone za pomocą polecenia az dt twin query, jak pokazano w poniższym przykładzie. Zapytanie pokazane znajduje wszystkie cyfrowe bliźniaki w Twoim wystąpieniu Azure Digital Twins. Jest jeden symbol zastępczy dla nazwy hosta instancji (można również użyć przyjaznej nazwy instancji, co wiąże się 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źniaków room0, room1, floor0 i floor1. Oto fragment przedstawiający część wyniku tego zapytania.

    Zrzut ekranu usługi Cloud Shell przedstawiający częściowy wynik zapytania bliźniaczego, w tym room0 i 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 uzyskać dane cyfrowego bliźniaka zamiast zapytania.

Modyfikacja cyfrowego bliźniaka

Można również zmodyfikować właściwości utworzonego bliźniaka.

  1. Uruchom następujące polecenie az dt twin update, aby zmienić nazwę pokoju Room0 z Room0 na PresidentialSuite. Jest jeden symbol zastępczy dla nazwy hosta instancji (można również użyć przyjaznej nazwy instancji, co wiąże się 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

    W tym samouczku zalecamy używanie interfejsu wiersza poleceń (CLI) w środowisku powłoki Bash. 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 pokazują bieżące informacje o bliźniaku i powinny wyświetlić nową wartość dla RoomName w wyniku.

    Zrzut ekranu usługi Cloud Shell przedstawiający wynik polecenia aktualizacji, który zawiera element 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. Jest jeden symbol zastępczy dla nazwy hosta instancji (można również użyć przyjaznej nazwy instancji, co wiąże się 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źniakami, aby połączyć je w graf bliźniaków. Wykresy bliźniacze są używane do przedstawiania całego środowiska.

Typy relacji, które można utworzyć z jednej bliźniaczej jednostki do drugiej, są definiowane we wcześniej przekazanych modelach. Definicja modelu dla podłogi wskazuje, że podłogi mogą mieć typ relacji o nazwie contains. Ponieważ definicja modelu określa tę relację, można utworzyć relację typu contains z każdego bliźniaka cyfrowego piętro do odpowiedniego pokoju, który zawiera.

Aby dodać relację, użyj polecenia az dt twin relationship create. Określ bliźniaka, z którego pochodzi relacja, typ relacji i bliźniaka, z którym relacja się łączy. Na koniec nadaj relacji unikatowy identyfikator. Jeśli zdefiniowano relację, której nadano 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ę typu contains z każdego wcześniej utworzonego bliźniaka Piętra do odpowiadającego mu bliźniaka Pokoju. Relacje mają nazwę relationship0 i relationship1. Jest jeden symbol zastępczy dla nazwy hosta instancji (można również użyć przyjaznej nazwy instancji, co wiąże się 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, ownershipUser oraz ownershipDepartment, dzięki czemu można podać argumenty z początkowymi wartościami dla tych właściwości przy tworzeniu relacji. Aby utworzyć relację z tymi właściwościami zainicjowanymi, dodaj opcję --properties do jednego z powyższych poleceń, w następujący sposób:

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

    Dane wyjściowe z każdego polecenia zawierają 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 dla nazwy hosta instancji (można również użyć przyjaznej nazwy instancji, co spowoduje niewielki spadek 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 pojedynczo, na podstawie ID:
      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:

Diagram przedstawiający wykres koncepcyjny. Piętro0 jest połączone za pośrednictwem relacji0 z pokojem0, a piętro1 jest połączone za pośrednictwem relacji1 z pokojem1.

Wykonywanie zapytań względem grafu bliźniaczego 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ń dotyczących grafu cyfrowych bliźniaków, aby odpowiadać na pytania dotyczące środowiska. W interfejsie wiersza polecenia Azure zapytania są wykonywane 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 uzyskać dane cyfrowego bliźniaka 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 dla nazwy hosta instancji (można również użyć przyjaznej nazwy instancji, co spowoduje niewielki spadek wydajności).

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

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

    To zapytanie pozwala na szybki przegląd stanu środowiska, aby upewnić się, że wszystkie elementy są reprezentowane zgodnie z Twoimi oczekiwaniami w usłudze Azure Digital Twins. Wynikiem tego zapytania jest rezultat zawierający każdego cyfrowego bliźniaka ze szczegółami. Oto fragment:

    Zrzut ekranu usługi Cloud Shell przedstawiający częściowy wynik zapytania bliźniaczego, w tym room0 i room1.

    Napiwek

    Możesz rozpoznać, że to polecenie jest tym samym poleceniem, które zostało użyte we wcześniejszej 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źniaków określonego typu, aby uzyskać bardziej szczegółowe informacje o tym, co jest reprezentowane. Wynik tego pokazuje pokój0 i pokój1, ale nie pokazuje floor0 ani floor1 (ponieważ są to podłogi, a nie pokoje).

    Zrzut ekranu usługi Cloud Shell przedstawiający wynik zapytania modelu, który zawiera tylko room0 i 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 w grafie, aby uzyskać informacje na temat sposobu, w jaki bliźniaki są połączone, lub ograniczyć zapytanie do określonego obszaru. To zapytanie ilustruje również, że identyfikator bliźniaka (na przykład floor0 w poprzednim zapytaniu) jest odpytywany za pomocą pola $dtId metadanych. Tylko room0 znajduje się na piętrze0, więc jest to jedyny pokój w wyniku dla tego zapytania.

    Zrzut ekranu usługi Cloud Shell przedstawiający wynik zapytania relacji, który zawiera room0.

    Uwaga

    W przypadku używania Cloud Shell do uruchamiania zapytania z polami metadanych, takimi jak te, które rozpoczynają się od $, należy zastosować znak odwrotny ukośnika, aby poinformować Cloud Shell, że nie jest to zmienna i powinna być traktowana jako literał w tekście zapytania. Pole unikniętych metadanych zostało odzwierciedlone na poprzednim zrzucie ekranu.

  4. Jakie są wszystkie bliźniaki w moim otoczeniu o temperaturze powyżej 75? (zapytanie na podstawie 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 wykonywać zapytania dotyczące 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.

    Zrzut ekranu usługi Cloud Shell przedstawiający wynik zapytania właściwości, który zawiera tylko pokój1.

  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 do bardziej szczegółowego określenia poprzedniego zapytania dotyczącego temperatur bliźniaczych. Wynik obejmuje teraz tylko pomieszczenia o temperaturze powyżej 75 stopni, które znajdują się na piętrze 0 — w tym przypadku żadne z nich nie spełnia tego kryterium. Zestaw wyników jest pusty.

    Zrzut ekranu usługi Cloud Shell przedstawiający wynik złożonego zapytania, który nie zawiera żadnych elementów.

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ć tutaj skonfigurowane zasoby i ponownie użyć instancji Azure Digital Twins bez czyszczenia czegokolwiek w międzyczasie.
  • Jeśli chcesz kontynuować korzystanie z wystąpienia usługi Azure Digital Twins z tego artykułu, ale wyczyścić wszystkie jego modele, bliźniaki cyfrowe i relacje, uruchom następujące polecenie CLI: az dt job deletion

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

    Jeśli chcesz usunąć tylko niektóre z tych elementów, możesz użyć poleceń az dt twin relationship delete, az dt twin delete i az dt model delete, aby selektywnie usunąć elementy, które chcesz usunąć.

  • 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 samouczka za pomocą polecenia w wierszu poleceń az group delete. 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ąłeś pracę z usługą Azure Digital Twins, tworząc graf w swoim 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: