クイック スタート: 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 アカウント。 無料でアカウントを作成できます。
- Azure IoT Central アプリケーションの作成に関する最初のクイックスタートを完了します。 2 番目のクイックスタート「デバイスのルールとアクションを構成する」は省略可能です。
- 最初のクイックスタート「Azure IoT Central アプリケーションを作成する」で選択した IoT Central アプリケーション URL プレフィックスが必要です。
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 からデータのエクスポート先を構成するには、以下の手順に従います。
- IoT Central アプリケーションの [データのエクスポート] ページに移動します。
- [エクスポート先] タブを選択し、次に [宛先の追加] を選択します。
- エクスポート先の名前として Azure Data Explorer と入力します。 エクスポート先の種類として Azure Data Explorer を選択します。
- [クラスター URL] に、事前に書き留めておいた Azure Data Explorer URL を入力します。
- [データベース名] に、phonedata と入力します。
- [テーブル名] に、acceleration と入力します。
- [承認] で、[システム割り当てマネージド ID] を選択します。
- [保存] を選択します。
データのエクスポートを構成するには、以下の手順を実行します。
[データのエクスポート] ページで、 [エクスポート] タブを選択し、次に [エクスポートの追加] を選択します。
エクスポート名として、「Phone accelerometer」と入力します。
エクスポートするデータの種類として [テレメトリ] を選択します。
次の表の情報を使用して、2 つのフィルターを追加します。
名前 演算子 値 デバイス テンプレート 次の値に等しい IoT Plug and Play モバイル センサー/アクセラレーション/X Exists 該当なし すべての条件が true の場合にデータをエクスポートするオプションが設定されていることを確認します。
送信先として Azure Data Explorer を追加します。
送信先にデータ変換を追加します。 データ変換ページの [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 }
変換のしくみを確認し、クエリを試すには、次のサンプル テレメトリ メッセージを 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 Data Explorer URL を使用して、Azure Data Explorer 環境に移動します。
クラスター ノードを展開し、phonedata データベースを選択します。 クエリ ウィンドウのスコープが
Scope:yourclustername.eastus/phonedata
に変わります。Azure Data Explorer で新しいタブを開き、次の Kusto クエリを貼り付けてから [実行] を選択して加速度計のテレメトリをプロットします。
['acceleration']
| project EnqueuedTime, Device, X, Y, Z
| render timechart
十分なデータが収集されるまで数分かかる場合があります。 電話をさまざまな向きに傾けて、テレメトリ値が変化していることを確認します:
リソースをクリーンアップする
今後 IoT Central のクイックスタートやチュートリアルに取り組む予定がなければ、ここで使用した IoT Central アプリケーションは次の手順で削除してください。
- IoT Central アプリケーションで、[アプリケーション] > [管理]に移動します。
- [削除] を選択して操作を確定します。
ご自身のサブスクリプションから Azure Data Explorer インスタンスを削除し、不要な課金を避けるには、IoTCentralExportData-rg リソース グループを Azure portal から削除するか、以下のコマンドを Azure Cloud Shell で実行します。
az group delete --name IoTCentralExportData-rg
次のステップ
このクイックスタートでは、IoT Central から別の Azure サービスにデータを継続的にエクスポートする方法について説明しました。
これでデータをエクスポートする方法がわかったので、次に以下の手順に進むことをお勧めします。