快速入門:從 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 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 設定資料匯出目的地:

  1. 流覽至 IoT Central 應用程式中 的 [資料匯出 ] 頁面。
  2. 選取 [ 目的地] 索引標籤 ,然後 選取 [新增目的地]。
  3. 輸入Azure Data Explorer作為目的地名稱。 選取 [Azure 資料總管] 做為目的地類型。
  4. [叢集 URL] 中,輸入您先前記下的Azure Data Explorer URL
  5. [資料庫名稱] 中,輸入 phonedata
  6. [資料表名稱] 中,輸入 加速
  7. [授權] 中,選取 [ 系統指派的受控識別]。
  8. 選取 [儲存]。

若要設定資料匯出:

  1. 在 [ 資料匯出] 頁面上,選取 [ 匯出 ] 索引標籤,然後 選取 [新增匯出]。

  2. 輸入 電話加速計 作為匯出名稱。

  3. 選取 [ 遙測 ] 作為要匯出的資料類型。

  4. 使用下表中的資訊來新增兩個篩選:

    名稱 運算子
    裝置範本 Equals IoT 隨插即用行動裝置版
    感應器/加速/X Exists N/A

    如果已設定所有條件為 true,請確定匯出資料的選項。

  5. Azure Data Explorer新增為目的地。

  6. 將資料轉換新增至目的地。 在 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": {}
    }
    
  7. 儲存轉換。 然後儲存資料匯出定義。

等到匯出狀態顯示 狀況良好

顯示狀態良好之執行中資料匯出的螢幕擷取畫面。

查詢匯出的資料

若要查詢匯出的遙測:

  1. 使用您先前執行的腳本所輸出的Azure Data Explorer URL,流覽至您的 Azure Data Explorer 環境。

  2. 展開叢集節點,然後選取 phonedata 資料庫。 查詢視窗的範圍會變更為 Scope:yourclustername.eastus/phonedata

  3. 在 Azure Data Explorer中,開啟新的索引標籤並貼上下列 Kusto 查詢,然後選取 [執行] 以繪製加速計遙測:

['acceleration'] 
    | project EnqueuedTime, Device, X, Y, Z
    | render timechart 

您可能需要等候數分鐘才能收集足夠的資料。 請嘗試以不同的方向按住手機,以查看遙測值變更:

加速計遙測查詢結果的螢幕擷取畫面。

清除資源

如果您不打算完成任何進一步的 IoT Central 快速入門或教學課程,您可以刪除 IoT Central 應用程式:

  1. 在您的 IoT Central 應用程式中,流覽至 [應用程式 > 管理]。
  2. 選取 [刪除 ],然後確認您的動作。

若要從訂用帳戶中移除 Azure Data Explorer 實例,並避免不必要的計費,請從Azure 入口網站刪除IoTCentralExportData-rg資源群組,或在 Azure Cloud Shell中執行下列命令:

az group delete --name IoTCentralExportData-rg

下一步

在本快速入門中,您已瞭解如何持續將資料從 IoT Central 匯出到另一個 Azure 服務。

現在您已知道要匯出資料,建議的下一個步驟是: