다음을 통해 공유


자습서: Azure CLI를 사용하여 Azure Digital Twins 그래프 만들기

이 자습서에서는 모델, 트윈 및 관계를 사용하여 Azure Digital Twins에서 그래프를 작성합니다. 이 자습서의 도구는 Azure CLI에 대한 Azure Digital Twins 명령 집합입니다.

CLI 명령을 사용하여 모델 업로드, 트윈 만들기/수정 및 관계 만들기와 같은 필수 Azure Digital Twins 작업을 수행할 수 있습니다. az dt 명령 집합에 대한 참조 설명서를 참조하여 CLI 명령의 전체 집합을 확인할 수도 있습니다.

이 자습서에서는 다음을 수행합니다.

  • 환경 모델링
  • 디지털 트윈 만들기
  • 관계를 추가하여 그래프 형성
  • 그래프를 쿼리하여 질문에 답변

필수 조건

이 자습서의 단계를 완료하려면 먼저 다음 필수 구성 요소를 완료해야 합니다.

Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.

샘플 모델 다운로드

이 자습서에서는 Azure Digital Twins에 대한 C# 엔드 투 엔드 샘플 프로젝트의 일부인 두 개의 미리 작성된 모델을 사용합니다. 모델 파일은 다음 위치에 있습니다.

컴퓨터에서 파일을 얻으려면 이전 목록의 탐색 링크를 사용하고 동일한 이름(Room.jsonFloor.json)을 사용하여 컴퓨터의 로컬 파일에 파일 본문을 복사합니다.

Azure CLI에 대한 환경 준비

CLI 세션 설정

CLI에서 Azure Digital Twins 작업을 시작하려면 먼저 로그인하고 CLI 컨텍스트를 이 세션에 대한 구독으로 설정하는 것입니다. CLI 창에서 다음 명령을 실행합니다.

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

이전 명령의 ID 대신 구독 이름을 사용할 수도 있습니다.

Azure Digital Twins에서 이 구독을 처음으로 사용하는 경우 다음 명령을 실행하여 Azure Digital Twins 네임스페이스에 등록합니다. (확실하지 않은 경우 과거에 실행해도 다시 실행해도 괜찮습니다.)

az provider register --namespace 'Microsoft.DigitalTwins'

다음으로 Azure Digital Twins 및 기타 IoT 서비스와 상호 작용하기 위한 명령을 사용하도록 설정하기 위해 Azure CLI용 Microsoft Azure IoT 확장을 추가합니다. 다음 명령을 실행하여 최신 버전의 확장이 있는지 확인합니다.

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

이제 Azure CLI에서 Azure Digital Twins를 사용할 준비가 되었습니다.

언제든지 실행 az dt --help 하여 이 상태를 확인하여 사용 가능한 최상위 Azure Digital Twins 명령 목록을 볼 수 있습니다.

Azure Digital Twins 인스턴스 준비하기

이 문서에서 Azure Digital Twins로 작업하려면 먼저 Azure Digital Twins 인스턴스를 설정하고 이를 사용하는 데 필요한 권한이 필요합니다. 이전 작업에서 이미 Azure Digital Twins 인스턴스가 설정된 경우 해당 인스턴스를 사용할 수 있습니다.

그렇지 않으면 인스턴스 및 인증 설정의 지침을 따릅니다. 이 지침에는 각 단계를 성공적으로 완료하고 새 인스턴스를 사용할 준비가 되었는지 확인하는 단계도 포함되어 있습니다.

Azure Digital Twins 인스턴스를 설정한 후 나중에 인스턴스에 연결하는 데 필요한 다음 값을 기록해 둡니다.

  • 인스턴스의 호스트 이름
  • 인스턴스를 만드는 데 사용한 Azure 구독

인스턴스의 식별 이름을 알고 있는 경우 다음 CLI 명령을 사용하여 호스트 이름 및 구독 값을 가져올 수 있습니다.

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

다음과 같은 출력에 표시됩니다 . az dt show 명령의 출력을 보여 주는 Cloud Shell 브라우저 창의 스크린샷. hostName 필드 및 구독 ID가 강조 표시됩니다.

