快速入門:從 IoT Central 應用程式匯出資料
開始使用 IoT Central 資料匯出,以整合 IoT Central 應用程式與另一個雲端服務,例如 Azure 資料總管。 Azure 資料總管可讓您儲存、查詢及處理來自 [IoT 隨插即用] 智慧型應用程式等裝置的遙測資料。
在本快速入門中,您將:
- 使用 IoT Central 中的資料匯出功能,將來自智慧型應用程式的遙測資料傳送至 Azure 資料總管資料庫。
- 使用 Azure 資料總管對遙測執行查詢。
完成本快速入門會對 Azure 資料總管執行個體的 Azure 帳戶產生少量費用。 IoT Central 應用程式中的前兩個裝置是免費的。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 完成第一個快速入門建立 Azure IoT Central 應用程式。 第二個快速入門:設定裝置的規則和動作是選擇性的。
- 您需要您在第一個快速入門建立 Azure IoT Central 應用程式中選擇的 IoT Central 應用程式 URL 前置詞。
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
安裝 Azure 服務
您必須先有 Azure 資料總管叢集和資料庫,才能從 IoT Central 應用程式匯出資料。 在本快速入門中,您會在 Azure Cloud Shell 中執行 bash 指令碼,以加以建立及設定。
指令碼會完成下列步驟:
- 提示您登入您的 Azure 訂用帳戶,以便產生持有人權杖來驗證 REST API 呼叫。
- 建立 Azure 資料總管叢集和資料庫。
- 為 IoT Central 應用程式建立受控識別。
- 使用存取 Azure 資料總管資料庫的權限來設定受控識別。
- 將資料表新增至資料庫,以儲存來自 IoT Central 的傳入遙測。
執行下列命令,將指令碼下載到您的 Azure Cloud Shell 環境:
wget https://raw.githubusercontent.com/Azure-Samples/iot-central-docs-samples/main/quickstart-cde/createADX.sh
chmod u+x createADX.sh
使用下列命令執行指令碼:
- 將
CLUSTER_NAME
取代為 Azure 資料總管叢集的唯一名稱。 叢集名稱只能包含小寫字母和數字。 叢集名稱長度必須介於 4 到 22 個字元之間。 - 將
CENTRAL_URL_PREFIX
取代為您在IoT Central 應用程式的第一個快速入門中選擇的 URL 前置詞。 - 出現提示時,請依照指示登入您的帳戶。 指令碼必須登入,因為其會產生持有人權杖來驗證 REST API 呼叫。
./createADX.sh CLUSTER_NAME CENTRAL_URL_PREFIX
重要
此指令碼可能需要 20 到 30 分鐘來執行。
記下指令碼所輸出的 Azure 資料總管 URL。 您稍後會在快速入門中使用此值。
設定資料匯出
若要從 IoT Central 設定資料匯出目的地:
- 瀏覽至 IoT Central 應用程式的 [資料匯出] 頁面。
- 選取 [目的地] 索引標籤,然後選取 [新增目的地]。
- 輸入 [Azure 資料總管] 做為目的地名稱。 選取 [Azure 資料總管] 做為目的地類型。
- 在 [叢集 URL] 中,輸入您先前記下的 [Azure 資料總管 URL]。
- 在 [資料庫名稱] 中,輸入 phonedata。
- 在 [資料表名稱] 中,輸入加速。
- 在 [授權] 中,選取 [系統指派的受控識別]。
- 選取 [儲存]。
若要設定資料匯出:
在 [資料匯出] 頁面上,選取 [匯出] 索引標籤,然後選取 [新增匯出]。
輸入電話加速計做為匯出名稱。
選取 [遙測] 做為要匯出的資料類型。
請使用下表中的資訊來新增兩個篩選:
名稱 運算子 值 裝置範本 Equals IoT 隨插即用行動裝置 感應器/加速/X Exists N/A 如果已將所有條件設定為 true,請確定匯出資料的選項。
新增 Azure 資料總管做為目的地。
將資料轉換新增至目的地。 新增下列查詢至 2。在 [資料轉換] 頁面上建置轉換查詢欄位:
import "iotc" as iotc; { Device: .device.id, EnqueuedTime: .enqueuedTime, X: .telemetry | iotc::find(.name == "accelerometer").value.x, Y: .telemetry | iotc::find(.name == "accelerometer").value.y, Z: .telemetry | iotc::find(.name == "accelerometer").value.z }
如果您要查看轉換的運作方式,並實驗查詢,請將下列範例遙測訊息貼到 1。[新增輸入訊息]:
{ "messageProperties": {}, "device": { "id": "8hltz8xa7n", "properties": { "reported": [] }, "approved": true, "types": [], "name": "8hltz8xa7n", "simulated": false, "provisioned": true, "modules": [], "templateId": "urn:modelDefinition:vlcd3zvzdm:y425jkkpqzeu", "templateName": "IoT Plug and Play mobile", "organizations": [], "cloudProperties": [], "blocked": false }, "component": "sensors", "applicationId": "40a97c91-50cc-44f0-9f63-71386613facc", "messageSource": "telemetry", "telemetry": [ { "id": "dtmi:azureiot:PhoneSensors:__accelerometer;1", "name": "accelerometer", "value": { "x": 0.09960123896598816, "y": 0.09541380405426025, "z": 9.907781600952148 } } ], "enqueuedTime": "2021-11-12T10:01:30.588Z", "enrichments": {} }
儲存轉換。 然後儲存資料匯出定義。
等到匯出狀態顯示 [狀況良好] 為止:
查詢匯出的資料
若要查詢匯出的遙測:
使用您先前執行的指令碼所輸出的 [Azure 資料總管 URL],以瀏覽至您的 Azure 資料總管環境。
展開叢集節點,然後選取 phonedata 資料庫。 查詢視窗的範圍會變更為
Scope:yourclustername.eastus/phonedata
。在 Azure 資料總管中,開啟新的索引標籤並貼上下列 Kusto 查詢,然後選取 [執行] 以繪製加速計遙測:
['acceleration']
| project EnqueuedTime, Device, X, Y, Z
| render timechart
您可能需要等候數分鐘才能收集足夠的資料。 請嘗試以不同的方向握住手機,以查看遙測值變更:
清除資源
如果您不打算完成任何進一步的 IoT Central 快速入門或教學課程,您可以刪除您的 IoT Central 應用程式:
- 在您的 IoT Central 應用程式中,瀏覽至 [應用程式] > [管理]。
- 選取 [刪除],然後確認您的動作。
若要從訂用帳戶中移除 Azure 資料總管執行個體,並避免不必要地計費,請從 Azure 入口網站刪除 IoTCentralExportData-rg 資源群組,或在 Azure Cloud Shell 中執行下列命令:
az group delete --name IoTCentralExportData-rg
下一步
在本快速入門中,您已了解如何持續將資料從 IoT Central 匯出至另一個 Azure 服務。
現在您已知道如何匯出資料,建議的下一個步驟是: