快速入門:從 IoT Central 應用程式匯出資料
開始使用 IoT Central 資料匯出,將您的 IoT Central 應用程式與其他雲端服務整合,例如 Azure Data Explorer。 Azure Data Explorer可讓您儲存、查詢及處理來自裝置的遙測,例如IoT 隨插即用智慧型手機應用程式。
在本快速入門中,您已:
- 使用 IoT Central 中的資料匯出功能,將遙測從智慧型手機應用程式匯出至 Azure Data Explorer 資料庫。
- 使用 Azure Data Explorer在遙測上執行查詢。
完成本快速入門會在 Azure Data Explorer 實例的 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 Data Explorer叢集和資料庫,才能從 IoT Central 應用程式匯出資料。 在本快速入門中,您會在Azure Cloud Shell中執行 bash 腳本,以建立和設定它們。
該指令碼會完成下列步驟:
- 提示您登入 Azure 訂用帳戶,以便產生持有人權杖來驗證 REST API 呼叫。
- 建立 Azure Data Explorer叢集和資料庫。
- 建立 IoT Central 應用程式的受控識別。
- 使用存取 Azure Data Explorer 資料庫的許可權來設定受控識別。
- 將資料表新增至資料庫,以儲存來自 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
使用下列命令執行指令碼:
- 以 Azure Data Explorer 叢集的唯一名稱取代
CLUSTER_NAME
。 叢集名稱只能包含小寫字母和數位。 叢集名稱的長度必須介於 4 到 22 個字元之間。 - 將 取代
CENTRAL_URL_PREFIX
為您在 IoT Central 應用程式的第一個快速入門中選擇的 URL 前置詞。 - 出現提示時,請依照指示登入您的帳戶。 腳本必須登入,因為它會產生持有人權杖來驗證 REST API 呼叫。
./createADX.sh CLUSTER_NAME CENTRAL_URL_PREFIX
重要
此腳本可能需要 20 到 30 分鐘才能執行。
記下腳本所輸出的Azure Data Explorer URL。 您稍後會在快速入門中使用此值。
設定資料匯出
若要從 IoT Central 設定資料匯出目的地:
- 流覽至 IoT Central 應用程式中 的 [資料匯出 ] 頁面。
- 選取 [ 目的地] 索引標籤 ,然後 選取 [新增目的地]。
- 輸入Azure Data Explorer作為目的地名稱。 選取 [Azure 資料總管] 做為目的地類型。
- 在[叢集 URL] 中,輸入您先前記下的Azure Data Explorer URL。
- 在 [資料庫名稱] 中,輸入 phonedata。
- 在 [資料表名稱] 中,輸入 加速。
- 在 [授權] 中,選取 [ 系統指派的受控識別]。
- 選取 [儲存]。
若要設定資料匯出:
在 [ 資料匯出] 頁面上,選取 [ 匯出 ] 索引標籤,然後 選取 [新增匯出]。
輸入 電話加速計 作為匯出名稱。
選取 [ 遙測 ] 作為要匯出的資料類型。
使用下表中的資訊來新增兩個篩選:
名稱 運算子 值 裝置範本 Equals IoT 隨插即用行動裝置版 感應器/加速/X Exists N/A 如果已設定所有條件為 true,請確定匯出資料的選項。
將Azure Data Explorer新增為目的地。
將資料轉換新增至目的地。 在 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 Data Explorer URL,流覽至您的 Azure Data Explorer 環境。
展開叢集節點,然後選取 phonedata 資料庫。 查詢視窗的範圍會變更為
Scope:yourclustername.eastus/phonedata
。在 Azure Data Explorer中,開啟新的索引標籤並貼上下列 Kusto 查詢,然後選取 [執行] 以繪製加速計遙測:
['acceleration']
| project EnqueuedTime, Device, X, Y, Z
| render timechart
您可能需要等候數分鐘才能收集足夠的資料。 請嘗試以不同的方向按住手機,以查看遙測值變更:
清除資源
如果您不打算完成任何進一步的 IoT Central 快速入門或教學課程,您可以刪除 IoT Central 應用程式:
- 在您的 IoT Central 應用程式中,流覽至 [應用程式 > 管理]。
- 選取 [刪除 ],然後確認您的動作。
若要從訂用帳戶中移除 Azure Data Explorer 實例,並避免不必要的計費,請從Azure 入口網站刪除IoTCentralExportData-rg資源群組,或在 Azure Cloud Shell中執行下列命令:
az group delete --name IoTCentralExportData-rg
下一步
在本快速入門中,您已瞭解如何持續將資料從 IoT Central 匯出到另一個 Azure 服務。
現在您已知道要匯出資料,建議的下一個步驟是: