이전 두 자습서에서는 스토어 내 분석 - 체크 아웃 애플리케이션 템플릿을 사용하여 IoT Central 애플리케이션을 만들고 사용자 지정했습니다. 이 자습서에서는 디바이스에서 수집된 원격 분석을 내보내도록 IoT Central 애플리케이션을 구성합니다. 그런 다음 Power BI를 사용하여 저장소 관리자에 대한 사용자 지정 대시보드를 만들어 원격 분석에서 파생된 인사이트를 시각화합니다.
이 튜토리얼에서는 다음을 배우게 됩니다:
- 원격 분석을 이벤트 허브로 내보내도록 IoT Central 애플리케이션을 구성합니다.
- Logic Apps를 사용하여 이벤트 허브에서 Power BI 스트리밍 데이터 세트로 데이터를 보냅니다.
- 스트리밍 데이터 세트의 데이터를 시각화하는 Power BI 대시보드를 만듭니다.
필수 조건
이 자습서를 완료하려면 다음이 필요합니다.
- 이전 두 자습서를 완료하려면 스토어 내 분석 애플리케이션 템플릿을 만들고 배포 하고 Azure IoT Central에서 대시보드를 사용자 지정하고 디바이스를 관리합니다.
- Power BI 계정입니다. Power BI 계정이 없는 경우 시작하기 전에 무료 Power BI Pro 평가판 에 등록하세요.
리소스 그룹 만들기
이벤트 허브 및 논리 앱을 만들기 전에 관리하기 위해 리소스 그룹을 만들어야 합니다. 리소스 그룹은 스토어 내 분석 - 체크 아웃 IoT Central 애플리케이션과 동일한 위치에 있어야 합니다. 리소스 그룹을 만들려면 다음을 수행합니다.
- Azure Portal에 로그인합니다.
- 왼쪽 탐색 창에서 리소스 그룹을 선택합니다. 그런 다음, 추가를 선택합니다.
- 구독의 경우 IoT Central 애플리케이션을 만드는 데 사용한 Azure 구독의 이름을 선택합니다.
- 리소스 그룹 이름에 소매점 분석을 입력합니다.
- 지역의 경우 IoT Central 애플리케이션에 대해 선택한 동일한 지역을 선택합니다.
- 검토 + 생성를 선택합니다.
- 검토 + 만들기 창에서 만들기를 선택합니다.
이제 구독에 retail-store-analysis 라는 리소스 그룹이 있습니다.
이벤트 허브 만들기
원격 분석을 내보내도록 소매 모니터링 애플리케이션을 구성하려면 내보낸 데이터를 받을 이벤트 허브를 만들어야 합니다. 다음 단계에서는 이벤트 허브를 만드는 방법을 보여 줍니다.
- Azure Portal에서 화면 왼쪽 위에 있는 리소스 만들기 를 선택합니다.
- Marketplace 검색에서Event Hubs를 입력한 다음 Enter 키를 누릅니다.
- Event Hubs 페이지에서 만들기를 선택합니다.
-
네임스페이스 만들기 페이지에서 다음 단계를 수행합니다.
- 네임스페이스의 고유한 이름(예: yourname-retail-store-analysis)을 입력합니다. 시스템에서 이 이름을 사용할 수 있는지 확인합니다.
- 기본 가격 책정 계층을 선택합니다.
- IoT Central 애플리케이션을 만드는 데 사용한 것과 동일한 구독 을 선택합니다.
- 소매점 분석 리소스 그룹을 선택합니다.
- IoT Central 애플리케이션에 사용한 것과 동일한 위치를 선택합니다.
- 선택하고생성합니다. 시스템에서 리소스를 프로비전할 때까지 몇 분 정도 기다려야 할 수 있습니다.
- 포털에서 retail-store-analysis 리소스 그룹으로 이동합니다. 배포가 완료되기를 기다립니다. 새로 고침을 선택하여 배포 상태를 업데이트해야 할 수 있습니다. 알림에서 이벤트 허브 네임스페이스 만들기의 상태를 확인할 수도 있습니다.
- retail-store-analysis 리소스 그룹에서 Event Hubs 네임스페이스를 선택합니다. 포털에 Event Hubs 네임스페이스의 홈페이지가 표시됩니다.
IoT Central에서 연결하려면 송신 권한이 있는 연결 문자열이 필요합니다. 연결 문자열을 만들려면 다음을 수행합니다.
- Azure Portal의 Event Hubs 네임스페이스에서 공유 액세스 정책을 선택합니다. 정책 목록에는 기본 RootManageSharedAccessKey 정책이 포함됩니다.
- 을 선택하고을 추가합니다.
- 정책 이름으로 SendPolicy 를 입력하고 보내기를 선택한 다음 만들기를 선택합니다.
- 정책 목록에서 SendPolicy 를 선택합니다.
- 연결 문자열-기본 키 값을 기록해 둡다. IoT Central에서 내보내기 대상을 구성할 때 사용합니다.
논리 앱에서 이벤트 허브에 연결하려면 관리 및 수신 대기 권한이 있는 연결 문자열이 필요합니다. 연결 문자열을 검색하려면 다음을 수행합니다.
- Azure Portal의 Event Hubs 네임스페이스에서 공유 액세스 정책을 선택합니다. 정책 목록에는 기본 RootManageSharedAccessKey 정책이 포함됩니다.
- 정책 목록에서 RootManageSharedAccessKey 를 선택합니다.
- 연결 문자열-기본 키 값을 기록해 둡다. 이벤트 허브에서 원격 분석을 가져오도록 논리 앱을 구성할 때 사용합니다.
이제 Event Hubs 네임스페이스가 있으므로 IoT Central 애플리케이션에서 사용할 이벤트 허브를 만들 수 있습니다.
- 포털에서 Event Hubs 네임스페이스의 시작 페이지에서 + Event Hub를 선택합니다.
- 이벤트 허브 만들기 페이지에서 이름으로 store-telemetry를 입력한 다음 만들기를 선택합니다.
이제 IoT Central 애플리케이션에서 데이터 내보내기 구성 시 사용할 수 있는 이벤트 허브가 있습니다.
데이터 내보내기 구성
이제 이벤트 허브가 있으므로 연결된 디바이스에서 원격 분석을 내보내도록 스토어 내 분석 - 체크 아웃 애플리케이션을 구성할 수 있습니다. 다음 단계에서는 내보내기를 구성하는 방법을 보여줍니다.
- 스토어 내 분석 - 체크 아웃 IoT Central 애플리케이션에 로그인합니다.
- 왼쪽 창에서 데이터 내보내 기를 선택합니다.
- + 새 내보내기 선택
- 텔레메트리 내보내기를 내보내기 이름으로 입력합니다.
- 내보낼 데이터 형식으로 원격 분석을 선택합니다.
- 대상 섹션에서 새 만들기를 선택합니다.
- Store 데이터 이벤트 허브를 대상 이름으로 입력합니다.
- 대상 유형으로 Azure Event Hubs 를 선택합니다.
- 권한 부여 유형으로 연결 문자열 을 선택합니다.
- 이벤트 허브를 만들 때 저장한 SendPolicy 에 대한 연결 문자열을 붙여넣습니다.
- 이벤트 허브에 store-telemetry를 입력합니다.
- 만들기를 선택한 다음 저장을 선택합니다.
- 원격 분석 내보내기 페이지에서 내보내기 상태가 정상으로 변경되기를 기다립니다.
데이터 내보내기가 이벤트 허브에 원격 분석 전송을 시작하는 데 몇 분 정도 걸릴 수 있습니다. 데이터 내보내기 페이지에서 내보내기의 상태를 볼 수 있습니다 .
Power BI 데이터 세트 만들기
Power BI 대시보드는 소매 모니터링 애플리케이션의 데이터를 표시합니다. 이 솔루션에서는 Power BI 스트리밍 데이터 세트를 Power BI 대시보드의 데이터 원본으로 사용합니다. 이 섹션에서는 논리 앱이 이벤트 허브에서 데이터를 전달할 수 있도록 스트리밍 데이터 세트의 스키마를 정의합니다. 다음 단계에서는 환경 센서에 대한 두 개의 스트리밍 데이터 세트와 점유 센서에 대한 하나의 스트리밍 데이터 세트를 만드는 방법을 보여 줍니다.
Power BI 계정에 로그인합니다.
작업 영역을 선택한 다음 작업 영역 만들기를 선택합니다.
작업 영역 만들기 페이지에서 저장소 내 분석 - 체크 아웃을 작업 영역 이름으로 입력합니다. 저장을 선택합니다.
작업 영역 페이지에서 + 새 > 스트리밍 데이터 세트를 선택합니다.
새 스트리밍 데이터 세트 페이지에서 API를 선택한 다음, 다음을 선택합니다.
영역 1 센서를 데이터 세트 이름으로 입력합니다.
다음 표 에 스트림의 세 가지 값을 입력합니다.
값 이름 값 형식 시간표시 DateTime 습도 Number 온도 Number 기록 데이터 분석을 전환합니다.
만들기를 선택한 다음 완료를 선택합니다.
영역 1 센서 스트리밍 데이터 세트와 동일한 스키마 및 설정을 사용하여 영역 2센서 라는 또 다른 스트리밍 데이터 세트를 만듭니다.
이제 두 개의 스트리밍 데이터 세트가 있습니다. 논리 앱은 In-store analytics - checkout 애플리케이션에 연결된 두 환경 센서의 원격 분석 정보를 이 두 데이터 세트로 라우팅합니다.
이 솔루션은 Power BI의 스트리밍 데이터에 필터를 적용할 수 없으므로 각 센서에 대해 하나의 스트리밍 데이터 세트를 사용합니다.
또한 점유 원격 분석에 대한 스트리밍 데이터 세트가 필요합니다.
작업 영역 페이지에서 스트리밍 데이터 세트 만들기 > 를 선택합니다.
새 스트리밍 데이터 세트 페이지에서 API를 선택한 다음, 다음을 선택합니다.
점유 센서를 데이터 세트 이름으로 입력합니다.
다음 표 에 스트림의 값 5개를 입력합니다.
값 이름 값 형식 시간표시 DateTime 큐 길이 1 Number 큐 길이 2 Number 거주 시간 1 Number 체류 시간 2 Number 기록 데이터 분석을 전환합니다.
만들기를 선택한 다음 완료를 선택합니다.
이제 시뮬레이트된 점유 센서의 값을 저장하는 세 번째 스트리밍 데이터 세트가 있습니다. 이 센서는 매장의 두 계산대에서 대기 줄 길이와 고객이 대기 줄에서 기다리는 시간을 보고합니다.
논리 앱 만들기
이 솔루션에서 논리 앱은 이벤트 허브에서 원격 분석을 읽고, 데이터를 구문 분석한 다음, 만든 Power BI 스트리밍 데이터 세트로 보냅니다.
논리 앱을 만들기 전에 스토어 내 분석 애플리케이션 템플릿 만들기 및 배포 자습서에서 IoT Central 애플리케이션에 연결한 두 RuuviTag 센서의 디바이스 ID가 필요합니다.
- 스토어 내 분석 - 체크 아웃 IoT Central 애플리케이션에 로그인합니다.
- 왼쪽 창에서 디바이스 를 선택합니다. 그런 다음 RuuviTag를 선택합니다.
- 디바이스 ID를 기록해 둡니다. 다음 스크린샷에서 ID는 8r6vfyiv1x 및 1rvfk4ymk6z입니다.
다음 단계에서는 Azure Portal에서 논리 앱을 만드는 방법을 보여 줍니다.
- Azure Portal에 로그인하고 화면 왼쪽 위에서 리소스 만들기를 선택합니다.
- Marketplace 검색에 Logic App을 입력하고 Enter 키를 누르세요.
- 논리 앱 페이지에서 만들기를 선택합니다.
- 만들기 페이지에서 다음을 수행 합니다.
- yourname-retail-store-analysis와 같은 논리 앱의 고유한 이름을 입력합니다.
- IoT Central 애플리케이션을 만드는 데 사용한 것과 동일한 구독 을 선택합니다.
- 소매점 분석 리소스 그룹을 선택합니다.
- 형식을 소비로 선택합니다.
- IoT Central 애플리케이션에 사용한 것과 동일한 위치를 선택합니다.
- 선택하고생성합니다. 시스템에서 리소스를 프로비전할 때까지 몇 분 정도 기다려야 할 수 있습니다.
- Azure Portal에서 새 논리 앱으로 이동합니다.
- Logic Apps 디자이너 페이지에서 아래로 스크롤하여 비어 있는 논리 앱을 선택합니다.
- 검색 커넥터 및 트리거에서 Event Hubs를 입력합니다.
- 트리거에서 이벤트 허브에서 이벤트를 사용할 수 있는 경우를 선택합니다.
- 스토어 텔레메트리를연결 이름으로 입력합니다.
- 인증 유형으로 액세스 키를 선택합니다.
- 이전에 적어 둔 RootManageSharedAccessKey 정책에 대한 이벤트 허브 연결 문자열을 붙여넣고 만들기를 선택합니다.
-
이벤트 허브 작업에서 이벤트를 사용할 수 있는 경우:
- 이벤트 허브 이름에서 저장소 원격 분석을 선택합니다.
- 콘텐츠 형식에서 애플리케이션/json을 선택합니다.
- 간격을 3으로 설정하고 빈도를 초로 설정합니다.
- 저장을 선택하여 논리 앱을 저장합니다.
논리 앱 디자인에 논리를 추가하려면 코드 보기를 선택합니다.
"actions": {},를 다음 JSON으로 바꿉니다. 그런 다음 자리표시자[YOUR RUUVITAG DEVICE ID 1]및[YOUR RUUVITAG DEVICE ID 2]을 두 개의 RuuviTag 기기의 ID로 바꿉니다. 이전에 다음 ID를 기록해 두었는데,"actions": { "Initialize_Device_ID_variable": { "inputs": { "variables": [ { "name": "DeviceID", "type": "String" } ] }, "runAfter": {}, "type": "InitializeVariable" }, "Parse_Telemetry": { "inputs": { "content": "@triggerBody()?['ContentData']", "schema": { "properties": { "deviceId": { "type": "string" }, "enqueuedTime": { "type": "string" }, "telemetry": { "properties": { "DwellTime1": { "type": "number" }, "DwellTime2": { "type": "number" }, "count1": { "type": "integer" }, "count2": { "type": "integer" }, "humidity": { "type": "number" }, "temperature": { "type": "number" } }, "type": "object" }, "templateId": { "type": "string" } }, "type": "object" } }, "runAfter": { "Initialize_Device_ID_variable": [ "Succeeded" ] }, "type": "ParseJson" }, "Set_Device_ID_variable": { "inputs": { "name": "DeviceID", "value": "@body('Parse_Telemetry')?['deviceId']" }, "runAfter": { "Parse_Telemetry": [ "Succeeded" ] }, "type": "SetVariable" }, "Switch_by_DeviceID": { "cases": { "Occupancy": { "actions": {}, "case": "Occupancy" }, "Zone 2 environment": { "actions": {}, "case": "[YOUR RUUVITAG DEVICE ID 2]" }, "Zone_1_environment": { "actions": {}, "case": "[YOUR RUUVITAG DEVICE ID 1]" } }, "default": { "actions": {} }, "expression": "@variables('DeviceID')", "runAfter": { "Set_Device_ID_variable": [ "Succeeded" ] }, "type": "Switch" } },저장을 선택한 다음 디자이너를 선택하여 추가한 논리의 시각적 버전을 확인합니다.
DeviceID로 전환을 선택하여 작업을 확장합니다. 그런 다음 영역 1 환경을 선택하고 작업 추가를 선택합니다.
검색 커넥터 및 작업에서 데이터 세트에 행 추가를 입력합니다.
데이터 세트에 행 추가 작업을 선택합니다.
로그인을 선택하고 프롬프트에 따라 Power BI 계정에 로그인합니다.
로그인 프로세스가 완료되면 데이터 세트 작업에 행 추가 작업에서 다음을 수행합니다.
- 매장 내 분석 - 체크 아웃을 작업 영역으로 선택합니다.
- 영역 1 센서를 데이터 세트로 선택합니다.
- 테이블로 RealTimeData 를 선택합니다.
- 새 매개 변수 추가를 선택한 다음 타임스탬프, 습도 및 온도 필드를 선택합니다.
- 타임스탬프 필드를 선택한 다음 동적 콘텐츠 목록에서 enqueuedTime을 선택합니다.
- 습도 필드를 선택한 다음, 원격 분석 파싱 옆의 자세히 보기를 선택합니다. 그런 다음 습도를 선택합니다.
- 온도 필드를 선택한 다음, 원격 분석 옆의 자세히 보기를 선택합니다. 그런 다음 온도를 선택합니다.
저장을 선택하여 변경 내용을 저장합니다. 영역 1 환경 작업은 다음 스크린샷과 같습니다.
영역 2 환경 작업을 선택하고 작업 추가를 선택합니다.
검색 커넥터 및 작업에서 데이터 세트에 행 추가를 입력합니다.
데이터 세트에 행 추가 작업을 선택합니다.
데이터 세트에 행 추가 2 작업:
- 매장 내 분석 - 체크 아웃을 작업 영역으로 선택합니다.
- 영역 2 센서를 데이터 세트로 선택합니다.
- 테이블로 RealTimeData 를 선택합니다.
- 새 매개 변수 추가를 선택한 다음 타임스탬프, 습도 및 온도 필드를 선택합니다.
- 타임스탬프 필드를 선택한 다음 동적 콘텐츠 목록에서 enqueuedTime을 선택합니다.
- 습도 필드를 선택한 다음, 원격 분석 파싱 옆의 자세히 보기를 선택합니다. 그런 다음 습도를 선택합니다.
- 온도 필드를 선택한 다음, 원격 분석 옆의 자세히 보기를 선택합니다. 그런 다음 온도를 선택합니다.
저장을 선택하여 변경 내용을 저장합니다.
점유 작업을 선택하고 작업 추가를 선택합니다.
검색 커넥터 및 작업에서 데이터 세트에 행 추가를 입력합니다.
데이터 세트에 행 추가 작업을 선택합니다.
데이터 세트에 행 추가 3 작업:
- 매장 내 분석 - 체크 아웃을 작업 영역으로 선택합니다.
- 데이터 세트로 점유 센서 를 선택합니다.
- 테이블로 RealTimeData 를 선택합니다.
- 새 매개 변수 추가를 선택한 다음 타임스탬프, 큐 길이 1, 큐 길이 2, Dwell Time 1 및 Dwell Time 2 필드를 선택합니다.
- 타임스탬프 필드를 선택한 다음 동적 콘텐츠 목록에서 enqueuedTime을 선택합니다.
- 큐 길이 1 필드를 선택한 다음, 원격 분석 구문 분석 옆에 있는 자세히 보기를 선택합니다. 그런 다음 count1을 선택합니다.
- 큐 길이 2 필드를 선택한 다음, 원격 분석 구문 분석 옆에 있는 자세히 보기를 선택합니다. 그런 다음 count2를 선택합니다.
- Dwell Time 1 필드를 선택한 다음, 원격 분석 옆의 자세히 보기를 선택합니다. 그런 다음 , DwellTime1을 선택합니다.
- 드웰 시간 2 필드를 선택한 다음, 원격 분석 구문 분석 옆에 있는 자세히 보기를 선택합니다. 그런 다음 , DwellTime2를 선택합니다.
저장을 선택하여 변경 내용을 저장합니다. 점유율 작업은 다음 스크린샷과 같습니다.
논리 앱이 자동으로 실행됩니다. 각 실행의 상태를 보려면 Azure Portal에서 논리 앱의 개요 페이지로 이동하고 실행 기록을 선택합니다. 새로 고침을 선택하여 실행 목록을 업데이트합니다.
Power BI 대시보드 만들기
이제 IoT Central 애플리케이션에서 이벤트 허브를 통해 원격 분석을 전달합니다. 그런 다음 논리 앱은 이벤트 허브 메시지를 구문 분석하고 Power BI 스트리밍 데이터 세트에 추가합니다. 이제 Power BI 대시보드를 만들어 원격 분석을 시각화할 수 있습니다.
- Power BI 계정에 로그인합니다.
- ** 매장 내 분석 - 체크아웃 워크스페이스 >을 선택합니다.
- + 새 > 대시보드를 선택합니다.
- Store analytics를 대시보드 이름으로 입력하고 생성을 선택합니다.
꺾은선형 차트 추가
4개의 꺾은선형 차트 타일을 추가하여 두 환경 센서의 온도와 습도를 표시합니다. 다음 표의 정보를 사용하여 타일을 만듭니다. 각 타일을 추가하려면 먼저 타일 추가 편집 > 을 선택합니다. 사용자 지정 스트리밍 데이터를 선택한 다음, 다음을 선택합니다.
| Setting | 차트 1위 | 차트 2위 | 차트 3위 | 차트 #4 |
|---|---|---|---|---|
| Dataset | 영역 1 센서 | 영역 1 센서 | 영역 2 센서 | 영역 2 센서 |
| 시각화 유형 | 꺾은선형 차트 | 꺾은선형 차트 | 꺾은선형 차트 | 꺾은선형 차트 |
| 축 | 시간표시 | 시간표시 | 시간표시 | 시간표시 |
| 가치들 | 온도 | 습도 | 온도 | 습도 |
| 시간 범위 | 60분 | 60분 | 60분 | 60분 |
| 제목 | 온도(1시간) | 습도(1시간) | 온도(1시간) | 습도(1시간) |
| 부제목 | 영역 1 | 영역 1 | 영역 2 | 영역 2 |
다음 스크린샷은 첫 번째 차트에 대한 설정을 보여줍니다.
환경 데이터를 표시하는 카드 추가
4개의 카드 타일을 추가하여 두 환경 센서의 최신 온도 및 습도 값을 표시합니다. 다음 표의 정보를 사용하여 타일을 만듭니다. 각 타일을 추가하려면 먼저 타일 추가 편집 > 을 선택합니다. 사용자 지정 스트리밍 데이터를 선택한 다음, 다음을 선택합니다.
| Setting | 카드 #1 | 카드 #2 | 카드 #3 | 카드 #4 |
|---|---|---|---|---|
| Dataset | 영역 1 센서 | 영역 1 센서 | 영역 2 센서 | 영역 2 센서 |
| 시각화 유형 | Card | Card | Card | Card |
| Fields | 온도 | 습도 | 온도 | 습도 |
| 제목 | 온도(F) | 습도(%) | 온도(F) | 습도(%) |
| 부제목 | 영역 1 | 영역 1 | 영역 2 | 영역 2 |
다음 스크린샷은 첫 번째 카드에 대한 설정을 보여줍니다.
체크 아웃 점유율 데이터를 표시하는 타일 추가
4개의 카드 타일을 추가하여 저장소의 두 체크 아웃에 대한 큐 길이 및 대기 시간을 표시합니다. 다음 표의 정보를 사용하여 타일을 만듭니다. 각 타일을 추가하려면 먼저 타일 추가 편집 > 을 선택합니다. 사용자 지정 스트리밍 데이터를 선택한 다음, 다음을 선택합니다.
| Setting | 카드 #1 | 카드 #2 | 카드 #3 | 카드 #4 |
|---|---|---|---|---|
| Dataset | 점유 센서 | 점유 센서 | 점유 센서 | 점유 센서 |
| 시각화 유형 | 묶은 세로 막대형 차트 | 묶은 세로 막대형 차트 | 계기 | 계기 |
| 축 | 시간표시 | 시간표시 | N/A | N/A |
| 가치 | 거주 시간 1 | 체류 시간 2 | 큐 길이 1 | 큐 길이 2 |
| 시간 범위 | 60분 | 60분 | N/A | N/A |
| 제목 | 거주 시간 | 거주 시간 | 큐 길이 | 큐 길이 |
| 부제목 | 체크 아웃 1 | 체크 아웃 2 | 체크 아웃 1 | 체크 아웃 2 |
대시보드의 타일 크기를 조정하고 다시 정렬하여 다음 스크린샷과 같이 표시합니다.
일부 그래픽 리소스를 추가하여 대시보드를 추가로 사용자 지정할 수 있습니다.
자원을 정리하세요
IoT Central 애플리케이션을 완료한 후 애플리케이션에 로그인하고 애플리케이션 섹션의관리 페이지로 이동하여 삭제할 수 있습니다.
애플리케이션을 유지하지만 관련 비용을 줄이려면 이벤트 허브에 원격 분석을 보내는 데이터 내보내기를 사용하지 않도록 설정합니다.
retail-store-analysis라는 리소스 그룹을 삭제하여 Azure Portal에서 이벤트 허브 및 논리 앱을 삭제할 수 있습니다.
작업 영역에 대한 Power BI 설정 페이지에서 작업 영역을 삭제하여 Power BI 데이터 세트 및 대시보드를 삭제할 수 있습니다.