教學課程:從 Azure IoT Central 匯出數據,並將 Power BI 中的深入解析可視化
在先前的兩個教學課程中,您已使用 店內分析 - 結帳 應用程式範本來建立和自定義 IoT Central 應用程式。 在本教學課程中,您會設定IoT Central應用程式,以匯出從裝置收集的遙測。 接著,您可以使用 Power BI 建立市集管理員的自定義儀錶板,以可視化衍生自遙測的見解。
在本教學課程中,您會了解如何:
- 設定 IoT Central 應用程式,將遙測匯出至事件中樞。
- 使用 Logic Apps 將數據從事件中樞傳送至 Power BI 串流數據集。
- 建立 Power BI 儀錶板,以將串流數據集中的數據可視化。
必要條件
若要完成本教學課程,您需要:
- 若要完成前兩個教學課程, 請在 Azure IoT Central 中建立店內分析應用程式,並在 Azure IoT Central 中自定義儀錶板和管理裝置。
- Power BI (英文) 帳戶。 如果您沒有 Power BI 帳戶,請先註冊 免費的 Power BI Pro 試用版 ,再開始。
建立資源群組
建立事件中樞和邏輯應用程式之前,您必須建立資源群組來管理它們。 資源群組應該位於與店內 分析相同的位置 - 結帳 IoT Central 應用程式。 若要建立資源群組︰
- 登入 Azure 入口網站。
- 在左側瀏覽中,選取 [資源群組]。 然後選取 [新增]。
- 針對 [ 訂用帳戶],選取您用來建立IoT Central 應用程式的 Azure 訂用帳戶名稱。
- 針對 [ 資源組 名],輸入 retail-store-analysis。
- 針對 [ 區域],選取您為IoT Central 應用程式選擇的相同區域。
- 選取 [檢閱 + 建立] 。
- 在 [檢閱 + 建立] 頁面上,選取 [建立]。
您現在在訂用帳戶中有一 個名為 retail-store-analysis 的資源群組。
建立事件中樞
您必須先建立事件中樞來接收導出的數據,才能設定零售監視應用程式以匯出遙測。 下列步驟示範如何建立事件中樞:
- 在 Azure 入口網站 中,選取畫面左上方的 [建立資源]。
- 在 [搜尋 Marketplace] 中,輸入 事件中樞,然後按 Enter。
- 在 [事件中 樞] 頁面上,選取 [ 建立]。
- 在 [ 建立命名空間] 頁面上,採取下列步驟:
- 輸入命名空間的唯一名稱,例如 yourname-retail-store-analysis。 系統會檢查此名稱是否可用。
- 選擇 [ 基本 ] 定價層。
- 選取您用來建立IoT Central 應用程式的相同 訂 用帳戶。
- 選取 retail-store-analysis 資源群組。
- 選取您用於IoT Central 應用程式的相同位置。
- 選取 建立。 您可能需要等候幾分鐘,系統才能布建資源。
- 在入口網站中,流覽至 零售商店分析 資源群組。 等待部署完成。 您可能需要選取 [ 重新 整理] 以更新部署狀態。 您也可以在通知中檢查事件中樞命名空間建立的狀態。
- 在 retail-store-analysis 資源群組中,選取 [事件中樞命名空間]。 您會在入口網站中看到事件中樞命名空間的首頁。
您需要具有從 IoT Central 連線之傳送許可權的 連接字串。 若要建立 連接字串:
- 在 Azure 入口網站 的事件中樞命名空間中,選取 [共用存取原則]。 原則清單包含預設 的 RootManageSharedAccessKey 原則。
- 選取 + 新增。
- 輸入 SendPolicy 作為原則名稱,選取 [ 傳送],然後選取 [ 建立]。
- 在原則清單中選取 [SendPolicy ]。
- 記下 連線 字串-主鍵值。 當您在IoT Central 中設定匯出目的地時,請使用它。
您需要具有管理和接聽許可權的 連接字串,才能從邏輯應用程式連線到事件中樞。 若要擷取 連接字串:
- 在 Azure 入口網站 的事件中樞命名空間中,選取 [共用存取原則]。 原則清單包含預設 的 RootManageSharedAccessKey 原則。
- 選取原則清單中的 RootManageSharedAccessKey。
- 記下 連線 字串-主鍵值。 當您設定邏輯應用程式從事件中樞擷取遙測時,您可以使用它。
現在您有事件 中樞命名空間,您可以建立事件中樞來搭配IoT Central 應用程式使用:
- 在入口網站中事件 中樞命名空間 的首頁上,選取 [+ 事件中樞]。
- 在 [ 建立事件中樞 ] 頁面上,輸入 store-telemetry 作為名稱,然後選取 [ 建立]。
您現在有事件中樞,您可以在設定從 IoT Central 應用程式匯出資料時使用:
設定數據匯出
現在您有事件中樞,您可以設定店內 分析 - 結帳 應用程式,以從聯機的裝置導出遙測。 下列步驟示範如何設定匯出:
- 登入您的 店內分析 - 簽出 IoT Central 應用程式。
- 選取 左窗格中的數據匯出 。
- 選取 [+ 新增匯出]。
- 輸入 遙測匯出 作為 匯出名稱。
- 選取 [遙測 ] 作為要匯出的數據類型。
- 在 [ 目的地] 區 段中,選取 [建立新的目的地]。
- 輸入 [儲存數據事件中樞 ] 作為 [ 目的地名稱]。
- 選取 [Azure 事件中樞] 作為目的地類型。
- 選取 [連線 ion 字串] 作為授權類型。
- 貼上您在建立事件中樞時所儲存之 SendPolicy 的 連接字串。
- 輸入 store-telemetry 作為事件中 樞。
- 選取 [建立],然後選取 [儲存]。
- 在 [ 遙測導出 ] 頁面上,等候導出狀態變更為 [狀況良好]。
數據匯出可能需要幾分鐘的時間,才能開始將遙測數據傳送至事件中樞。 您可以在 [數據匯出] 頁面上看到匯出的狀態。
建立 Power BI 數據集
Power BI 儀錶板會顯示來自零售監視應用程式的數據。 在此解決方案中,您會使用Power BI串流資料集作為Power BI儀錶板的數據源。 在本節中,您會定義串流數據集的架構,讓邏輯應用程式可以從事件中樞轉送數據。 下列步驟示範如何為環境感測器建立兩個串流數據集,以及一個佔用感測器的串流數據集:
登入您的 Power BI 帳戶。
選取 [ 工作區],然後選取 [ 建立工作區]。
在 [ 建立工作區 ] 頁面上,輸入 店內分析 - 簽出 為 工作區名稱。 選取 [儲存]。
在工作區頁面上,選取 [+ 新增 > 串流數據集]。
在 [ 新增串流數據集] 頁面上,選擇 [ API],然後選取 [ 下一步]。
輸入 區域 1 感測器 作為 數據集名稱。
在下表中輸入來自資料流的三個值:
值名稱 值類型 時間戳記 Datetime 溼度 數字 溫度 數字 開啟 [歷程記錄數據分析 ]。
選取 [建立],然後選取 [完成]。
建立另一個名為 Zone 2 感測器 的串流數據集,其架構和設定與 區域 1 感測器 串流數據集相同。
您現在有兩個串流數據集。 邏輯應用程式會將遙測從連線至店內 分析的兩個環境感測器路由傳送 - 結帳 應用程式至這兩個數據集:
此解決方案會針對每個感測器使用一個串流數據集,因為無法將篩選套用至 Power BI 中的串流數據。
您也需要佔用遙測的串流資料集:
在工作區頁面上,選取 [ 建立 > 串流數據集]。
在 [ 新增串流數據集] 頁面上,選擇 [ API],然後選取 [ 下一步]。
輸入 佔用率感測器 作為 數據集名稱。
在下表中輸入來自資料流的五個值:
值名稱 值類型 時間戳記 Datetime 佇列長度 1 數字 佇列長度 2 數字 停留時間 1 數字 停留時間 2 數字 開啟 [歷程記錄數據分析 ]。
選取 [建立],然後選取 [完成]。
您現在有第三個串流數據集,可儲存來自模擬佔用感測器的值。 此感測器會在商店的兩個結帳處報告佇列長度,以及客戶在這些佇列中等候的時間長度:
建立邏輯應用程式
在此解決方案中,邏輯應用程式會從事件中樞讀取遙測、剖析數據,然後將它傳送至您建立的 Power BI 串流數據集。
建立邏輯應用程式之前,您需要您在 Azure IoT Central 中建立店內分析應用程式中連線到 IoT Central 應用程式的兩個 RuuviTag 感測器裝置識別碼:
- 登入您的 店內分析 - 簽出 IoT Central 應用程式。
- 選取左窗格的 [裝置]。 然後選取 [RuuviTag]。
- 記下 裝置標識碼。 在下列螢幕快照中,標識符為 8r6vfyiv1x 和 1rvfk4ymk6z:
下列步驟說明如何在 Azure 入口網站 中建立邏輯應用程式:
- 登入 Azure 入口網站,然後選取畫面左上方的 [建立資源]。
- 在 [搜尋 Marketplace] 中,輸入 邏輯應用程式,然後按 Enter。
- 在邏輯應用程式頁面上,選取建立。
- 在 [ 建立] 頁面上:
- 輸入邏輯應用程式的唯一名稱,例如 yourname-retail-store-analysis。
- 選取您用來建立IoT Central 應用程式的相同 訂 用帳戶。
- 選取 retail-store-analysis 資源群組。
- 選取 [類型] 作為 [取用]。
- 選取您用於IoT Central 應用程式的相同位置。
- 選取 建立。 您可能需要等候幾分鐘,系統才能布建資源。
- 在 Azure 入口網站 中,流覽至新的邏輯應用程式。
- 在 [ Logic Apps 設計工具] 頁面上,向下捲動並選取 [ 空白邏輯應用程式]。
- 在 [搜尋連接器和觸發程式] 中,輸入 事件中樞。
- 在 [觸發程式] 中,選取 [事件中樞可用時]。
- 輸入 [儲存遙測] 作為 連線 名稱。
- 選取 [存取金鑰 ] 作為驗證類型。
- 貼上您先前記下之 RootManageSharedAccessKey 原則的事件中樞 連接字串,然後選取 [建立]。
- 在 [ 事件中樞 ] 動作中提供事件時:
- 在 [事件中 樞名稱] 中,選取 [存放區遙測]。
- 在 [內容類型] 中,選取 [應用程式/json]。
- 將 Interval 設定為 3,並將 Frequency 設定為秒
- 選取 [儲存] 以儲存邏輯應用程式。
若要將邏輯新增至邏輯應用程式設計,請選取 [ 程序代碼檢視]:
將取代
"actions": {},
為下列 JSON。 然後將這兩個佔位元[YOUR RUUVITAG DEVICE ID 1]
取代[YOUR RUUVITAG DEVICE ID 2]
為兩個 RuuviTag 裝置的標識碼。 您先前已記下這些識別碼:"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 將資料列新增至數據集 動作。
選取 [登入 ],然後遵循提示登入您的 Power BI 帳戶。
登入程式完成之後,請在 [ 將數據列新增至數據集 ] 動作中:
- 選取 [店內分析 - 簽出 ] 作為工作區。
- 選取 [區域 1 感測器 ] 作為數據集。
- 選取 [RealTimeData] 作為數據表。
- 選取 [新增參數 ],然後選取 [ 時間戳]、 [濕度] 和 [ 溫度] 字段。
- 選取 [時間戳] 字段,然後從 [動態內容] 列表中選取 enqueuedTime。
- 選取 [濕度] 字段,然後選取 [剖析遙測] 旁的 [查看更多]。 然後選取 濕度。
- 選取 [溫度] 字段,然後選取 [剖析遙測] 旁的 [查看更多]。 然後選取 溫度。
選取儲存以儲存變更。 區域 1 環境 動作看起來像下列螢幕快照:
選取 [ 區域 2 環境 ] 動作,然後選取 [ 新增動作]。
在 [搜尋連接器和動作] 中,輸入 [將數據列新增至數據集]。
選取 Power BI 將資料列新增至數據集 動作。
在 [ 將資料列新增至資料集 2 ] 動作中:
- 選取 [店內分析 - 簽出 ] 作為工作區。
- 選取 [區域 2 感測器 ] 作為數據集。
- 選取 [RealTimeData] 作為數據表。
- 選取 [新增參數 ],然後選取 [ 時間戳]、 [濕度] 和 [ 溫度] 字段。
- 選取 [時間戳] 字段,然後從 [動態內容] 列表中選取 enqueuedTime。
- 選取 [濕度] 字段,然後選取 [剖析遙測] 旁的 [查看更多]。 然後選取 濕度。
- 選取 [溫度] 字段,然後選取 [剖析遙測] 旁的 [查看更多]。 然後選取 溫度。
選取儲存以儲存變更。
選取 [ 佔用人數 ] 動作,然後選取 [ 新增動作]。
在 [搜尋連接器和動作] 中,輸入 [將數據列新增至數據集]。
選取 Power BI 將資料列新增至數據集 動作。
在 [ 將資料列新增至資料集 3 ] 動作中:
- 選取 [店內分析 - 簽出 ] 作為工作區。
- 選取 [ 佔用率感測器 ] 作為數據集。
- 選取 [RealTimeData] 作為數據表。
- 選取 [新增參數],然後選取 [時間戳]、[佇列長度 1]、[佇列長度 2]、[停留時間 1] 字段。
- 選取 [時間戳] 字段,然後從 [動態內容] 列表中選取 enqueuedTime。
- 選取 [佇列長度 1] 字段,然後選取 [剖析遙測] 旁的 [查看更多]。 然後選取 count1。
- 選取 [佇列長度 2] 字段,然後選取 [剖析遙測] 旁的 [查看更多]。 然後選取 count2。
- 選取 [停留時間 1] 字段,然後選取 [剖析遙測] 旁的 [查看更多]。 然後選取 [DwellTime1]。
- 選取 [Dwell Time 2] 字段,然後選取 [剖析遙測] 旁的 [查看更多]。 然後選取 [DwellTime2]。
選取儲存以儲存變更。 [ 佔用人數 ] 動作看起來像下列螢幕快照:
邏輯應用程式會自動執行。 若要查看每個執行的狀態,請流覽至 Azure 入口網站 中邏輯應用程式的 [概觀] 頁面,然後選取 [執行歷程記錄]。 選取 [ 重新整理 ] 以更新執行清單。
建立 Power BI 儀表板
現在您已透過事件中樞從IoT Central應用程式流動遙測。 然後邏輯應用程式會剖析事件中樞訊息,並將其新增至 Power BI 串流數據集。 現在,您可以建立 Power BI 儀錶板,以可視化方式呈現遙測:
- 登入您的 Power BI 帳戶。
- 選取 [ > 工作區店內分析 - 結帳]。
- 選取 [+ 新增 > 儀錶板]。
- 輸入 市集分析 作為儀錶板名稱,然後選取 [ 建立]。
新增折線圖
新增四個折線圖圖格,以顯示兩個環境感測器的溫度和濕度。 使用下表中的資訊來建立磚。 若要新增每個磚,請從選取 [ 編輯 > 新增磚] 開始。 選取 [自定義串流數據],然後選取 [ 下一步]:
設定 | 圖表 #1 | 圖表 #2 | 圖表 #3 | 圖表 #4 |
---|---|---|---|---|
資料集 | 區域1感測器 | 區域1感測器 | 區域 2 感測器 | 區域 2 感測器 |
視覺效果類型 | 折線圖 | 折線圖 | 折線圖 | 折線圖 |
Axis | 時間戳記 | 時間戳記 | 時間戳記 | 時間戳記 |
值 | 溫度 | 溼度 | 溫度 | 溼度 |
時間範圍 | 60 分鐘 | 60 分鐘 | 60 分鐘 | 60 分鐘 |
標題 | 溫度 (1 小時) | 濕度 (1 小時) | 溫度 (1 小時) | 濕度 (1 小時) |
子標題 | 區域 1 | 區域 1 | 區域 2 | 區域 2 |
下列螢幕快照顯示第一張圖表的設定:
新增卡片以顯示環境數據
新增四個卡片磚,以顯示來自兩個環境感測器的最新溫度和濕度值。 使用下表中的資訊來建立磚。 若要新增每個磚,請從選取 [ 編輯 > 新增磚] 開始。 選取 [自定義串流數據],然後選取 [ 下一步]:
設定 | 卡片 #1 | 卡片 #2 | 卡片 #3 | 卡片 #4 |
---|---|---|---|---|
資料集 | 區域1感測器 | 區域1感測器 | 區域 2 感測器 | 區域 2 感測器 |
視覺效果類型 | 卡片 | 卡片 | 卡片 | 卡片 |
欄位 | 溫度 | 溼度 | 溫度 | 溼度 |
標題 | 溫度 (華氏) | 濕度 (%) | 溫度 (華氏) | 濕度 (%) |
子標題 | 區域 1 | 區域 1 | 區域 2 | 區域 2 |
下列螢幕快照顯示第一張卡片的設定:
新增磚以顯示結帳佔用量數據
新增四個卡片磚以顯示商店中兩次結帳的佇列長度和停留時間。 使用下表中的資訊來建立磚。 若要新增每個磚,請從選取 [ 編輯 > 新增磚] 開始。 選取 [自定義串流數據],然後選取 [ 下一步]:
設定 | 卡片 #1 | 卡片 #2 | 卡片 #3 | 卡片 #4 |
---|---|---|---|---|
資料集 | 佔用率感測器 | 佔用率感測器 | 佔用率感測器 | 佔用率感測器 |
視覺效果類型 | 叢集柱形圖 | 叢集柱形圖 | 量測計 | 量測計 |
Axis | 時間戳記 | 時間戳記 | N/A | N/A |
值 | 停留時間 1 | 停留時間 2 | 佇列長度 1 | 佇列長度 2 |
時間範圍 | 60 分鐘 | 60 分鐘 | N/A | N/A |
標題 | 停留時間 | 停留時間 | 佇列長度 | 佇列長度 |
子標題 | 結帳 1 | 結帳 2 | 結帳 1 | 結帳 2 |
重設大小並重新排列儀錶板上的磚,看起來像下列螢幕快照:
您可以新增一些圖形資源,以進一步自訂儀錶板:
清除資源
如果您已完成 IoT Central 應用程式,您可以登入應用程式並流覽至 [應用程式] 區段中的 [管理] 頁面來刪除該應用程式。
如果您想要保留應用程式,但降低與其相關聯的成本,請停用將數據匯出傳送遙測至事件中樞。
您可以刪除名為 retail-store-analysis 的資源群組,以刪除 Azure 入口網站 中的事件中樞和邏輯應用程式。
您可以從工作區的Power BI 設定頁面刪除工作區,以刪除Power BI資料集和儀錶板。