2017-11-15 2 views
0

からAzure IoT Hubでメッセージを受信し、異なるイベントハブまたはサービスバスのトピックにルーティングしたいと考えています。Azure IoT Hub

IoTハブのルートとエンドポイントは、データがバイナリデータ(protobuf)であり、10種類のエンドポイントしか存在しないため(オプションが必要です)、オプションはありません。ペイロードに基づいて異なるエンドポイントへのルーティングメッセージ

  • を分割

    • は(多分JSON)データを変換
    • (メッセージの異なる部分が異なるエンドポイントにルーティングすることができる):

      当社requierementsがあります追加のペイロードとデータを豊か

    • (オプション)

    私は異なるOを参照しますptions:

    • Azureのストリーム解析
    • Azureの機能
    • スパークまたはFLINK
    • はそれを自分で行います(アプリケーションを作成し、サービスファブリックまたはKubernetsでそれを実行)

    どのtechologyを希望あなたはお勧めですか?

    よろしく、 マルクス

  • +0

    こんにちは。現時点でAzure Stream AnalyticsはJSON、CSV、AVROのみをサポートしているので、バイナリであれば着信メッセージを読み取ることができません。前に変換することができます(例:Azure機能を使用)場合は、ストリームアナリティクスでさらに処理できます。 –

    +0

    データサイズは? –

    +0

    @romanKiss非常に異なるメッセージのために、データサイズによって異なります。しかしgenerellでは、私はそれが小さいと言うでしょう。最大数Kb、最も低くは1 Kb。 – mananana

    答えて

    0

    Azureのイベントグリッドを使用して、あなたのシナリオのための別のオプションもあります。この場合、Azure IoTハブからのテレメトリデータは、カスタムトピックエンドポイントを介してイベントグリッドにプッシュされます。イベントメッセージには64KBなどの制限があります。詳細はhereを参照してください。

    イベントグリッドはイベントハブを無制限に登録できます。イベントグリッドの詳細はherehereです。

    上記に基づいて、以下のスクリーンスニペットは、基本的にあらゆる種類の加入者に対して、10以上のイベントハブに小さなテレメトリデータをルーティングするための別のオプションを示しています。

    enter image description here

    +0

    このオプションをお寄せいただきありがとうございます! メッセージの解析、分割、変換は関数内で行われるでしょうか?なぜ、イベントをイベント・ハブに直接送るのではなく、イベントグリッドにプッシュするのはなぜですか? – mananana

    +0

    はい、AFはバイナリテレメトリデータをjson形式のテキストで小さなイベントの配列に分解する責任があります。これは、AF本体内の適切なエラー処理と非常にスケーラブルな、ステートレスな処理タスクです。上記の解決策では、受信したアレイからの各イベントは、イベントグリッド内の加入者へのサブスクリプションに基づいてルーティングされ、配信されます。これらのイベントをAFからの直接的な多くの異なるイベントハブにプッシュすることは、スケーラビリティ、エラー処理および管理容易性が欠如した強制的なバインディングを使用してのみ行うことができます。 –

    関連する問題