クイック スタート: IoT Central アプリケーションからデータをエクスポートする

このクイックスタートでは、データ Azure Data Explorer をエクスポートするように IoT Central アプリケーションを構成します。 Azure Data Explorer を使用すると、IoT Plug and Play スマートフォン アプリなどのデバイスから取得したテレメトリを保存、照会、処理することができます。

このクイック スタートでは次の作業を行います。

  • IoT Central のデータ エクスポート機能を使用して、テレメトリをスマートフォン アプリから Azure Data Explorer データベースにエクスポートします。
  • Azure Data Explorer を使用してテレメトリに対するクエリを実行します。

このクイック スタートを完了すると、Azure Data Explorer インスタンスの Azure アカウントでわずかなコストが発生します。 IoT Central アプリケーションの最初の 2 つのデバイスは無料です。

前提条件

  • 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 サービスをインストールする

IoT Central アプリケーションからデータをエクスポートするには、まず Azure Data Explorer クラスターとデータベースを用意する必要があります。 このクイックスタートでは、Azure Cloud Shell で Bash スクリプトを実行して、これらの作成と構成を行います。

スクリプトでは次の手順を行います。

  • REST API 呼び出しを認証するためのベアラー トークンを生成できるように、Azure サブスクリプションにサインインするように求められます。
  • Azure Data Explorer クラスターとデータベースを作成します。
  • IoT Central アプリケーションのマネージド ID を作成します。
  • Azure Data Explorer データベースにアクセスするためのアクセス許可を持つマネージド ID を構成します。
  • 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 Data Explorer クラスターの一意の名前に置き換えます。 クラスター名に使用できるのは、小文字と数字だけです。 クラスター名の長さは 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 Data Explorer を選択します。
  4. [クラスター URL] に、事前に書き留めておいた Azure Data Explorer URL を入力します。
  5. [データベース名] に、phonedata と入力します。
  6. [テーブル名] に、acceleration と入力します。
  7. [承認] で、[システム割り当てマネージド ID] を選択します。
  8. [保存] を選択します。

データのエクスポートを構成するには、以下の手順を実行します。

  1. [データのエクスポート] ページで、 [エクスポート] タブを選択し、次に [エクスポートの追加] を選択します。

  2. エクスポート名として、「Phone accelerometer」と入力します。

  3. エクスポートするデータの種類として [テレメトリ] を選択します。

  4. 次の表の情報を使用して、2 つのフィルターを追加します。

    名前 演算子
    デバイス テンプレート 次の値に等しい IoT Plug and Play モバイル
    センサー/アクセラレーション/X Exists 該当なし

    すべての条件が true の場合にデータをエクスポートするオプションが設定されていることを確認します。

  5. 送信先として Azure Data Explorer を追加します。

  6. 送信先にデータ変換を追加します。 データ変換ページ[2. Build transformation query](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 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 

十分なデータが収集されるまで数分かかる場合があります。 電話をさまざまな向きに傾けて、テレメトリ値が変化していることを確認します:

Screenshot of the query results for the accelerometer telemetry.

リソースをクリーンアップする

今後 IoT Central のクイックスタートやチュートリアルに取り組む予定がなければ、ここで使用した IoT Central アプリケーションは次の手順で削除してください。

  1. IoT Central アプリケーションで、[アプリケーション] > [管理]に移動します。
  2. [削除] を選択して操作を確定します。

ご自身のサブスクリプションから Azure Data Explorer インスタンスを削除し、不要な課金を避けるには、IoTCentralExportData-rg リソース グループを Azure portal から削除するか、以下のコマンドを Azure Cloud Shell で実行します。

az group delete --name IoTCentralExportData-rg

次のステップ

このクイックスタートでは、IoT Central から別の Azure サービスにデータを継続的にエクスポートする方法について説明しました。

これでデータをエクスポートする方法がわかったので、次に以下の手順に進むことをお勧めします。