다음을 통해 공유


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

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

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

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

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

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

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>

출력에 다음과 같이 표시됩니다. Screenshot of Cloud Shell browser window showing the output of the az dt show command. The hostName field and subscription ID are highlighted.

DTDL로 물리적 환경 모델링

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

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

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

참고 항목

또한 DTDL은 디지털 트윈에 명령 정의를 허용합니다. 그러나 Azure Digital Twins 서비스에서는 현재 명령이 지원되지 않습니다.

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

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

  2. 속성을 편집합니다. Humidity 속성의 이름을 HumidityLevel로 변경합니다. 원하는 경우 다른 이름을 사용할 수 있습니다. 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의 스토리지에 업로드해야 합니다. 이렇게 하려면 "파일 업로드/다운로드" 아이콘을 선택하고, "업로드"를 선택합니다.

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

    컴퓨터에서 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 옵션을 model create 명령에 사용하여 디렉터리 내의 모든 모델을 동시에 업로드할 수도 있습니다. 자세한 내용은 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 모델을 찾습니다.

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

Errors

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 트윈을 찾습니다. 이 쿼리 결과의 일부를 발췌한 내용은 다음과 같습니다.

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

참고 항목

그래프의 데이터를 변경한 후 변경 사항이 쿼리에 반영될 때까지 대기 시간은 최대 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-patch JSON 값을 올바르게 구문 분석하려면 따옴표 문자를 이스케이프해야 할 수 있습니다.

    이 명령의 출력에는 트윈의 현재 정보가 표시되며, 결과에서 RoomName에 대한 새 값이 표시됩니다.

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

  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를 지정합니다. 모델 정의에서 이 관계를 지정하므로 각 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
    

    Floor 모델contains 관계도 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
      

이 자습서에서 설정한 트윈과 관계는 다음과 같은 개념적 그래프를 만듭니다.

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

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

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

참고 항목

그래프의 데이터를 변경한 후 변경 사항이 쿼리에 반영될 때까지 대기 시간은 최대 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 내에 원하는 대로 표시되는지 확인할 수 있습니다. 이 쿼리의 결과는 세부 정보와 함께 각 디지털 트윈을 포함하는 출력입니다. 발췌한 출력은 다음과 같습니다.

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

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

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

    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을 표시하지 않습니다(방이 아니라 층이므로).

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

  3. floor0의 모든 room은 무엇인가요? (관계로 쿼리)

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

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

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

    참고 항목

    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도이기 때문에 다음 결과에 표시됩니다.

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

  5. 온도가 75도가 넘는 floor0의 모든 room은 무엇인가요? (복합 쿼리)

    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만 포함됩니다(이 경우에는 없음). 결과 집합이 비어 있습니다.

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

리소스 정리

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

  • 다음 자습서로 계속 진행하려는 경우 여기서 설정한 리소스를 유지하고 중간에 아무것도 지우지 않고 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 리소스와 리소스 그룹 자체를 삭제합니다.

    Important

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

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

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

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

다음 단계

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

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