2017-12-15 4 views
0

IoTセンサーは10分ごとに1kHzで1000回測定し、10個の別々のメッセージで値をAzure IoT Hubに送信します。私は、10個の別々のメッセージをさらに処理するために1つに戻して連結することになっています。 RMSとFFTを計算する。すべての10を受信した後、Azure Stream AnalyticsによるIoTメッセージのデータの連結

{ 
    "SampleID" : 12344, 
    "PartionIdx" : 2, 
    "NbrPartitions": 10, 
    "Values" : [12,13,14,13,12,11,10,9] 
} 

したがって、同じSampleIDを有するすべてのメッセージの値はPartitionIdx順序によって一緒に連結されるべきである:

メッセージは、以下の構造を有しています。ストリームアナリティクスを使用しようとしましたが失敗しました。

これはStream Analyticsにとって非常に複雑な作業ですか? 「はい」の場合は、連結を行うWebジョブをコーディングする以外のオプションがありますか?

+0

こんにちは、収集機能(https://msdn.microsoft.com/en-us/library/azure/mt732314.aspx)を使用して、必要な時間枠にわたって1のすべてのメッセージを連結することができます。計算を実行するには、ユーザー定義集計を作成します(https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-javascript-user-defined-aggregates)。クエリを作成するためのヘルプが必要な場合はお知らせください。 –

答えて

0

すべての値が到着した時に知っ質問

  1. には2つの側面があります。
  2. これらを連結します。
1の場合

、 Idは常にeventhubするために、同じeventhubパーティションに到着したか、データがいかにアウトオブオーダーについての考えを持っている場合、あなたはTIMESTAMP BY OVERを使用することができ、特定のデバイスのためのイベントの場合()句を使用して、すべてのデバイスに異なるタイムラインを作成します。これにより、そのパーティションからの十分なデータが受信されるまで、deviceIdの出力がブロックされます。

2の場合、@ js-azureのようにCollect()を使用できます。レコードの配列ではなく特定の形式でデータをフォーマットする場合は、javacript aggregatesを使用できます。

関連する問題