자습서: 처리된 데이터에서 인사이트 가져오기
이 자습서에서는 실시간 대시보드를 채워 이전 자습서에서 Event Hubs로 보낸 OPC UA 데이터에서 인사이트를 캡처합니다. Microsoft Fabric 실시간 인텔리전스를 사용하여 Event Hubs의 데이터를 Microsoft Fabric으로 가져와 실시간 대시보드의 원본이 될 수 있는 KQL 데이터베이스에 매핑합니다. 그런 다음, 인사이트를 포착하고 시간 경과에 따른 값을 보여주는 시각적 타일로 해당 데이터를 표시하는 대시보드를 구축합니다.
이러한 작업은 클라우드의 해당 디바이스 데이터에서 인사이트를 얻는 것까지 Azure IoT Operations를 에지에서 배포하는 것에서 시작되는 샘플 엔드투엔드 자습서 환경의 마지막 단계입니다.
필수 조건
이 자습서를 시작하기 전에 자습서: 데이터 흐름을 사용하여 클라우드로 자산 원격 분석 보내기를 완료 해야 합니다.
Microsoft Fabric 구독도 필요합니다. 구독에서 기여자 이상의 권한이 있는 작업 영역에 액세스해야 합니다.
또한 Microsoft Fabric 테넌트가 실시간 대시보드 만들기를 허용해야 합니다. 이 설정은 테넌트 관리자가 활성화할 수 있습니다. 자세한 내용은 관리 포털의 테넌트 설정 사용을 참조하세요.
어떤 문제를 해결할 수 있나요?
OPC UA 데이터가 클라우드에 도착하면 분석에 사용할 수 있는 정보가 많아집니다. 이러한 데이터를 구성하고 그래프와 시각화가 포함된 보고서를 만들어 데이터에서 인사이트를 얻을 수 있습니다. 이 자습서의 단계에서는 해당 데이터를 실시간 인텔리전스에 연결하고 실시간 대시보드를 빌드하는 방법을 보여 줍니다.
실시간 인텔리전스로 데이터 수집
이 섹션에서는 사용자의 이벤트 허브를 실시간 인텔리전스의 KQL 데이터베이스에 연결하도록 Microsoft Fabric 이벤트 스트림을 설정합니다. 이 프로세스에는 페이로드 데이터를 JSON 형식에서 KQL의 열로 변환하는 데이터 매핑 설정이 포함됩니다.
Eventstream 만들기
이 섹션에서는 Event Hubs의 데이터를 Microsoft Fabric 실시간 인텔리전스로 가져오고, 다시 KQL 데이터베이스로 가져오는 데 사용할 이벤트 스트림을 만듭니다.
먼저 Microsoft Fabric의 실시간 인텔리전스 환경으로 이동하고 패브릭 작업 영역을 엽니다.
Microsoft Fabric에서 이벤트 스트림 만들기의 단계에 따라 작업 영역에서 새 eventstream 리소스를 만듭니다.
eventstream이 만들어지면 이벤트 스트림 빌드를 시작할 수 있는 기본 편집기가 표시됩니다.
이벤트 허브를 원본으로 추가
다음으로, 이전 자습서의 이벤트 허브를 eventstream의 데이터 원본으로 추가합니다.
이벤트 스트림에 Azure Event Hubs 원본 추가 단계에 따라 이벤트 원본을 추가합니다. 다음 사항을 고려하세요.
- 공유 액세스 키 인증을 사용하여 새 클라우드 연결을 만듭니다.
- 이벤트 허브에서 로컬 인증이 사용하도록 설정되어 있는지 확인합니다. Azure Portal의 개요 페이지에서 설정할 수 있습니다.
- 소비자 그룹의 경우 기본 선택 영역($Default)을 사용합니다.
- 데이터 형식의 경우 Json을 선택합니다(기본적으로 이미 선택되었을 수 있음).
이 흐름을 완료하면 Azure 이벤트 허브가 이벤트 스트림 라이브 보기에 원본으로 표시됩니다.
데이터 흐름 확인
다음 단계에 따라 지금까지의 작업을 확인하고, 데이터가 이벤트 스트림으로 흐르는지 확인합니다.
이전 자습서에서 Azure IoT Operations를 배포한 클러스터를 시작합니다. Azure IoT 작업 인스턴스를 사용하여 배포한 OPC PLC 시뮬레이터가 MQTT 브로커에 데이터를 실행하고 보내기 시작할 것입니다. 흐름의 이 부분은 데이터가 흐르는지 확인에서 설명한 대로 mqttui를 사용하여 확인할 수 있습니다.
데이터가 전파되기까지 몇 분 정도 기다립니다. 그런 다음, 이벤트 스트림 라이브 보기에서 AzureEventHub 원본을 선택하고 데이터 미리 보기를 새로 고칩니다. 시뮬레이터의 JSON 데이터가 테이블에 나타나기 시작하는 것을 볼 수 있습니다.
팁
데이터가 eventstream에 도착하지 않은 경우 이벤트 허브 활동을 확인하여 메시지를 수신하고 있는지 확인할 수 있습니다. 이렇게 하면 흐름에서 디버그할 섹션을 격리하는 데 도움이 됩니다.
KQL 리소스 준비
이 섹션에서는 Microsoft Fabric 작업 영역에서 데이터의 대상으로 사용할 KQL 데이터베이스를 만듭니다.
Eventhouse 만들기의 단계에 따라 자식 KQL 데이터베이스를 사용하여 실시간 인텔리전스 이벤트 하우스를 만듭니다. 이벤트 하우스 만들기 섹션만 완료하면 됩니다.
다음으로 데이터베이스에 테이블을 만듭니다. OPCUA라고 부르고 다음 열을 사용합니다.
열 이름 데이터 형식 AssetId string 온도 decimal 습도 decimal Timestamp 날짜/시간 OPCUA 테이블을 만든 후 데이터베이스를 선택하고 데이터 탐색 단추를 사용하여 쿼리 창을 엽니다.
다음 KQL 쿼리를 실행하여 테이블에 대한 데이터 매핑을 만듭니다. 데이터 매핑은 opcua_mapping이라고 부릅니다.
.create table ['OPCUA'] ingestion json mapping 'opcua_mapping' '[{"column":"AssetId", "Properties":{"Path":"$[\'AssetId\']"}},{"column":"Temperature", "Properties":{"Path":"$[\'ThermostatTemperature\']"}},{"column":"Humidity", "Properties":{"Path":"$[\'ThermostatHumidity\']"}},{"column":"Timestamp", "Properties":{"Path":"$[\'EventProcessedUtcTime\']"}}]'
데이터 테이블을 대상으로 추가
다음으로, 이벤트 스트림 보기로 돌아가서 새 KQL 테이블을 이벤트 스트림 대상으로 추가할 수 있습니다.
이벤트 스트림에 KQL 데이터베이스 대상 추가의 단계를 따라 대상을 추가합니다. 다음 사항을 고려하세요.
직접 수집 모드를 사용합니다.
구성 단계에서 이전에 만든 OPCUA 테이블을 선택합니다.
검사 단계에서 고급 옵션을 엽니다. 매핑 아래에서 기존 매핑 선택하고 opcua_mapping을 선택합니다.
팁
기존 매핑을 찾을 수 없는 경우 이벤트 스트림 편집기를 새로 고치고 단계를 다시 시작하여 대상을 추가합니다. 또는 이벤트 스트림에서 데이터 가져오기에서 설명한 대로 이벤트 스트림 대신 KQL 테이블에서 이와 동일한 구성 프로세스를 시작할 수 있습니다.
이 흐름을 완료하면 KQL 테이블이 이벤트 스트림 라이브 보기에서 대상으로 표시됩니다.
데이터가 전파되기까지 몇 분 정도 기다립니다. 그런 다음, KQL 대상을 선택하고 데이터 미리 보기를 새로 고쳐 테이블에 나타나는 이벤트 스트림에서 처리된 JSON 데이터를 확인합니다.
원하는 경우 KQL 데이터베이스에서 직접 이 데이터를 보고 쿼리할 수도 있습니다.
실시간 대시보드 만들기
이 섹션에서는 자습서 데이터를 시각화하는 새로운 실시간 대시보드 를 만듭니다. 대시보드는 자산 ID 및 타임스탬프별로 필터링을 허용하고 온도 및 습도 데이터의 시각적 요약을 표시합니다.
참고 항목
테넌트 관리자가 Microsoft Fabric 테넌트에서 실시간 대시보드를 만들 수 있도록 설정한 경우에만 실시간 대시보드를 만들 수 있습니다. 자세한 내용은 관리 포털의 테넌트 설정 사용을 참조하세요.
대시보드 만들기 및 데이터 원본 연결
새 대시보드 만들기 섹션의 단계에 따라 실시간 인텔리전스 기능에서 새 실시간 대시보드를 만듭니다.
그런 다음 데이터 원본 추가 섹션의 단계에 따라 데이터베이스를 데이터 원본으로 추가합니다. 다음 사항에 유의하세요.
- 데이터 원본 창에서 데이터베이스는 OneLake 데이터 허브 아래에 있게 됩니다.
매개 변수 구성
다음으로, 시각적 개체를 자산 ID 및 타임스탬프로 필터링할 수 있도록 대시보드에 대한 일부 매개 변수를 구성합니다. 대시보드에는 시간 범위별로 필터링하는 기본 매개 변수가 함께 제공되므로 자산 ID로 필터링할 수 있는 매개 변수만 만들어야 합니다.
관리 탭으로 전환하고 매개 변수를 선택합니다. + 추가를 선택하여 새 매개 변수를 추가합니다.
다음 특성을 사용하여 새 매개 변수를 만듭니다.
- 레이블: 자산
- 매개 변수 유형: 단일 선택 (이미 기본적으로 선택됨)
- 변수 이름: _asset
- 데이터 형식: 문자열 (이미 기본적으로 선택됨)
- 원본: 쿼리
데이터 원본: 데이터베이스(이미 기본적으로 선택됨)
쿼리 편집을 선택하고 다음 KQL 쿼리를 추가합니다.
OPCUA | summarize by AssetId
- 값 열: AssetId
- 기본값: 쿼리의 첫 번째 값 선택
완료를 선택하여 매개 변수를 저장합니다.
꺾은선형 차트 타일 만들기
그런 다음 대시보드에 타일을 추가하여 선택한 자산 및 시간 범위에 대한 시간에 따른 온도 및 습도의 꺾은선형 차트를 표시합니다.
+ 타일 추가 또는 새 타일을 선택하여 새 타일을 추가합니다.
타일에 대해 다음 KQL 쿼리를 입력합니다. 이 쿼리는 시간 범위 및 자산에 대한 대시보드 선택기의 필터 매개 변수를 적용하고 타임스탬프, 온도 및 습도를 사용하여 결과 레코드를 끌어옵니다.
OPCUA | where Timestamp between (_startTime.._endTime) | where AssetId == _asset | project Timestamp, Temperature, Humidity
쿼리를 실행하여 데이터를 찾을 수 있는지 확인합니다.
쿼리 결과 옆에 있는 + 시각적 개체 추가를 선택하여 이 데이터에 대한 시각적 개체를 추가합니다. 다음 특성을 사용하여 시각적 개체를 만듭니다.
- 타일 이름: 시간 경과에 따른 온도 및 습도
- 시각적 유형: 꺾은선형 차트
- Data:
- Y 열: 온도(10진수) 및 습도(10진수) (이미 기본적으로 유추됨)
- X 열: 타임스탬프(datetime)(기본적으로 이미 유추됨)
- Y축:
- 레이블: 단위
- X축:
- 레이블: 타임스탬프
변경 내용 적용을 선택하여 타일을 만듭니다.
대시보드에서 완성된 타일을 확인합니다.
최댓값 타일 만들기
다음으로, 온도 및 습도의 최대값을 표시하는 타일을 만듭니다.
새 타일을 선택하여 새 타일을 만듭니다.
타일에 대해 다음 KQL 쿼리를 입력합니다. 이 쿼리는 시간 범위 및 자산에 대한 대시보드 선택기의 필터 매개 변수를 적용하고 결과 레코드에서 가장 높은 온도 값을 사용합니다.
OPCUA | where Timestamp between (_startTime.._endTime) | where AssetId == _asset | top 1 by Temperature desc | summarize by Temperature
쿼리 실행하여 최고 온도를 찾을 수 있는지 확인합니다.
+ 시각적 개체 추가를 선택하여 이 데이터에 대한 시각적 개체를 추가합니다. 다음 특성을 사용하여 시각적 개체를 만듭니다.
- 타일 이름: 최고 온도
- 시각적 개체 유형: 통계
- Data:
- 값 열: 온도(10진수)(기본적으로 이미 유추됨)
변경 내용 적용을 선택하여 타일을 만듭니다.
대시보드에서 완성된 타일을 확인합니다(전체 텍스트가 표시되도록 타일의 크기를 조정할 수 있음).
타일에 대한 옵션을 열고 중복 타일을 선택합니다.
그러면 대시보드에 중복 타일이 만들어집니다.
새 타일에서 연필 아이콘을 선택하여 이를 편집합니다.
KQL 쿼리의 온도를 습도로 바꿔 아래 쿼리와 일치합니다.
OPCUA | where Timestamp between (_startTime.._endTime) | where AssetId == _asset | top 1 by Humidity desc | summarize by Humidity
쿼리를 실행 하여 최대 습도를 찾을 수 있는지 확인합니다.
시각적 개체 서식 창에서 다음 특성을 업데이트합니다.
- 타일 이름: 최대 습도
- Data:
- 값 열: 습도(10진수)(이미 기본적으로 유추됨)
변경 내용 적용을 선택합니다.
대시보드에서 완성된 타일을 확인합니다.
완료된 대시보드를 저장합니다.
이제 이러한 자습서에서 자산 데이터에 대한 다양한 유형의 시각적 개체를 표시하는 대시보드가 있습니다. 여기에서 필터를 실험하고 다른 타일 형식을 추가하여 대시보드에서 데이터로 어떤 작업을 더 수행할 수 있는지 알아볼 수 있습니다.
문제를 어떻게 해결했나요?
이 자습서에서는 Eventstream을 사용하여 Event Hubs 데이터를 Microsoft Fabric 실시간 인텔리전스의 KQL 데이터베이스로 수집했습니다. 그런 다음, 해당 데이터를 사용하여 시간 경과에 따른 변경 값을 시각적으로 추적하는 실시간 대시보드를 만들었습니다. Microsoft Fabric에서는 다양한 원본의 에지 데이터를 함께 연결하여 자산 상태, 사용률, 운영 추세에 대한 심층적인 인사이트를 제공하는 시각화 기능과 대화형 기능을 사용하여 보고서를 만들 수 있습니다. 이를 통해 생산성을 향상시키고, 자산 성능을 개선하며, 더 나은 비즈니스 결과를 위해 정보에 입각한 의사 결정을 추진할 수 있습니다.
Azure IoT Operations를 사용하여 클라우드에서 분석을 통해 배포에서 디바이스 데이터를 관리하기 위한 자습서 흐름의 마지막 단계를 완료합니다.
리소스 정리
다음 자습서를 계속 진행하는 경우 모든 리소스를 유지합니다.
Azure IoT Operations 배포를 제거하지만 클러스터를 유지하려면 az iot ops delete 명령을 사용합니다.
az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
이 빠른 시작을 위해 만든 모든 리소스를 삭제하려면 Azure IoT 작업을 배포한 Kubernetes 클러스터를 삭제한 다음 클러스터가 포함된 Azure 리소스 그룹을 제거합니다.
이러한 빠른 시작에서 Codespaces를 사용한 경우 GitHub에서 Codespace를 삭제합니다.
참고 항목
리소스 그룹에는 이 자습서에서 만든 Event Hubs 네임스페이스가 포함되어 있습니다.
또한 Eventstream, eventhouse 및 실시간 대시보드를 포함하여 Microsoft Fabric 작업 영역 및/또는 이 자습서와 연결된 모든 리소스를 삭제할 수 있습니다.