다음을 통해 공유


Azure Digital Twins 데이터 기록(Azure Data Explorer 사용)

데이터 기록은 Azure Digital Twins의 통합 기능입니다. 이를 통해 그래프 업데이트가 Azure Data Explorer 에 자동으로 히스토리화되도록 Azure Digital Twins 인스턴스를 Azure Data Explorer 클러스터에 연결할 수 있습니다. 이러한 기록된 업데이트에는 트윈 속성 업데이트, 트윈 수명 주기 이벤트 및 관계 수명 주기 이벤트가 포함됩니다.

그래프 업데이트가 Azure Data Explorer로 히스토레이트되면 Azure Data Explorer용 Azure Digital Twins 플러그 인 을 사용하여 공동 쿼리를 실행하여 디지털 트윈, 해당 관계 및 시계열 데이터를 추론할 수 있습니다. 그래프의 상태를 되돌아보거나 모델링된 환경의 동작에 대한 인사이트를 얻는 데 사용할 수 있습니다. 또한 이러한 쿼리를 사용하여 운영 대시보드를 구동하고, 2D 및 3D 웹 애플리케이션을 보강하며, 몰입형 증강/혼합 현실 환경을 구동하여 Azure Digital Twins에서 모델링된 자산, 프로세스 및 사람들의 현재 및 기록 상태를 전달할 수 있습니다.

빠른 데모를 포함하여 데이터 기록에 대한 자세한 내용은 다음 IoT 쇼 비디오를 시청하세요.

데이터 기록에서 내보낸 메시지는 메시지 가격 책정 차원에 따라 측정됩니다.

필수 구성 요소: 리소스 및 권한

데이터 기록에는 다음 리소스가 필요합니다.

이러한 리소스는 다음 흐름에 연결됩니다.

이벤트 허브를 통해 Azure Data Explorer로 Azure Digital Twins로 디바이스 원격 분석 데이터의 흐름을 보여 주는 다이어그램.

디지털 트윈 그래프가 업데이트되면 정보는 이벤트 허브를 통해 대상 Azure Data Explorer 클러스터로 전달됩니다. 여기서 Azure Data Explorer는 데이터를 해당 테이블에 타임스탬프 레코드로 저장합니다.

데이터 기록을 사용하는 경우 2023-01-31 버전 이상의 API를 사용하는 것이 좋습니다. 2022-05-31 버전에서는 트윈 속성(트윈 수명 주기 또는 관계 수명 주기 이벤트가 아님)만 히스토링할 수 있습니다. 이전 버전에서는 데이터 기록을 사용할 수 없습니다.

필요한 권한

데이터 기록 연결을 설정하려면 Azure Digital Twins 인스턴스에 Event Hubs 및 Azure Data Explorer 리소스에 액세스할 수 있는 다음 권한이 있어야 합니다. 이러한 역할을 통해 Azure Digital Twins는 사용자 대신 이벤트 허브 및 Azure Data Explorer 데이터베이스를 구성할 수 있습니다(예: 데이터베이스에서 테이블 만들기). 이러한 사용 권한은 데이터 기록이 설정된 후 선택적으로 제거할 수 있습니다.

  • Event Hubs 리소스: Azure Event Hubs 데이터 소유자
  • Azure Data Explorer 클러스터: 기여자 (전체 클러스터 또는 특정 데이터베이스로 범위가 지정됨)
  • Azure Data Explorer 데이터베이스 보안 주체 할당: 관리자 (사용 중인 데이터베이스로 범위 지정)

나중에 데이터 기록이 사용되는 동안 Azure Digital Twins 인스턴스에 Event Hubs 리소스에 대한 다음 권한이 있어야 합니다. Azure Event Hubs 데이터 발신자 (데이터 기록 설정에서 Azure Event Hubs 데이터 소유자 를 유지하도록 대신 선택할 수도 있음).

이러한 권한은 Azure CLI 또는 Azure Portal을 사용하여 할당할 수 있습니다.

데이터 기록(Azure Digital Twins 인스턴스, 이벤트 허브 또는 Azure Data Explorer 클러스터)에 관련된 리소스에 대한 네트워크 액세스를 제한하려면 데이터 기록 연결을 설정한 이러한 제한을 설정해야 합니다. 이 프로세스에 대한 자세한 내용은 데이터 기록 리소스에 대한 네트워크 액세스 제한(Restrict Network Access)을 참조하세요.

데이터 기록 연결 만들기 및 관리

이 섹션에는 데이터 기록 연결을 만들고, 업데이트하고, 삭제하기 위한 정보가 포함되어 있습니다.

데이터 기록 연결 만들기

모든 리소스와사용 권한이 설정되면 Azure CLI, Azure Portal 또는 Azure Digital Twins SDK 를 사용하여 데이터 기록 연결을 만들 수 있습니다. CLI 명령 집합은 az dt data-history입니다.

명령은 항상 기본 이름 또는 사용자가 제공하는 사용자 지정 이름을 사용할 수 있는 히스토리화된 트윈 속성 이벤트에 대한 테이블을 만듭니다. 트윈 속성 삭제는 필요에 따라 이 테이블에 포함될 수 있습니다. 관계 수명 주기 이벤트 및 쌍 수명 주기 이벤트에 대한 테이블 이름을 제공할 수도 있으며, 명령은 이러한 이벤트 유형을 히스토리화하기 위해 해당 이름을 가진 테이블을 만듭니다.

데이터 기록 연결을 설정하는 방법에 대한 단계별 지침은 데이터 기록 연결 만들기를 참조하세요.

여러 Azure Digital Twins 인스턴스의 기록

원하는 경우 여러 Azure Digital Twins 인스턴스가 동일한 Azure Data Explorer 클러스터에 대한 업데이트를 히스토리화하도록 할 수 있습니다.

각 Azure Digital Twins 인스턴스에는 동일한 Azure Data Explorer 클러스터를 대상으로 하는 자체 데이터 기록 연결이 있습니다. 클러스터 내에서 인스턴스는 트윈 데이터를 보낼 수 있습니다.

  • Azure Data Explorer 클러스터에 있는 별도의 테이블 집합입니다.
  • Azure Data Explorer 클러스터의 동일한 테이블 집합입니다. 이렇게 하려면 데이터 기록 연결을 만드는 동안 동일한 Azure Data Explorer 테이블 이름을 지정합니다. 데이터 기록 테이블 스키마ServiceId에서 각 테이블의 열에는 원본 Azure Digital Twins 인스턴스의 URL이 포함되므로 이 필드를 사용하여 공유 테이블에서 각 레코드를 내보낸 Azure Digital Twins 인스턴스를 확인할 수 있습니다.

속성 전용 데이터 기록 연결 업데이트

2023년 2월 이전에는 데이터 기록 기능이 트윈 속성 업데이트만 기록했습니다. 해당 시점부터 속성 전용 데이터 기록 연결이 있는 경우 Azure Data Explorer에 대한 모든 그래프 업데이트를 히스토리화하도록 업데이트할 수 있습니다(쌍 속성, 쌍 수명 주기 이벤트 및 관계 수명 주기 이벤트 포함).

이렇게 하려면 새 유형의 히스토리화된 업데이트(쌍 수명 주기 이벤트 및 관계 수명 주기 이벤트)를 위해 Azure Data Explorer 클러스터에 새 테이블을 만들어야 합니다. 트윈 속성 이벤트의 경우 새 연결에서 원래 데이터 기록 연결의 동일한 테이블을 계속 사용하여 트윈 속성 업데이트를 저장할지 또는 새 연결에서 완전히 새로운 테이블 집합을 사용하도록 할지 여부를 결정할 수 있습니다. 그런 다음, 선호 사항에 맞게 아래 지침을 따르세요.

트윈 속성 업데이트에 기존 테이블을 계속 사용하려면 다음을 수행합니다.데이터 기록 연결 만들기 의 지침을 사용하여 새 기능을 사용하여 새 데이터 기록 연결을 만듭니다. 데이터 기록 연결 이름은 원래 이름 또는 다른 이름과 같을 수 있습니다. 매개 변수 옵션을 사용하여 두 개의 새 이벤트 유형 테이블에 대한 새 이름을 제공하고 트윈 속성 업데이트 테이블의 원래 테이블 이름을 전달합니다. 새 연결은 이전 연결을 덮어쓰고, 향후 이력 데이터가 포함된 트윈 속성 업데이트를 위해 원래 테이블을 계속 사용합니다.

모든 새 테이블을 사용하려는 경우: 먼저 원래 데이터 기록 연결을 삭제합니다. 그런 다음 데이터 기록 연결 만들기 의 지침을 사용하여 새 기능을 사용하여 새 데이터 기록 연결을 만듭니다. 데이터 기록 연결 이름은 원래 이름 또는 다른 이름과 같을 수 있습니다. 매개 변수 옵션을 사용하여 세 이벤트 유형 테이블 모두에 대한 새 이름을 제공합니다.

데이터 기록 연결 삭제

Azure CLI, Azure Portal 또는 Azure Digital Twins API 및 SDK를 사용하여 데이터 기록 연결을 삭제할 수 있습니다. CLI 명령은 az dt 데이터 기록 연결 삭제입니다.

연결을 삭제하면 데이터 기록 연결과 연결된 리소스를 정리하는 옵션도 제공됩니다(CLI 명령의 경우 추가할 선택적 매개 변수는 --clean true다음과 같습니다). 이 옵션을 사용하는 경우 이 명령은 데이터베이스에 대한 데이터 연결 및 테이블과 연결된 수집 매핑을 포함하여 클러스터를 이벤트 허브에 연결하는 데 사용되는 Azure Data Explorer 내의 리소스를 삭제합니다. "리소스 정리" 옵션은 데이터 기록 연결에 사용되는 실제 이벤트 허브 및 Azure Data Explorer 클러스터를 삭제 하지 않습니다 .

정리는 최상의 시도이며 명령을 실행하는 계정에 이러한 리소스에 대한 삭제 권한이 있어야 합니다.

비고

동일한 이벤트 허브 또는 Azure Data Explorer 클러스터를 공유하는 여러 데이터 기록 연결이 있는 경우 이러한 연결 중 하나를 삭제하는 동안 "리소스 정리" 옵션을 사용하면 이러한 리소스를 사용하는 다른 데이터 기록 연결이 중단됩니다.

데이터 형식 및 스키마

데이터 기록은 Azure Digital Twins 인스턴스에서 Azure Data Explorer로의 세 가지 유형의 이벤트인 관계 수명 주기 이벤트, 쌍 수명 주기 이벤트 및 쌍 속성 업데이트(선택적으로 쌍 속성 삭제를 포함할 수 있음)를 히스토리합니다. 이러한 각 이벤트 유형은 Azure Data Explorer 데이터베이스 내의 자체 테이블에 저장됩니다. 즉, 데이터 기록은 총 3개의 테이블을 유지합니다. 데이터 기록 연결을 설정할 때 테이블에 대한 사용자 지정 이름을 지정할 수 있습니다.

이 섹션의 나머지 부분에서는 각 테이블에 대한 데이터 스키마를 포함하여 세 개의 Azure Data Explorer 테이블에 대해 자세히 설명합니다.

쌍둥이 속성 업데이트

쌍 속성 업데이트에 대한 Azure Data Explorer 테이블의 기본 이름은 AdtPropertyEvents입니다. 연결을 만들 때 기본 이름을 그대로 두거나 사용자 지정 테이블 이름을 지정할 수 있습니다.

쌍 속성 업데이트에 대한 시계열 데이터는 다음 스키마와 함께 저장됩니다.

특성 유형 설명
TimeStamp 날짜와 시간 Azure Digital Twins에서 속성 업데이트 메시지를 처리한 날짜/시간입니다. 이 필드는 시스템에서 설정되며 사용자가 쓸 수 없습니다.
SourceTimeStamp 날짜와 시간 현실 세계에서 속성 업데이트가 관찰되었을 때 타임스탬프를 나타내는 선택적인 쓰기 가능한 속성입니다. 이 속성은 Azure Digital Twins API/SDK2022-05-31 버전을 사용해서만 작성할 수 있으며 값은 ISO 8601 날짜 및 시간 형식을 준수해야 합니다. 이 속성을 업데이트하는 방법에 대한 자세한 내용은 속성의 sourceTime 업데이트를 참조하세요.
ServiceId 문자열 레코드를 로깅하는 Azure IoT 서비스의 서비스 인스턴스 ID
Id 문자열 트윈 ID
ModelId 문자열 DTDL 모델 ID(DTMI)
Key 문자열 업데이트된 속성의 이름
Value 동적인 업데이트된 속성의 값입니다.
RelationshipId 문자열 트윈 또는 디바이스가 아닌 관계에 정의된 속성이 업데이트되면 이 필드는 관계의 ID로 채워집니다. 트윈 속성이 업데이트되면 이 필드는 비어 있습니다.
RelationshipTarget 문자열 트윈 또는 디바이스가 아닌 관계에 정의된 속성이 업데이트되면 이 필드는 관계의 대상이 되는 트윈의 트윈 ID로 채워집니다. 트윈 속성이 업데이트되면 이 필드는 비어 있습니다.
Action 문자열 이 열은 속성 삭제 이벤트를 히스토리화하도록 선택한 경우에만 존재합니다. 이 경우 이 열에는 쌍 속성 이벤트 유형(업데이트 또는 삭제)이 포함됩니다.

다음은 Azure Data Explorer에 저장된 트윈 속성 업데이트의 예제 테이블입니다.

TimeStamp SourceTimeStamp ServiceId Id ModelId Key Value RelationshipTarget RelationshipID
2022-12-15 20:23:29.8697482 2022-12-15 20:22:14.3854859 dairyadtinstance.api.wcus.digitaltwins.azure.net PasteurizationMachine_A01 dtmi:assetGen:PasteurizationMachine;1 출력 130
2022-12-15 20:23:39.3235925 2022-12-15 20:22:26.5837559 dairyadtinstance.api.wcus.digitaltwins.azure.net PasteurizationMachine_A01 dtmi:assetGen:PasteurizationMachine;1 출력 140
2022-12-15 20:23:47.078367 2022-12-15 20:22:34.9375957 dairyadtinstance.api.wcus.digitaltwins.azure.net PasteurizationMachine_A01 dtmi:assetGen:PasteurizationMachine;1 출력 130
2022-12-15 20:23:57.3794198 2022-12-15 20:22:50.1028562 dairyadtinstance.api.wcus.digitaltwins.azure.net PasteurizationMachine_A01 dtmi:assetGen:PasteurizationMachine;1 출력 123

여러 필드가 포함된 속성 표시

여러 필드가 있는 속성을 저장해야 할 수 있습니다. 이러한 속성은 스키마 특성에서 Value JSON 개체로 표시됩니다.

예를 들어, 롤, 피치, 요에 대한 세 개의 필드로 속성을 나타내는 경우, 데이터 기록은 다음과 같이 JSON 객체를 Value{"roll": 20, "pitch": 15, "yaw": 45}에 저장합니다.

쌍둥이 삶의 주기 이벤트

쌍 수명 주기 이벤트에 대한 Azure Data Explorer 테이블에는 데이터 기록 연결을 만들 때 지정할 사용자 지정 이름이 있습니다.

쌍 수명 주기 이벤트에 대한 시계열 데이터는 다음 스키마와 함께 저장됩니다.

특성 유형 설명
TwinId 문자열 트윈 ID
Action 문자열 트윈 수명 주기 이벤트의 형식(만들기 또는 삭제)
TimeStamp 날짜와 시간 Azure Digital Twins에서 트윈 수명 주기 이벤트를 처리한 날짜/시간입니다. 이 필드는 시스템에서 설정되며 사용자가 쓸 수 없습니다.
ServiceId 문자열 레코드를 로깅하는 Azure IoT 서비스의 서비스 인스턴스 ID
ModelId 문자열 DTDL 모델 ID(DTMI)

다음은 Azure Data Explorer에 저장된 쌍 수명 주기 업데이트의 예제 테이블입니다.

TwinId Action TimeStamp ServiceId ModelId
PasteurizationMachine_A01 창조하다 2022-12-15 07:14:12.4160 dairyadtinstance.api.wcus.digitaltwins.azure.net dtmi:assetGen:PasteurizationMachine;1
파스퇴르장치_A02 창조하다 2022-12-15 07:14:12.4210 dairyadtinstance.api.wcus.digitaltwins.azure.net dtmi:assetGen:PasteurizationMachine;1
SaltMachine_C0 창조하다 2022-12-15 07:14:12.5480 dairyadtinstance.api.wcus.digitaltwins.azure.net dtmi:assetGen:SaltMachine;1
파스퇴르장치_A02 삭제 2022-12-15 07:15:49.6050 dairyadtinstance.api.wcus.digitaltwins.azure.net dtmi:assetGen:PasteurizationMachine;1

관계 수명 주기 이벤트

관계 수명 주기 이벤트에 대한 Azure Data Explorer 테이블에는 데이터 기록 연결을 만들 때 지정할 사용자 지정 이름이 있습니다.

관계 수명 주기 이벤트에 대한 시계열 데이터는 다음 스키마와 함께 저장됩니다.

특성 유형 설명
RelationshipId 문자열 관계의 ID입니다. 이 필드는 시스템에서 설정되며 사용자가 쓸 수 없습니다.
Name 문자열 관계의 이름
Action 관계 수명 주기 이벤트의 형식(만들기 또는 삭제)
TimeStamp 날짜와 시간 관계 수명 주기 이벤트가 Azure Digital Twins에서 처리된 날짜/시간입니다. 이 필드는 시스템에서 설정되며 사용자가 쓸 수 없습니다.
ServiceId 레코드를 로깅하는 Azure IoT 서비스의 서비스 인스턴스 ID
Source 소스 트윈 ID입니다. 관계가 시작되는 쌍둥이의 ID입니다.
Target 대상 쌍의 ID입니다. 관계가 도달하는 곳의 트윈 ID입니다.

다음은 Azure Data Explorer에 저장된 관계 수명 주기 업데이트의 예제 테이블입니다.

RelationshipId Name Action TimeStamp ServiceId Source Target
PasteurizationMachine_A01_feeds_Relationship0 피드 창조하다 2022-12-15 07:16:12.7120 dairyadtinstance.api.wcus.digitaltwins.azure.net PasteurizationMachine_A01 SaltMachine_C0
페이스트라이제이션머신_A02_피즈_릴레이션십0 피드 창조하다 2022-12-15 07:16:12.7160 dairyadtinstance.api.wcus.digitaltwins.azure.net 파스퇴르장치_A02 SaltMachine_C0
PasteurizationMachine_A03_feeds_Relationship0 피드 창조하다 2022-12-15 07:16:12.7250 dairyadtinstance.api.wcus.digitaltwins.azure.net PasteurizationMachine_A03 SaltMachine_C1
OsloFactory_contains_Relationship0 포함합니다 삭제 2022-12-15 07:16:13.1780 dairyadtinstance.api.wcus.digitaltwins.azure.net 오슬로 팩터리 SaltMachine_C0

엔드 투 엔드 수집 대기 시간

Azure Digital Twins 데이터 기록은 Azure Data Explorer에서 제공하는 기존 수집 메커니즘을 기반으로 합니다. Azure Digital Twins는 2초 이내에 Azure Data Explorer에서 그래프 업데이트 이벤트를 사용할 수 있도록 합니다. 데이터를 수집하는 Azure Data Explorer에서 추가 대기 시간을 도입할 수 있습니다.

Azure Data Explorer에는 데이터를 수집하기 위한 두 가지 방법, 즉 일괄 처리 수집스트리밍 수집이 있습니다. 요구 사항 및 특정 데이터 수집 시나리오에 따라 개별 테이블에 대해 이러한 수집 방법을 구성할 수 있습니다.

스트리밍 인제션의 지연 시간이 가장 짧습니다. 그러나 처리 오버헤드로 인해 이 모드는 매시간 4GB 미만의 데이터가 수집되는 경우에만 사용해야 합니다. 일괄 처리 수집은 높은 수집 데이터 속도가 예상되는 경우에 가장 적합합니다. Azure Data Explorer는 기본적으로 일괄 처리 수집을 사용합니다. 다음 표에서는 예상되는 최악의 경우 엔드 투 엔드 대기 시간을 요약합니다.

Azure Data Explorer 구성 예상되는 엔드 투 엔드 대기 시간. 권장되는 데이터 속도
스트리밍 인제스트 <12초(<일반 3초) <4GB/시간
일괄 데이터 수집 다양(구성에 따라 12초-15m) >4GB/시간

이 섹션의 나머지 부분에는 각 유형의 수집을 활성화하는 세부 정보가 포함되어 있습니다.

일괄 수집(기본값)

별도로 구성하지 않는 경우 Azure Data Explorer에서 배치 수집을 사용합니다. 기본 설정으로 인해 디지털 트윈에 대한 업데이트가 수행된 후 5~10분 후에만 데이터를 쿼리에 사용할 수 있습니다. 일괄 처리가 최대 10초마다(최소 또는 최대 15분) 수행되도록 수집 정책을 변경할 수 있습니다. 수집 정책을 변경하려면 Azure Data Explorer 쿼리 뷰에서 다음 명령을 실행해야 합니다.

.alter table <table_name> policy ingestionbatching @'{"MaximumBatchingTimeSpan":"00:00:10", "MaximumNumberOfItems": 500, "MaximumRawDataSizeMB": 1024}' 

<table_name> 설정된 테이블의 이름으로 대체되었는지 확인합니다. MaximumBatchingTimeSpan을 기본 일괄 처리 간격으로 설정해야 합니다. 정책이 적용되는 데 5~10분이 걸릴 수 있습니다. 수집 일괄 처리에 대한 자세한 내용은 Kusto IngestionBatching 정책 관리 명령 링크를 참조하세요.

스트리밍 인제스트

스트리밍 수집을 사용하도록 설정하는 것은 2단계 프로세스입니다.

  1. 클러스터에 대한 스트리밍 인게션을 사용하도록 설정합니다. 이 작업은 한 번만 수행하면 됩니다. (경고: 이렇게 하면 핫 캐시에 사용할 수 있는 스토리지의 양에 영향을 미치며 추가 제한 사항이 발생할 수 있습니다). 자세한 내용은 Azure Data Explorer 클러스터에서 스트리밍 수집 구성을 참조하세요.
  2. 원하는 테이블에 대한 스트리밍 수집 정책을 추가합니다. Azure Data Explorer 설명서: Kusto IngestionBatching 정책 관리 명령에서 클러스터에 대한 스트리밍 수집을 사용하도록 설정하는 방법에 대해 자세히 확인할 수 있습니다.

Azure Digital Twins 데이터 기록 테이블에 스트리밍 수집을 사용하도록 설정하려면 Azure Data Explorer 쿼리 창에서 다음 명령을 실행해야 합니다.

.alter table <table_name> policy streamingingestion enable 

<table_name> 설정된 테이블의 이름으로 대체되었는지 확인합니다. 정책이 적용되는 데 5~10분이 걸릴 수 있습니다.

히스토리화된 속성 시각화

Azure Digital Twins 데이터를 시각화하고 상호 작용하기 위한 개발자 도구인 Azure Digital Twins Explorer는 차트 또는 테이블에서 시간이 지남에 따라 히스토화된 속성을 볼 수 있는 데이터 기록 탐색기 기능을 제공합니다. 이 기능은 Azure Digital Twins에 3D 자산의 시각적 컨텍스트를 제공하기 위한 몰입형 3D 환경인 3D Scenes Studio에서도 사용할 수 있습니다.

3D Scenes Studio의 데이터 기록 탐색기 스크린샷

데이터 기록 탐색기 사용에 대한 자세한 내용은 히스토레이트 속성의 유효성 검사 및 탐색을 참조하세요.

비고

시각적 데이터 기록 탐색기 환경에서 속성을 선택하는 데 문제가 발생하면 인스턴스의 일부 모델에 오류가 있을 수 있습니다. 예를 들어 모델의 특성에 고유하지 않은 열거형 값이 있으면 이 시각화 기능이 중단됩니다. 이 경우 모델 정의를 검토하고 모든 속성이 유효한지 확인합니다.

다음 단계

쌍 데이터가 Azure Data Explorer로 히스토레이트되면 Azure Data Explorer용 Azure Digital Twins 쿼리 플러그 인을 사용하여 데이터 전체에서 쿼리를 실행할 수 있습니다. Azure Data Explorer 플러그 인을 사용하여 쿼리하는 플러그 인에 대해 자세히 알아보세요.

또는 만들기 지침 및 예제 시나리오를 사용하여 데이터 기록에 대해 자세히 알아봅니다. 데이터 기록 연결을 만듭니다.