다음을 통해 공유


Azure Digital Twins에 대한 데이터 기록 연결 만들기

데이터 기록은 Azure Data Explorer에 대한 그래프 업데이트를 자동으로 히스토링하기 위한 Azure Digital Twins 기능입니다. Azure Data Explorer용 Azure Digital Twins 쿼리 플러그 인 을 사용하여 이 데이터를 쿼리하여 시간에 따른 환경에 대한 인사이트를 얻을 수 있습니다.

이 문서에서는 Azure Digital Twins와 Azure Data Explorer 간에 작업 데이터 기록 연결을 설정하는 방법을 보여 줍니다. Azure CLIAzure Portal을 사용하여 다음을 비롯한 필요한 데이터 기록 리소스를 설정하고 연결합니다.

Azure Data Explorer에서 히스토화된 그래프 업데이트를 확인하는 데 사용할 수 있는 샘플 트윈 그래프도 포함되어 있습니다.

팁 (조언)

이 문서에서는 Azure Portal을 사용하지만 나머지 API의 2022-05-31 버전을 사용하여 데이터 기록을 사용할 수도 있습니다.

필수 조건

Azure CLI에 대한 환경 준비

비고

원하는 경우 Bash 환경 대신 PowerShell 환경에서 Azure Cloud Shell을 사용할 수도 있습니다. 이 페이지의 명령은 Bash 환경에 대해 작성되므로 PowerShell에서 약간의 조정이 필요할 수 있습니다.

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 명령 목록을 볼 수 있습니다.

CLI 세션에 대한 지역 변수 설정

이 문서에서는 데이터 기록 리소스를 만드는 데 사용할 수 있는 CLI 명령을 제공합니다. 나중에 이러한 명령을 쉽게 복사하고 실행할 수 있도록 CLI 세션에서 로컬 변수를 설정한 다음 리소스를 만들 때 CLI 명령의 뒷부분에서 해당 변수를 참조할 수 있습니다. 변수를 만들려면 다음 명령에서 자리 표시자(대괄호로 <...> 식별됨)를 업데이트한 다음 명령을 실행합니다. 주석에 설명된 명명 규칙을 따라야 합니다. 이러한 값은 나중에 새 리소스를 만들 때 사용됩니다.

비고

이러한 명령은 Bash 환경에 대해 작성됩니다. PowerShell CLI 환경을 사용하려는 경우 PowerShell에 맞게 조정할 수 있습니다.

## General Setup
location="<your-resource-region>"
resourcegroup="<your-resource-group-name>"

## Azure Digital Twins Setup
# Instance name can contain letters, numbers, and hyphens. It must start and end with a letter or number, and be between 4 and 62 characters long.
dtname="<name-for-your-digital-twins-instance>"
# Connection name can contain letters, numbers, and hyphens. It must contain at least one letter, and be between 3 and 50 characters long.
connectionname="<name-for-your-data-history-connection>"

## Event Hub Setup
# Namespace can contain letters, numbers, and hyphens. It must start with a letter, end with a letter or number, and be between 6 and 50 characters long.
eventhubnamespace="<name-for-your-event-hub-namespace>"
# Event hub name can contain only letters, numbers, periods, hyphens and underscores. It must start and end with a letter or number.
eventhub="<name-for-your-event-hub>"

## Azure Data Explorer Setup
# Cluster name can contain only lowercase alphanumeric characters. It must start with a letter, and be between 4 and 22 characters long.
clustername="<name-for-your-cluster>"  
# Database name can contain only alphanumeric, spaces, dash and dot characters, and be up to 260 characters in length.
databasename="<name-for-your-database>"

# Enter a name for the table where relationship create and delete events are stored.
relationshiplifecycletablename="<name-for-your-relationship-lifecycle-events-table>"
# Enter a name for the table where twin create and delete events are stored.
twinlifecycletablename="<name-for-your-twin-lifecycle-events-table>"
# Optionally, enter a custom name for the table where twin property updates are stored. If not provided, the table is named AdtPropertyEvents.
twinpropertytablename="<name-for-your-twin-property-events-table>"