DTDL로 물리적 환경 모델링

이제 CLI 및 Azure Digital Twins 인스턴스가 설정되었으므로 시나리오의 그래프 빌드를 시작할 수 있습니다.

Azure Digital Twins 솔루션을 만드는 첫 번째 단계는 환경에 대한 트윈 모델을 정의하는 것입니다.

모델은 개체 지향 프로그래밍 언어의 클래스와 비슷합니다. 디지털 트윈 이 나중에 팔로우하고 인스턴스화할 수 있도록 사용자 정의 템플릿을 제공합니다. DTDL(Digital Twins Definition Language)이라는 JSON과 유사한 언어로 작성되며 트윈의 속성, 관계 및 구성 요소를 정의할 수 있습니다.

참고

또한 DTDL은 Digital Twins에 명령 정의를 허용합니다. 하지만 현재 Azure Digital Twins 서비스에서는 명령이 지원되지 않습니다.

컴퓨터에서 필수 구성 요소 섹션에서 만든 Room.json 파일로 이동합니다. 코드 편집기에서 열고, 다음과 같은 방법으로 변경합니다.

  1. 버전 번호를 업데이트하여 이 모델의 최신 버전을 제공하고 있음을 나타냅니다. 값의 끝에 있는 @id2로 변경하여 이 작업을 수행합니다. 현재 버전 번호보다 큰 번호도 사용할 수 있습니다.

  2. 속성을 편집합니다. 속성 이름을 HumidityHumidityLevel (또는 원하는 경우 다른 항목)으로 변경합니다. HumidityLevel과 다른 항목을 사용하는 경우 사용한 내용을 기억하고 자습서 전체에서 HumidityLevel 대신 계속 사용합니다.)

  3. 속성을 추가합니다. 줄 15에서 끝나는 HumidityLevel 속성 아래에 다음 코드를 붙여 넣어 RoomName 속성을 room에 추가합니다.

    ,{
      "@type": "Property",
      "name": "RoomName",
      "schema": "string"
    }
    
  4. 관계를 추가합니다. 방금 추가한 RoomName 속성 아래에 다음 코드를 붙여 넣어 이러한 유형의 트윈이 다른 트윈과 contains 관계를 형성하는 기능을 추가합니다.

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

완료 시 업데이트된 모델은 이와 일치해야 합니다.

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

계속 진행하기 전에 파일을 저장합니다.

Azure Digital Twins에 모델 업로드

모델을 설계한 후에는 Azure Digital Twins 인스턴스에 업로드해야 합니다. 이렇게 하면 고유의 사용자 지정 도메인 어휘를 사용하여 Azure Digital Twins 서비스 인스턴스가 구성됩니다. 모델을 업로드하면 해당 모델을 사용하는 트윈 인스턴스를 만들 수 있습니다.

  1. Azure CLI의 로컬 설치를 사용 중인 경우 이 단계를 건너뛰어도 됩니다. Cloud Shell을 사용하는 경우 모델 파일을 사용하는 Cloud Shell 명령을 실행할 때 파일을 사용할 수 있도록 Cloud Shell의 스토리지에 모델 파일을 업로드해야 합니다. 파일 관리를 선택한 다음 업로드합니다.

    업로드 아이콘의 선택을 보여 주는 Cloud Shell 브라우저 창의 스크린샷.

    컴퓨터에서 Room.json 파일로 이동하고 "열기"를 선택합니다. 그런 다음 Floor.json대해 이 단계를 반복합니다.

  2. 다음으로, 다음 예제와 같이 az dt model create 명령을 사용하여 업데이트된 Room 모델을 Azure Digital Twins 인스턴스에 업로드합니다. 두 번째 명령은 다른 모델인 Floor를 업로드합니다. 이 모델은 다음 섹션에서도 다른 유형의 트윈을 만드는 데 사용합니다. 인스턴스의 호스트 이름에 대한 자리 표시자와 각 모델 파일 경로에 대한 자리 표시자가 있습니다. 성능이 약간 저하되더라도 인스턴스의 친숙한 이름을 사용할 수도 있습니다. Cloud Shell을 사용하는 경우 Room.jsonFloor.json 주 스토리지 디렉터리에 있으므로 경로가 필요한 다음 명령에서 직접 파일 이름을 사용할 수 있습니다.

    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>
    

    각 명령의 출력은 성공적으로 업로드된 모델에 대한 정보를 표시합니다.

    모델 만들기 명령에 대한 옵션을 사용하여 디렉터리 내의 --from-directory 모든 모델을 동시에 업로드할 수도 있습니다. 자세한 내용은 az dt model create에 대한 선택적 매개 변수를 참조하세요.

  3. 다음 예제와 같이 az dt model list 명령을 사용하여 모델이 생성되었는지 확인합니다. 이렇게 하면 전체 정보를 사용하여 Azure Digital Twins 인스턴스에 업로드된 모든 모델 목록이 인쇄됩니다. 인스턴스의 호스트 이름에 대한 하나의 자리 표시자가 있습니다(성능이 약간 저하된 인스턴스의 식별 이름을 사용할 수도 있음).

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

    결과에서 편집된 Room 모델을 찾아보세요.

    업데이트된 Room 모델을 포함하는 모델 목록 명령의 결과를 보여 주는 Cloud Shell의 스크린샷

오류

CLI는 서비스의 오류도 처리합니다.

명령을 다시 실행 az dt model create 하여 업로드한 동일한 모델 중 하나를 두 번째로 다시 로드합니다.

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

모델을 덮어쓸 수 없으므로 동일한 모델에서 이 명령을 실행하면 오류 코드 ModelIdAlreadyExists가 반환됩니다.

디지털 트윈 만들기

이제 일부 모델이 Azure Digital Twins 인스턴스에 업로드되었으므로 모델 정의에 따라 디지털 트윈 을 만들 수 있습니다. 디지털 트윈은 농장의 센서, 건물의 방 또는 자동차의 조명과 같은 비즈니스 환경 내의 엔터티를 나타냅니다.

디지털 트윈을 만들려면 az dt twin create 명령을 사용합니다. 트윈이 기반으로 하는 모델을 참조해야 하며, 필요에 따라 모델의 속성에 대한 초기 값을 정의할 수 있습니다. 이 단계에서는 관계 정보를 전달할 필요가 없습니다.

  1. CLI에서 이 코드를 실행하여 이전에 업데이트한 Room 모델 및 또 다른 모델인 Floor를 기반으로 하여 여러 개의 트윈을 만듭니다. Room에는 세 가지 속성이 있으므로 이러한 속성에 대한 초기 값을 인수에 제공할 수 있습니다. (속성 값 초기화는 일반적으로 선택 사항이지만 이 자습서에는 필요합니다.) 인스턴스의 호스트 이름에 대한 하나의 자리 표시자가 있습니다(성능이 약간 저하된 인스턴스의 식별 이름을 사용할 수도 있음).

    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
    

    참고

    Bash 환경에서 Cloud Shell 이외의 다른 항목을 사용하는 경우 올바르게 구문 분석되도록 인라인 JSON의 특정 문자를 이스케이프해야 할 수 있습니다.

    자세한 내용은 다른 셸에서 특수 문자 사용을 참조하세요.

    각 명령의 출력은 성공적으로 생성된 트윈에 대한 정보를 보여 줍니다(함께 초기화된 룸 트윈의 속성 포함).

  2. 다음 예제와 같이 az dt twin query 명령을 사용하여 트윈이 만들어졌는지 확인할 수 있습니다. 표시된 쿼리는 Azure Digital Twins 인스턴스에서 모든 디지털 트윈을 찾습니다. 인스턴스의 호스트 이름에 대한 하나의 자리 표시자가 있습니다(성능이 약간 저하된 인스턴스의 식별 이름을 사용할 수도 있음).

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

    결과에서 room0, room1, floor0 및 floor1 트윈을 찾습니다. 이 쿼리 결과의 일부를 발췌한 내용은 다음과 같습니다.

    room0 및 room1을 포함하여 트윈 쿼리의 부분 결과를 보여 주는 Cloud Shell의 스크린샷

참고

그래프의 데이터를 변경한 후 변경 사항이 쿼리에 반영될 때까지 대기 시간은 최대 10초일 수 있습니다.

DigitalTwins API는 변경 내용을 즉시 반영하므로 즉각적인 응답이 필요한 경우 API 요청(DigitalTwins GetById) 또는 SDK 호출(GetDigitalTwin)을 사용하여 쿼리 대신 트윈 데이터를 가져옵니다.

디지털 트윈 수정

만든 트윈의 속성을 수정할 수도 있습니다.

  1. 다음 az dt twin update 명령을 실행하여 room0의 RoomName을 Room0에서 PresidentialSuite로 변경합니다. 인스턴스의 호스트 이름에 대한 하나의 자리 표시자가 있습니다(성능이 약간 저하된 인스턴스의 식별 이름을 사용할 수도 있음).

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

    참고

    이 자습서에서는 Bash 환경에서 CLI를 사용하는 것이 좋습니다. PowerShell 환경을 사용하는 경우 JSON 값을 올바르게 구문 분석하려면 --json-patch 따옴표 문자를 이스케이프해야 할 수 있습니다.

    이 명령의 출력은 트윈의 현재 정보를 보여주고, 결과에서 RoomName의 새 값을 확인할 수 있습니다.

    PresidentialSuite의 RoomName을 포함하는 업데이트 명령의 결과를 보여 주는 Cloud Shell의 스크린샷

  2. az dt twin show 명령을 실행하여 room0의 정보를 확인하여 업데이트가 성공했는지 확인할 수 있습니다. 인스턴스의 호스트 이름에 대한 하나의 자리 표시자가 있습니다(성능이 약간 저하된 인스턴스의 식별 이름을 사용할 수도 있음).

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

    출력에 업데이트된 이름이 반영되어야 합니다.

관계를 추가하여 그래프 만들기

다음으로 이러한 트윈 간의 관계를 만들어 트윈 그래프에 연결할 수 있습니다. 트윈 그래프는 전체 환경을 나타내는 데 사용됩니다.

트윈 간에 만들 수 있는 관계 유형은 이전에 업로드한 모델 내에서 정의됩니다. Floor에 대한 모델 정의는 바닥이 관계 유형인 contains를 가질 수 있음을 명시합니다. 모델 정의에서 이 관계를 지정하므로 각 Floor 트윈에서 포함된 해당 방으로 contains 유형 관계를 만들 수 있습니다.

관계를 추가하려면 az dt twin relationship create 명령을 사용합니다. 관계가 시작되는 트윈, 관계 유형 및 관계가 연결되는 트윈을 지정합니다. 마지막으로 관계에 고유한 ID를 지정합니다. 관계가 속성으로 정의된 경우 이 명령에서도 관계 속성을 초기화할 수 있습니다.

  1. 다음 코드를 실행하여 이전에 만든 각 Floor 트윈의 contains-형식 관계를 해당 Room 트윈에 추가합니다. 관계 이름은 relationship0과 relationship1입니다. 인스턴스의 호스트 이름에 대한 하나의 자리 표시자가 있습니다(성능이 약간 저하된 인스턴스의 식별 이름을 사용할 수도 있음).

    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
    

    contains Floor 모델의 관계도 두 개의 속성 ownershipUserownershipDepartment으로 정의되었으므로 관계를 만들 때 이러한 속성에 대한 초기 값으로 인수를 제공할 수도 있습니다. 이러한 속성이 초기화된 관계를 만들려면 다음과 같이 --properties 옵션을 위의 명령 중 하나에 추가합니다.

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

    각 명령의 출력은 성공적으로 생성된 관계에 대한 정보를 표시합니다.

  2. Azure Digital Twins 인스턴스의 관계를 인쇄하는 다음 명령 중 하나를 사용하여 관계를 확인할 수 있습니다. 각 명령에는 인스턴스의 호스트 이름을 위한 하나의 자리 표시자가 있습니다. 성능이 약간 저하될 수 있지만, 인스턴스의 별칭을 사용할 수도 있습니다.

    • 각 floor에서 시작되는 모든 관계를 보려면 다음 명령을 실행합니다(한 쪽에서 관계 보기).
      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
      
    • 각 room에 도착하는 모든 관계를 보려면 다음 명령을 실행합니다("다른" 쪽에서 관계 보기).
      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
      
    • 이러한 관계를 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
      

이 자습서에서 설정한 트윈 및 관계는 다음과 같은 개념 그래프를 형성합니다.

개념 그래프를 보여 주는 다이어그램입니다. floor0은 relationship0과 room0을 통해 연결되고 floor1은 relationship1과 room1을 통해 연결됩니다.

트윈 그래프를 쿼리하여 환경 질문에 대답

Azure Digital Twins의 주요 기능은 트윈 그래프를 쉽고 효율적으로 쿼리 하여 환경에 대한 질문에 답변하는 기능입니다. Azure CLI에서 쿼리는 az dt 쌍 쿼리 명령을 사용하여 수행됩니다.

참고

그래프의 데이터를 변경한 후 변경 사항이 쿼리에 반영될 때까지 대기 시간은 최대 10초일 수 있습니다.

DigitalTwins API는 변경 내용을 즉시 반영하므로 즉각적인 응답이 필요한 경우 API 요청(DigitalTwins GetById) 또는 SDK 호출(GetDigitalTwin)을 사용하여 쿼리 대신 트윈 데이터를 가져옵니다.

CLI에서 다음 쿼리를 실행하여 샘플 환경에 대한 몇 가지 질문에 답변합니다. 각 명령에는 인스턴스의 호스트 이름을 위한 하나의 자리 표시자가 있습니다. 성능이 약간 저하될 수 있지만, 인스턴스의 별칭을 사용할 수도 있습니다.

  1. Azure Digital Twins에 표시되는 내 환경의 모든 엔터티는 무엇인가요? (모두 쿼리)

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

    이 쿼리를 통해 환경을 한눈에 파악하고 모든 것이 Azure Digital Twins 내에 원하는 대로 표시되는지 확인할 수 있습니다. 이 쿼리의 결과는 세부 정보와 함께 각 디지털 트윈을 포함하는 출력입니다. 발췌문입니다.

    room0 및 room1을 포함하여 트윈 쿼리의 부분 결과를 보여 주는 Cloud Shell의 스크린샷

    이 명령은 인스턴스의 모든 Azure Digital Twins를 찾기 위해 이전에 디지털 트윈 만들기 섹션에서 사용한 것과 동일한 명령임을 인식할 수 있습니다.

  2. 내 환경에서 모든 방은 무엇인가요? (모델로 쿼리)

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

    특정 유형의 트윈으로 쿼리를 제한하여 표시되는 항목에 대한 보다 구체적인 정보를 얻을 수 있습니다. 이 쿼리의 결과는 room0 및 room1을 표시하지만 floor0 또는 floor1을 표시하지 않습니다(방이 아니라 층이므로).

    room0 및 room1만 포함하는 모델 쿼리 결과를 보여 주는 Cloud Shell의 스크린샷

  3. 0층에 있는 모든 방은 무엇인가요? (관계로 쿼리)

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

    그래프의 관계를 기반으로 쿼리하여 트윈 연결 방식에 대한 정보를 얻거나 쿼리를 특정 영역으로 제한할 수 있습니다. 또한 이 쿼리는 메타데이터 필드를 $dtId사용하여 트윈의 ID(예: 이전 쿼리의 floor0)를 쿼리하는 것을 보여 줍니다. room0만 floor0에 있으므로 이 쿼리에 대한 결과에서 유일한 room입니다.

    room0을 포함하는 관계 쿼리 결과를 보여 주는 Cloud Shell의 스크린샷

    참고

    Cloud Shell을 사용하여 $로 시작하는 이와 같은 메타데이터 필드가 포함된 쿼리를 실행하는 경우 백슬래시로 $를 이스케이프하여 이것이 변수가 아니며 쿼리 텍스트에서 리터럴로 사용되어야 함을 Cloud Shell에 알리도록 해야 합니다. 이스케이프된 메타데이터 필드는 이전 스크린샷에 반영됩니다.

  4. 내 환경에서 온도가 75를 초과하는 모든 트윈은 무엇인가요? (속성으로 쿼리)

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

    속성을 기반으로 그래프를 쿼리하여 환경에서 주의가 필요한 이상값을 찾는 등 다양한 종류의 질문에 답할 수 있습니다. 다른 비교 연산자(<,>, =또는 !=)도 지원됩니다. room1이 온도가 80도이기 때문에 다음 결과에 표시됩니다.

    room1만 포함하는 속성 쿼리 결과를 보여 주는 Cloud Shell의 스크린샷

  5. 온도가 75도가 넘는 0층의 모든 방들은 무엇인가요? (복합 쿼리)

    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"
    

    AND, OR, NOT과 같은 조합 연산자를 사용하여 SQL에서와 같이 이전 쿼리를 결합할 수도 있습니다. 이 쿼리는 AND를 사용하여 트윈 온도에 대한 이전 쿼리를 더 구체화합니다. 이제 결과에는 floor0에서 온도가 75도가 넘는 room만 포함됩니다(이 경우에는 없음). 결과 집합이 비어 있습니다.

    항목을 포함하지 않는 복합 쿼리의 결과를 보여 주는 Cloud Shell의 스크린샷

