共用方式為


快速入門:從 IoT Central 應用程式匯出資料

開始使用 IoT Central 資料匯出,以整合 IoT Central 應用程式與另一個雲端服務,例如 Azure 資料總管。 Azure 資料總管可讓您儲存、查詢及處理來自 [IoT 隨插即用] 智慧型應用程式等裝置的遙測資料。

在本快速入門中,您將:

  • 使用 IoT Central 中的資料匯出功能,將來自智慧型應用程式的遙測資料傳送至 Azure 資料總管資料庫。
  • 使用 Azure 資料總管對遙測執行查詢。

完成本快速入門會對 Azure 資料總管執行個體的 Azure 帳戶產生少量費用。 IoT Central 應用程式中的前兩個裝置是免費的。

必要條件

安裝 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 設定資料匯出目的地:

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

若要設定資料匯出:

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

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

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

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

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

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

  5. 新增 Azure 資料總管做為目的地。

  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
    }
    

    Screenshot that shows the data transformation query for the export.

    如果您要查看轉換的運作方式,並實驗查詢,請將下列範例遙測訊息貼到 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. 儲存轉換。 然後儲存資料匯出定義。

等到匯出狀態顯示 [狀況良好] 為止:

Screenshot that shows a running data export with the healthy status.

查詢匯出的資料

若要查詢匯出的遙測:

  1. 使用您先前執行的指令碼所輸出的 [Azure 資料總管 URL],以瀏覽至您的 Azure 資料總管環境。

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

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

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

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

Screenshot of the query results for the accelerometer telemetry.

清除資源

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

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

若要從訂用帳戶中移除 Azure 資料總管執行個體,並避免不必要地計費,請從 Azure 入口網站刪除 IoTCentralExportData-rg 資源群組,或在 Azure Cloud Shell 中執行下列命令:

az group delete --name IoTCentralExportData-rg

下一步

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

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