관리 ID를 사용하여 Azure Digital Twins 인스턴스 만들기

Azure Digital Twins 인스턴스가 이미 있는 경우 시스템 할당 관리 ID 를 사용하도록 설정해야 합니다.

Azure Digital Twins 인스턴스가 없는 경우 관리 ID를 사용하여 인스턴스 만들기 의 지침에 따라 처음으로 시스템 할당 관리 ID를 사용하여 Azure Digital Twins 인스턴스를 만듭니다.

그런 다음, 인스턴스에서 Azure Digital Twins 데이터 소유자 역할이 있는지 확인합니다. 사용자 액세스 권한 설정에서 지침을 찾을 수 있습니다.

인스턴스 이름을 로컬 CLI 변수에 추가하려는 경우 이 문서에서 복사한 이후 명령에 자동으로 연결할 수 있도록 다음과 같이 변수 dtname 에 저장합니다.

dtname="<name-of-your-instance>"

Event Hubs 네임스페이스 및 이벤트 허브 만들기

다음 단계는 Event Hubs 네임스페이스 및 이벤트 허브를 만드는 것입니다. 이 허브는 Azure Digital Twins 인스턴스에서 그래프 수명 주기 및 속성 업데이트 알림을 받은 다음 대상 Azure Data Explorer 클러스터로 메시지를 전달합니다.

나중에 데이터 기록 연결 설정 의 일부로 Azure Digital Twins 인스턴스에 이벤트 허브 리소스에 대한 Azure Event Hubs 데이터 소유자 역할을 부여합니다.

Event Hubs 및 해당 기능에 대한 자세한 내용은 Event Hubs 설명서를 참조하세요.

비고

데이터 기록을 설정하는 동안 이벤트 허브에서 로컬 권한 부여를 사용하도록 설정 해야 합니다. 궁극적으로 이벤트 허브에서 로컬 권한 부여를 사용하지 않도록 설정하려면 연결을 설정한 후 권한 부여를 사용하지 않도록 설정합니다. 또한 이 문서의 뒷부분에 있는 데이터 기록 리소스에 대한 네트워크 액세스 제한 에 설명된 일부 사용 권한도 조정해야 합니다.

다음 CLI 명령을 사용하여 필요한 리소스를 만듭니다. 이 명령은 $location 지역 변수 설정의 앞부분에서 만든 여러 지역 변수($resourcegroup, $eventhubnamespace$eventhub)를 사용합니다.

Event Hubs 네임스페이스를 만듭니다.

az eventhubs namespace create --name $eventhubnamespace --resource-group $resourcegroup --location $location

네임스페이스에 이벤트 허브를 만듭니다.

az eventhubs eventhub create --name $eventhub --resource-group $resourcegroup --namespace-name $eventhubnamespace

Kusto(Azure Data Explorer) 클러스터 및 데이터베이스 만들기

다음으로, Kusto(Azure Data Explorer) 클러스터 및 데이터베이스를 만들어 Azure Digital Twins에서 데이터를 수신합니다.

나중에 데이터 기록 연결 설정 의 일부로 Azure Digital Twins 인스턴스에 적어도 데이터베이스에 대한 기여자 역할(클러스터로 범위 지정할 수도 있음) 및 데이터베이스의 관리자 역할을 부여합니다.

중요합니다

클러스터에 공용 네트워크 액세스가 사용하도록 설정되어 있는지 확인합니다. Azure Data Explorer 클러스터에 공용 네트워크 액세스가 사용하지 않도록 설정된 경우 Azure Digital Twins는 테이블 및 기타 필수 아티팩트 구성을 수행할 수 없으며 데이터 기록 설정이 실패합니다.

다음 CLI 명령을 사용하여 필요한 리소스를 만듭니다. 이 명령은 $location 지역 변수 설정의 앞부분에서 만든 여러 지역 변수($resourcegroup, $clustername$databasename)를 사용합니다.

아직 없는 경우 CLI 세션에 Kusto 확장을 추가하여 시작합니다.

az extension add --name kusto

다음으로 Kusto 클러스터를 만듭니다. 다음 명령을 실행하려면 5-10분이 필요하며 개발자 계층에 E2a v4 클러스터를 만듭니다. 이 유형의 클러스터에는 엔진 및 데이터 관리 클러스터에 대한 단일 노드가 있으며 개발 및 테스트 시나리오에 적용됩니다. Azure Data Explorer의 계층 및 프로덕션 워크로드에 적합한 옵션을 선택하는 방법에 대한 자세한 내용은 Azure Data Explorer 클러스터 및 Azure Data Explorer 가격 책정에 대한 올바른 컴퓨팅 SKU 선택을 참조하세요.

az kusto cluster create --cluster-name $clustername --sku name="Dev(No SLA)_Standard_E2a_v4" tier="Basic" --resource-group $resourcegroup --location $location --type SystemAssigned

새 Kusto 클러스터에 데이터베이스를 만듭니다(이전에 지정한 클러스터 이름 및 동일한 위치 사용). 이 데이터베이스는 상황에 맞는 Azure Digital Twins 데이터를 저장하는 데 사용됩니다. 다음 명령은 일시 삭제 기간이 365일이고 핫 캐시 기간이 31일인 데이터베이스를 만듭니다. 이 명령에 사용할 수 있는 옵션에 대한 자세한 내용은 az kusto database create를 참조하세요.

az kusto database create --cluster-name $clustername --database-name $databasename --resource-group $resourcegroup --read-write-database soft-delete-period=P365D hot-cache-period=P31D location=$location

데이터 기록 연결 설정

이제 필요한 리소스를 만들었으므로 이 섹션의 명령을 사용하여 Azure Digital Twins 인스턴스, 이벤트 허브 및 Azure Data Explorer 클러스터 간에 데이터 기록 연결을 만듭니다.

또한 이 명령은 각각 쌍 속성 업데이트, 관계 수명 주기 이벤트 및 쌍 수명 주기 이벤트를 저장하는 세 개의 테이블을 Azure Data Explorer 데이터베이스에 만듭니다. 이러한 유형의 히스토화된 데이터 및 해당 Azure Data Explorer 테이블에 대한 자세한 내용은 데이터 형식 및 스키마를 참조하세요.

이 섹션의 명령을 사용하여 Azure Data Explorer에서 데이터 기록 연결 및 테이블을 만듭니다. 이 명령은 항상 히스토리화된 트윈 속성 업데이트에 대한 테이블을 만들고 관계 수명 주기 및 트윈 수명 주기 이벤트에 대한 테이블을 만드는 매개 변수를 포함합니다.

비고

기본적으로 이 명령은 모든 리소스가 Azure Digital Twins 인스턴스와 동일한 리소스 그룹에 있다고 가정합니다. 이 명령에 대한 매개 변수 옵션을 사용하여 다른 리소스 그룹에 있는 리소스를 지정할 수 있습니다.

다음 명령은 CLI 세션에 대한 지역 변수 설정 의 앞부분에서 만든 지역 변수를 사용하며 다음을 비롯한 여러 매개 변수가 있습니다.

  • Azure Data Explorer의 관계 수명 주기 및 쌍 수명 주기 테이블의 이름입니다(이러한 이벤트 형식을 히스토리화하지 않으려면 이러한 매개 변수는 선택 사항이지만 이러한 이벤트 유형을 히스토리화하려는 경우 필요).
  • 트윈 속성 이벤트 테이블의 이름을 지정하는 선택적 매개 변수입니다(이 값이 제공되지 않으면 이 테이블의 이름은 기본적으로 AdtPropertyEvents 임). 다른 이름을 지정하지 않으려면 실행하기 전에 명령에서 매개 변수를 제거 --adx-property-events-table 합니다.
  • 쌍 속성 삭제(속성을 완전히 제거하는 이벤트)에 대한 히스토화를 설정하는 선택적 매개 변수 --adx-record-removals 입니다.
az dt data-history connection create adx --dt-name $dtname --cn $connectionname --adx-cluster-name $clustername --adx-database-name $databasename --eventhub $eventhub --eventhub-namespace $eventhubnamespace --adx-property-events-table $twinpropertytablename --adx-twin-events-table $twinlifecycletablename --adx-relationship-events-table $relationshiplifecycletablename --adx-record-removals true

이전 명령을 실행할 때 사용자 대신 데이터 기록 연결을 설정하는 데 필요한 권한을 할당하는 옵션이 제공됩니다(필요한 권한을 이미 할당한 경우 이러한 프롬프트를 건너뛸 수 있음). 이러한 권한은 Azure Digital Twins 인스턴스의 관리 ID에 부여됩니다. 필요한 최소 역할은 다음과 같습니다.

  • Event Hubs의 Azure Event Hubs 데이터 소유자
  • 적어도 지정된 데이터베이스로 범위가 지정된 기여자(클러스터로 범위가 지정될 수도 있습니다).
  • 할당된 데이터베이스로 범위가 할당된 역할 관리자(테이블 만들기/관리용)가 있는 데이터베이스 보안 주체 할당

정기적인 데이터 평면 작업의 경우 원하는 경우 이러한 역할을 단일 Azure Event Hubs 데이터 발신자 역할로 줄일 수 있습니다.

데이터 기록 연결을 설정한 후 필요에 따라 Event Hubs 및 Azure Data Explorer 리소스에 액세스하기 위해 Azure Digital Twins 인스턴스에 부여된 역할을 제거할 수 있습니다. 데이터 기록을 사용하기 위해 인스턴스에 필요한 유일한 역할은 Event Hubs 리소스에 대한 Azure Event Hubs 데이터 발신자 (또는 이러한 권한을 포함하는 더 높은 역할(예: Azure Event Hubs 데이터 소유자)입니다.

비고

연결이 설정되면 Azure Data Explorer 클러스터의 기본 설정으로 인해 약 10분 이하의 수집 대기 시간이 발생합니다. 스트리밍 수집(대기 시간 10초 미만) 또는 수집 일괄 처리 정책을 사용하도록 설정하여 이 대기 시간을 줄일 수 있습니다. Azure Data Explorer 수집 대기 시간에 대한 자세한 내용은 엔드 투 엔드 수집 대기 시간을 참조하세요.

데이터 기록 리소스에 대한 네트워크 액세스 제한

데이터 기록(Azure Digital Twins 인스턴스, 이벤트 허브 또는 Azure Data Explorer 클러스터)에 관련된 리소스에 대한 네트워크 액세스를 제한하려면 데이터 기록 연결을 설정한 이러한 제한을 설정해야 합니다. 이러한 제한 사항에는 네트워크 액세스를 줄이기 위한 다른 조치 중에서 리소스에 대한 로컬 액세스를 사용하지 않도록 설정하는 것이 포함됩니다.

데이터 기록 리소스가 서로 통신할 수 있도록 하려면 시스템 할당 관리 ID를 사용하도록 Azure Data Explorer 데이터베이스에 대한 데이터 연결을 수정해야 합니다.

리소스에 네트워크 액세스 감소가 필요할 때 데이터 기록 연결이 제대로 설정되었는지 확인하려면 다음 단계를 순서대로 수행합니다.

  1. 데이터 기록 리소스(Azure Digital Twins 인스턴스, 이벤트 허브 및 Azure Data Explorer 클러스터)에서 로컬 권한 부여가 사용하도록 설정되어 있는지 확인합니다.
  2. 데이터 기록 연결 만들기
  3. 시스템 할당 관리 ID를 사용하도록 Azure Data Explorer 데이터베이스에 대한 데이터 연결을 업데이트합니다. Azure Portal에서 Azure Data Explorer 클러스터로 이동하고 메뉴의 데이터베이스 를 사용하여 데이터 기록 데이터베이스로 이동하여 데이터 연결을 업데이트할 수 있습니다. 데이터베이스 메뉴에서 데이터 연결을 선택합니다. 데이터 기록 연결에 대한 테이블 항목에 관리 ID 할당 옵션이 표시됩니다. 여기서 시스템 할당을 선택할 수 있습니다. Azure Portal에서 데이터 연결에 관리 ID를 할당하는 옵션의 스크린샷
  4. 이제 Azure Digital Twins 인스턴스, 이벤트 허브 또는 Azure Data Explorer 클러스터에서 액세스 설정을 변경하여 로컬 권한 부여를 사용하지 않도록 설정하거나 원하는 리소스에 대한 다른 네트워크 제한을 설정할 수 있습니다.

연결 설정 문제 해결

다음은 데이터 기록 연결을 설정할 때 발생할 수 있는 몇 가지 일반적인 오류와 이를 해결하는 방법입니다.

  • Azure Data Explorer 클러스터에 대해 공용 네트워크 액세스를 사용하지 않도록 설정한 경우 서비스에서 "리소스가 내부 서버 오류로 인해 ACT를 수행할 수 없습니다."라는 메시지와 함께 데이터 기록 연결을 만들지 못했다는 오류가 발생합니다. Azure Digital Twins에서 테이블 및 기타 필수 아티팩트 구성을 구성할 수 없으므로 Azure Data Explorer 클러스터에 공용 네트워크 액세스가 비활성화된 경우 데이터 기록 설정이 실패합니다.
  • (CLI 사용자) "Azure Digital Twins 인스턴스 연결을 만들 수 없습니다."라는 오류가 발생할 경우, 데이터베이스에서 테이블 및 매핑 규칙을 만들 수 없습니다. Azure Database Explorer에 대한 사용 권한을 확인하고 실행 az login 하여 자격 증명을 새로 고칩니다." 자신을 Azure Data Explorer 클러스터의 사용 권한 아래에 AllDatabasesAdmin 으로 추가하여 오류를 해결합니다.
  • (Cloud Shell 사용자) Cloud Shell을 사용하는 경우 "MSI에 연결하지 못했습니다."라는 오류가 발생하면. MSI가 올바르게 구성되었는지 확인하세요." 대신 로컬 Azure CLI 설치를 사용하여 명령을 실행해 보세요.

샘플 쌍 그래프를 사용하여 확인

이제 데이터 기록 연결이 설정되었으므로 디지털 트윈의 데이터로 테스트할 수 있습니다.

Azure Digital Twins 인스턴스에 그래프 업데이트를 적극적으로 수신하는 트윈이 이미 있는 경우(요소를 만들거나 삭제하여 그래프 구조를 변경하는 트윈 속성 업데이트 또는 업데이트 포함) 이 섹션을 건너뛰고 고유한 리소스를 사용하여 결과를 시각화할 수 있습니다.

그렇지 않으면 이 섹션을 계속 진행하여 트윈 및 관계 수명 주기 이벤트를 거치는 샘플 그래프를 설정하고 트윈 속성 업데이트를 생성합니다.

Azure Digital Twins 데이터 시뮬레이터를 사용하여 이 시나리오에 대한 샘플 그래프를 설정할 수 있습니다. Azure Digital Twins 데이터 시뮬레이터는 Azure Digital Twins 인스턴스에서 트윈과 관계를 만들고, 지속적으로 속성 업데이트를 트윈에 푸시합니다.

샘플 그래프 만들기

Azure Digital Twins 데이터 시뮬레이터를 사용하여 샘플 트윈 그래프를 프로비전하고 속성 업데이트를 푸시할 수 있습니다. 여기서 만든 트윈 그래프는 유제품 회사의 저온 살균 프로세스를 모델로 합니다.

먼저 브라우저에서 Azure Digital Twins 데이터 시뮬레이터 를 엽니다. 다음 필드를 설정합니다.

  • 인스턴스 URL: Azure Digital Twins 인스턴스의 호스트 이름을 입력합니다. 호스트 이름은 인스턴스의 포털 페이지에서 찾을 수 있으며 형식은 다음과 같습니다 <Azure-Digital-Twins-instance-name>.api.<region-code>.digitaltwins.azure.net.
  • 시뮬레이션 유형: 드롭다운 메뉴에서 유제품 시설을 선택합니다.

환경 생성을 선택합니다.

Azure Digital Twins 데이터 시뮬레이터의 스크린샷.

사용자 환경에서 모델, 트윈 및 관계가 만들어짐에 따라 화면에 확인 메시지가 표시됩니다. 이 프로세스는 트윈 및 관계 생성 이벤트를 생성하며, 각각 쌍 및 관계 수명 주기 이벤트로 Azure Data Explorer에 기록됩니다.

시뮬레이션이 준비되면 시뮬레이션 시작 단추가 활성화됩니다. 아래로 스크롤하고 시뮬레이션 시작을 선택하여 시뮬레이션된 데이터를 Azure Digital Twins 인스턴스에 푸시합니다. Azure Digital Twins 인스턴스에서 트윈을 지속적으로 업데이트하려면 이 브라우저 창을 바탕 화면의 포그라운드에 유지하고 별도의 창에서 다른 브라우저 작업을 완료합니다. 이 창은 Azure Data Explorer로 히스토리화된 쌍 속성 업데이트 이벤트를 지속적으로 생성합니다.

Azure Data Explorer에서 히스토화된 업데이트 보기

이 섹션에서는 시뮬레이터에서 생성하고 Azure Data Explorer 테이블에 저장된 세 가지 유형의 히스토레이드 업데이트를 모두 보는 방법을 보여 줍니다.

Azure Portal에서 시작하여 이전에 만든 Azure Data Explorer 클러스터로 이동합니다. 왼쪽 메뉴에서 [데이터] 아래의 [쿼리] 창을 선택하여 쿼리 보기를 엽니다.

Azure Data Explorer 클러스터에 대한 쿼리 창을 보여 주는 Azure Portal의 스크린샷

다음으로 왼쪽 창에서 클러스터 및 데이터베이스를 확장하여 데이터 기록 테이블의 이름을 확인합니다. 세 가지가 있어야 합니다. 하나는 트윈 속성 업데이트 이벤트, 하나는 관계 수명 주기 이벤트, 하나는 트윈 수명 주기 이벤트입니다. 이러한 테이블 이름을 사용하여 테이블에서 쿼리를 실행하여 히스토화된 데이터를 확인하고 볼 수 있습니다.

데이터베이스에 대한 쿼리 뷰를 보여 주는 Azure Portal의 스크린샷 데이터 기록 테이블의 이름이 강조 표시됩니다.

테이블 항목 확인

이벤트가 데이터베이스로 히스토링되는지 확인하려면 먼저 다음 명령을 복사합니다. 관계 수명 주기 이벤트 테이블의 이름에 대한 자리 표시자가 있으며, 10초마다 라이브 시뮬레이션에서 데이터를 수집하도록 테이블에 대한 수집을 일괄 처리 모드로 변경합니다.

.alter table <relationship-lifecycle-events-table-name> policy ingestionbatching @'{"MaximumBatchingTimeSpan":"00:00:10", "MaximumNumberOfItems": 500, "MaximumRawDataSizeMB": 1024}'

쿼리 창에 명령을 붙여넣고 자리 표시자를 관계 이벤트 테이블의 이름으로 바꿉 있습니다. 실행 단추를 선택하여 명령을 실행합니다.

데이터베이스에 대한 쿼리 뷰를 보여 주는 Azure Portal의 스크린샷 실행 단추가 강조 표시됩니다.

쌍 수명 주기 이벤트 테이블의 이름을 사용하여 명령을 두 번 더 반복한 다음 속성 업데이트 테이블을 사용하여 다른 테이블의 수집 모드도 업데이트합니다.

다음으로, 쿼리 창에 다음 명령을 추가하고 실행합니다. 각 명령에는 테이블 중 하나의 이름에 대한 자리 표시자가 포함되며 명령은 테이블의 항목 수를 출력합니다.

비고

수집된 데이터의 첫 번째 일괄 처리가 나타나려면 최대 5분이 걸릴 수 있습니다.

<twin-property-updates-table-name>
| count

<relationship-lifecycle-events-table-name>
| count

<twin-lifecycle-events-table-name>
| count

결과에서 각 테이블의 항목 수가 0보다 큰 것을 볼 수 있습니다. 이는 속성 업데이트, 관계 수명 주기 및 쌍 수명 주기 이벤트가 해당 테이블로 히스토링되고 있음을 나타냅니다.

쌍둥이 속성 업데이트 테이블 탐색하기

이 섹션에서는 테이블에 있는 트윈 속성 업데이트 데이터를 사용하여 좀 더 자세히 탐색합니다.

먼저 다음 명령을 실행하여 테이블에서 100개의 레코드를 봅니다.

<twin-property-updates-table-name>
| limit 100

다음으로, 트윈의 데이터를 기반으로 쿼리를 실행하여 상황별 시계열 데이터를 확인합니다.

다음 쿼리를 사용하여 샘플 오슬로 유제품 공장에서 모든 소금 기계 트윈의 유출을 차트로 표시합니다. 이 Kusto 쿼리는 Azure Digital Twins 플러그 인을 사용하여 관심 있는 트윈을 선택하고, 해당 트윈을 Azure Data Explorer의 데이터 기록 시계열에 조인한 다음, 결과를 차트로 표시합니다. 인스턴스의 호스트 이름으로 `<ADT-instance-host-name>` 자리 표시자를 바꾸고, 트윈 속성 업데이트 테이블의 이름으로 `<table-name>` 자리 표시자를 바꾸십시오.

let ADTendpoint = "https://<ADT-instance-host-name>";
let ADTquery = ```SELECT SALT_MACHINE.$dtId as tid
FROM DIGITALTWINS FACTORY 
JOIN SALT_MACHINE RELATED FACTORY.contains 
WHERE FACTORY.$dtId = 'OsloFactory'
AND IS_OF_MODEL(SALT_MACHINE , 'dtmi:assetGen:SaltMachine;1')```;
evaluate azure_digital_twins_query_request(ADTendpoint, ADTquery)
| extend Id = tostring(tid)
| join kind=inner (<table-name>) on Id
| extend val_double = todouble(Value)
| where Key == "OutFlow"
| render timechart with (ycolumns = val_double)

결과에는 시간이 지남에 따라 변경되는 유출량이 표시됩니다.

데이터베이스에 대한 쿼리 뷰를 보여 주는 Azure Portal의 스크린샷

연결 문제 해결

Azure Data Explorer에 데이터가 표시되지 않으면 히스토화 데이터 흐름이 제대로 작동하지 않습니다. Azure Portal에서 Event Hubs 네임스페이스를 확인하여 문제를 조사할 수 있습니다. 이 네임스페이스는 네임스페이스로 들어오고 나가는 메시지의 흐름을 보여 주는 차트를 표시합니다. 이 표시를 사용하면 Azure Digital Twins에서 들어오는 메시지의 흐름과 Azure Data Explorer로 보내는 메시지를 모두 확인하여 흐름의 어느 부분이 작동하지 않는지 식별할 수 있습니다.

시뮬레이션된 환경에 대한 Event Hubs 네임스페이스를 보여 주는 Azure Portal의 스크린샷.

다음 단계

유제품 시나리오를 계속 살펴보려면 GitHub에서 기계 유형, 공장, 유지 관리 기술자 및 이러한 매개 변수의 다양한 조합을 기반으로 유제품 작업의 성능을 모니터링하는 방법을 보여 주는 더 많은 샘플 쿼리 를 볼 수 있습니다.

유제품 작업의 성능을 시각화하는 Grafana 대시보드를 빌드하려면 Azure Digital Twins, Azure Data Explorer 및 Grafana를 사용하여 대시보드 만들기를 읽어 보세요.

Azure Data Explorer용 Azure Digital Twins 쿼리 플러그 인을 사용하는 방법에 대한 자세한 내용은 Azure Data Explorer 플러그 인이 블로그 게시물을 사용하여 쿼리를 참조하세요. 플러그 인에 대한 더 많은 정보를 보려면 여기에서 읽어보세요: Azure Data Explorer 플러그 인을 사용한 쿼리.