리소스 정리

이 자습서를 완료한 후 다음에 수행하려는 작업에 따라 제거할 리소스를 선택할 수 있습니다.

  • 다음 자습서로 계속 진행하려는 경우 여기서 설정한 리소스를 유지하고 중간에 아무것도 지우지 않고 Azure Digital Twines 인스턴스를 다시 사용할 수 있습니다.
  • 이 문서에서 Azure Digital Twins 인스턴스를 계속 사용하지만 모든 모델, 트윈 및 관계를 지우려면 다음 az dt job deletion CLI 명령을 실행합니다.

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

    이러한 요소 중 일부만 삭제하려는 경우, az dt twin relationship delete, az dt twin delete, az dt model delete 명령을 사용하여 제거하고자 하는 요소만 선택적으로 삭제할 수 있습니다.

  • 이 자습서에서 만든 리소스가 필요하지 않은 경우 az group delete CLI 명령을 사용하여 이 문서에서 Azure Digital Twins 인스턴스 및 기타 모든 리소스를 삭제할 수 있습니다. 이는 리소스 그룹의 모든 Azure 리소스와 리소스 그룹 자체를 삭제합니다.

    중요

    리소스 그룹을 삭제하면 다시 되돌릴 수 없습니다. 리소스 그룹 및 그 안에 포함된 모든 리소스가 영구적으로 삭제됩니다. 잘못된 리소스 그룹 또는 리소스를 자동으로 삭제하지 않도록 해야 합니다.

    Azure Cloud Shell 또는 로컬 CLI 창을 열고 다음 명령을 실행하여 리소스 그룹 및 포함된 모든 항목을 삭제합니다.

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

로컬 컴퓨터에서 만든 모델 파일을 삭제할 수도 있습니다.

다음 단계

이 자습서에서는 Azure CLI를 사용하여 인스턴스에서 그래프를 빌드함으로써 Azure Digital Twins를 시작했습니다. 모델, 디지털 트윈 및 관계를 만들어 그래프를 구성했습니다. 또한 그래프에서 몇 가지 쿼리를 실행하여 Azure Digital Twins가 환경에 대해 어떤 종류의 질문에 답할 수 있는지 알아보았습니다.

다음 자습서에서 Azure Digital Twins와 다른 Azure 서비스를 결합하여 데이터 기반의 엔드투엔드 시나리오를 완성하세요.