次の方法で共有


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

このクイック スタートでは、データ Azure Data Explorer をエクスポートするように IoT Central アプリケーションを構成します。 Azure Data Explorer を使用すると、 IoT プラグ アンド プレイ スマートフォン アプリなどのデバイスからのテレメトリを格納、クエリ、および処理できます。

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

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

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

[前提条件]

  • 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 スクリプトを実行して作成し、構成します。

このスクリプトは、次の手順を完了します。

  • 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

Important

このスクリプトの実行には 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 つのフィルターを追加します。

    名前 Operator 価値
    デバイス テンプレート 次の値に等しい 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": "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": {}
    }
    
  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 portal から IoTCentralExportData-rg リソース グループを削除するか、Azure Cloud Shell で次のコマンドを実行します。

az group delete --name IoTCentralExportData-rg

次のステップ

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

データをエクスポートする準備ができました。推奨される次の手順は次のとおりです。