イベント ハブを使用して Azure Time Series Insights Gen1 環境にイベントを送信する
Note
Time Series Insights サービスは、2024 年 7 月 7 日に廃止されます。 できるだけ早く既存の環境を代替ソリューションに移行することを検討してください。 サポートの終了と移行の詳細については、こちらのドキュメントを参照してください。
注意事項
これは Gen1 の記事です。
この記事では、Azure Event Hubs でイベント ハブを作成して構成する方法について説明します。 また、サンプル アプリケーションを実行し、Event Hubs から Azure Time Series Insights にイベントをプッシュする方法も説明します。 JSON 形式のイベントを含む既存のイベント ハブがある場合は、このチュートリアルをスキップし、Azure Time Series Insights で環境を表示してください。
イベント ハブを構成する
イベント ハブを作成する方法については、Event Hubs のドキュメントをご覧ください。
検索ボックスで、Event Hubs を検索します。 返された一覧で、[Event Hubs] を選択します。
自分のイベント ハブを選択します。
イベント ハブを作成すると、イベント ハブの名前空間が作成されます。 名前空間内にまだイベント ハブを作成していない場合は、メニューの [エンティティ] でイベント ハブを作成します。
イベント ハブを作成した後、イベント ハブの一覧でそれを選択します。
メニューで、[エンティティ] の [イベント ハブ] を選択します。
イベント ハブの名前を選択して構成します。
[概要] で [コンシューマー グループ] を選択し、[コンシューマー グループ] を選択します。
Azure Time Series Insights のイベント ソースで排他的に使用されるコンシューマー グループを作成していることを確認します。
重要
このコンシューマー グループがその他のサービス (Azure Stream Analytics ジョブや別の Azure Time Series Insights 環境など) で使用されていないことをご確認ください。 コンシューマー グループが他のサービスで使用されている場合、この環境と他のサービスの両方で読み取り操作が悪影響を受けます。 コンシューマー グループとして $Default を使用した場合、他の閲覧者がそのコンシューマー グループを再利用する可能性があります。
メニューで、[設定] の [共有アクセス ポリシー] を選択してから、[追加] を選択します。
[新しい共有アクセス ポリシーの追加] ウィンドウで、MySendPolicy という名前の共有アクセス ポリシーを作成します。 後で示す C# の例では、この共有アクセス ポリシーを使用してイベントを送信します。
[要求] で、[送信] チェック ボックスをオンにします。
Azure Time Series Insights のインスタンスを追加する
Azure Time Series Insights Gen 2 では、Time Series Model (TSM) を使用して、受信テレメトリにコンテキスト データを追加できます。 TSM では、タグまたはシグナルは "インスタンス" と呼ばれており、"インスタンス フィールド" にコンテキスト データを格納できます。データはクエリ時にタイム シリーズ ID を使用して結合されます。 この記事の後半で使用するサンプルの風力発電プロジェクトのタイム シリーズ ID は、id
です。 インスタンス フィールドにデータを格納する方法の詳細については、タイム シリーズ モデルの概要を参照してください。
Azure Time Series Insights のイベント ソースを作成する
イベント ソースを作成していない場合は、イベント ソースを作成する手順を実行します。
timeSeriesId
の値を設定します。 時系列 ID について詳しくは、「時系列 モデル」をご覧ください。
風力発電のサンプルにイベントをプッシュする
検索バーで「Event Hubs」を検索します。 返された一覧で、[Event Hubs] を選択します。
自分のイベント ハブ インスタンスを選択します。
[共有アクセス ポリシー]>[MySendPolicy] にアクセスします。 [接続文字列 - 主キー] の値をコピーします。
TSI Sample Wind Farm Pusher に移動します。 このサイトでは、シミュレートされた風力発電デバイスが作成され、実行されます。
Web ページの [イベント ハブ接続文字列] ボックスに、風力発電の入力フィールドでコピーした接続文字列を貼り付けます。
[Click to start]\(クリックして開始\) を選択します。
ヒント
また、風力発電シミュレーターでは、Azure Time Series Insights GA クエリ API でペイロードとして使用できる JSON も作成されます。
Note
シミュレーターは、ブラウザーのタブが閉じられるまでデータを送信し続けます。
Azure portal でイベント ハブに戻ります。 [概要] ページに、イベント ハブによって受信された新しいイベントが表示されます。
サポートされている JSON の形式
例 1
入力: 簡単な JSON オブジェクト。
{ "id":"device1", "timestamp":"2016-01-08T01:08:00Z" }
出力: 1 つのイベント。
ID timestamp device1 2016-01-08T01:08:00Z
例 2
入力: 2 つの JSON オブジェクトを含む JSON 配列。 各 JSON オブジェクトがイベントに変換されます。
[ { "id":"device1", "timestamp":"2016-01-08T01:08:00Z" }, { "id":"device2", "timestamp":"2016-01-17T01:17:00Z" } ]
出力: 2 つのイベント。
ID timestamp device1 2016-01-08T01:08:00Z device2 2016-01-08T01:17:00Z
例 3
入力: 2 つの JSON オブジェクトを含む入れ子になった JSON 配列を含む JSON オブジェクト。
{ "location":"WestUs", "events":[ { "id":"device1", "timestamp":"2016-01-08T01:08:00Z" }, { "id":"device2", "timestamp":"2016-01-17T01:17:00Z" } ] }
出力: 2 つのイベント。 location プロパティが各イベントにコピーされます。
location events.id events.timestamp WestUs device1 2016-01-08T01:08:00Z WestUs device2 2016-01-08T01:17:00Z
例 4
入力: 2 つの JSON オブジェクトを含む入れ子になった JSON 配列を含む JSON オブジェクト。 この入力は、グローバル プロパティが複雑な JSON オブジェクトによって表現できることを示しています。
{ "location":"WestUs", "manufacturer":{ "name":"manufacturer1", "location":"EastUs" }, "events":[ { "id":"device1", "timestamp":"2016-01-08T01:08:00Z", "data":{ "type":"pressure", "units":"psi", "value":108.09 } }, { "id":"device2", "timestamp":"2016-01-17T01:17:00Z", "data":{ "type":"vibration", "units":"abs G", "value":217.09 } } ] }
出力: 2 つのイベント。
location manufacturer.name manufacturer.location events.id events.timestamp events.data.type events.data.units events.data.value WestUs manufacturer1 EastUs device1 2016-01-08T01:08:00Z 気圧 psi 108.09 WestUs manufacturer1 EastUs device2 2016-01-08T01:17:00Z vibration abs G 217.09
次のステップ
- IoT Hub デバイス メッセージの詳細を参照してください。