イベント ハブを使用して Azure Time Series Insights Gen1 環境にイベントを送信する

注意

Time Series Insights (TSI) サービスは、2025 年 3 月以降はサポートされなくなります。 できるだけ早く既存の TSI 環境を代替ソリューションに移行することを検討してください。 サポートの終了と移行の詳細については、こちらのドキュメントを参照してください。

注意事項

これは Gen1 の記事です。

この記事では、Azure Event Hubs でイベント ハブを作成して構成する方法について説明します。 また、サンプル アプリケーションを実行し、Event Hubs から Azure Time Series Insights にイベントをプッシュする方法も説明します。 JSON 形式のイベントを含む既存のイベント ハブがある場合は、このチュートリアルをスキップし、Azure Time Series Insights で環境を表示してください。

イベント ハブを構成する

  1. イベント ハブを作成する方法については、Event Hubs のドキュメントをご覧ください。

  2. 検索ボックスで、Event Hubs を検索します。 返された一覧で、 [Event Hubs] を選択します。

  3. 自分のイベント ハブを選択します。

  4. イベント ハブを作成すると、イベント ハブの名前空間が作成されます。 名前空間内にまだイベント ハブを作成していない場合は、メニューの [エンティティ] でイベント ハブを作成します。

    イベント ハブの一覧

  5. イベント ハブを作成した後、イベント ハブの一覧でそれを選択します。

  6. メニューで、 [エンティティ][イベント ハブ] を選択します。

  7. イベント ハブの名前を選択して構成します。

  8. [概要][コンシューマー グループ] を選択し、 [コンシューマー グループ] を選択します。

    コンシューマー グループを作成する

  9. Azure Time Series Insights のイベント ソースで排他的に使用されるコンシューマー グループを作成していることを確認します。

    重要

    このコンシューマー グループがその他のサービス (Azure Stream Analytics ジョブや別の Azure Time Series Insights 環境など) で使用されていないことをご確認ください。 コンシューマー グループが他のサービスで使用されている場合、この環境と他のサービスの両方で読み取り操作が悪影響を受けます。 コンシューマー グループとして $Default を使用した場合、他の閲覧者がそのコンシューマー グループを再利用する可能性があります。

  10. メニューで、 [設定][共有アクセス ポリシー] を選択してから、 [追加] を選択します。

    [共有アクセス ポリシー] を選んでから、[追加] ボタンを選択する

  11. [新しい共有アクセス ポリシーの追加] ウィンドウで、MySendPolicy という名前の共有アクセス ポリシーを作成します。 後で示す C# の例では、この共有アクセス ポリシーを使用してイベントを送信します。

    [ポリシー名] ボックスに「MySendPolicy」と入力する

  12. [要求] で、 [送信] チェック ボックスをオンにします。

Azure Time Series Insights のインスタンスを追加する

Azure Time Series Insights Gen 2 では、Time Series Model (TSM) を使用して、受信テレメトリにコンテキスト データを追加できます。 TSM では、タグまたはシグナルは "インスタンス" と呼ばれており、"インスタンス フィールド" にコンテキスト データを格納できます。データはクエリ時にタイム シリーズ ID を使用して結合されます。 この記事の後半で使用するサンプルの風力発電プロジェクトのタイム シリーズ ID は、 です。 インスタンス フィールドにデータを格納する方法の詳細については、タイム シリーズ モデルの概要を参照してください。

Azure Time Series Insights のイベント ソースを作成する

  1. イベント ソースを作成していない場合は、イベント ソースを作成する手順を実行します。

  2. timeSeriesId の値を設定します。 時系列 ID について詳しくは、「時系列 モデル」をご覧ください。

風力発電のサンプルにイベントをプッシュする

  1. 検索バーで「Event Hubs」を検索します。 返された一覧で、 [Event Hubs] を選択します。

  2. 自分のイベント ハブ インスタンスを選択します。

  3. [共有アクセス ポリシー][MySendPolicy] にアクセスします。 [接続文字列 - 主キー] の値をコピーします。

    主キーの接続文字列の値をコピーする

  4. TSI Sample Wind Farm Pusher に移動します。 このサイトでは、シミュレートされた風力発電デバイスが作成され、実行されます。

  5. Web ページの [イベント ハブ接続文字列] ボックスに、風力発電の入力フィールドでコピーした接続文字列を貼り付けます。

    [イベント ハブ接続文字列] ボックスに主キーの接続文字列を貼り付ける

  6. [Click to start](クリックして開始) を選択します。

    ヒント

    また、風力発電シミュレーターでは、Azure Time Series Insights GA クエリ API でペイロードとして使用できる JSON も作成されます。

    Note

    シミュレーターは、ブラウザーのタブが閉じられるまでデータを送信し続けます。

  7. 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 pressure psi 108.09
    WestUs manufacturer1 EastUs device2 2016-01-08T01:17:00Z vibration abs G 217.09

次のステップ