在本快速入門中,您會設定 IoT Central 應用程式以匯出資料 Azure 資料總管。 Azure 資料總管可讓您儲存、查詢及處理來自 IoT 隨插即用 智慧型手機應用程式等裝置的遙測。
在本快速入門中,您將:
- 使用 IoT Central 中的資料匯出功能,將遙測從智慧型手機應用程式傳送至 Azure 資料總管資料庫。
- 使用 Azure 資料總管在遙測上執行查詢。
完成本快速入門會對 Azure 資料總管執行個體的 Azure 帳戶產生少量費用。 IoT Central 應用程式中的前兩個裝置是免費的。
先決條件
- 具有有效訂閱的 Azure 帳戶。 免費建立帳戶。
- 完成第一個快速入門:快速入門 - 使用智慧型手機作為裝置將遙測傳送至 IoT Central 應用程式 (部分機器翻譯) 第二個快速入門,快速入門:在 Azure IoT Central 中設定裝置的規則和動作,是選擇性的。
- 您需要在第一個快速入門:快速入門 - 使用智慧型手機作為裝置將遙測傳送至 IoT Central 應用程式 (部分機器翻譯) 中選擇的 IoT Central 應用程式 URL 前置詞。
使用 Azure Cloud Shell 中的 Bash 環境。 如需詳細資訊,請參閱開始使用 Azure Cloud Shell。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱 如何在 Docker 容器中執行 Azure CLI。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱 使用 Azure CLI 向 Azure 進行驗證。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能的詳細資訊,請參閱 使用和管理 Azure CLI 的擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
安裝 Azure 服務
在您從 IoT Central 應用程式匯出資料之前,需要擁有 Azure Data Explorer 叢集和資料庫。 在本快速入門中,您會在 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。
- 在 [資料表名稱] 中,輸入 acceleration。
- 在 [授權] 中,選取 [系統指派的受控識別]。
- 選取 [儲存]。
若要設定資料匯出:
在 [ 資料匯出 ] 頁面上,選取 [ 匯出 ] 索引標籤,然後選取 [ 新增匯出]。
輸入 電話加速度計 作為匯出名稱。
選取 [遙測] 作為要匯出的資料類型。
使用下表中的資訊來新增兩個篩選器:
名稱 Operator 價值觀 裝置範本 Equals 物聯網即插即用移動 感測器/加速度/X Exists N/A 請確定已設定在所有條件都成立時匯出資料的選項。
將 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": "00001111-aaaa-2222-bbbb-3333cccc4444", "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 服務。
現在您現在知道要匯出資料,建議的下一步是: