2017-10-26 3 views
0

私は、IOTハブからStreaming Analyticsにデータを送信するセンサーがあります。Azure Streaming Analytics、一定の出力イベントの流れ

パルスがある時間枠、すなわち過去10分間に送信される時間を計算したいと考えています。

私はこのような非常に単純なパケットがあります。

{ 
    "Timestamp": "2017-10-26T13:27:11.1103973", 
    "Pulses": 1 
} 

ものが送信されているが、のは10分の時間枠で3回言ってみましょう。私は次のストリームアナリティクスクエリを使用します:

SELECT 
    SUM(Pulses) as Pulses, 
    System.Timestamp AS WindowEnd 
INTO 
    [RawData-10-Minutes] 
FROM 
    [Input] 
GROUP BY 
    HoppingWindow(Duration(minute, 10), Hop(minute, 1)) 

これは非常にうまくいきます。 10分にはパルスが存在しない場合しかし、私はまだ0パルスの積算値毎分を受け取る期待

[ 
    { 
     "pulses": 2.0, 
     "windowend": "1970-01-01T12:02:00.0000000Z" 
    }, 
    { 
     "pulses": 2.0, 
     "windowend": "1970-01-01T12:03:00.0000000Z" 
    }, 
    { 
     "pulses": 3.0, 
     "windowend": "1970-01-01T12:04:00.0000000Z" 
    } 
] 

:私は最後の10分あたりのパルスの合計で1分ごとにデータの素敵な流れを得ます。しかし、そうではありません。

この問題は、Power BIレポートに「Last Value」と表示されていることです。このレポートには、過去10分間のXパルスが表示されます。しかし、パルスがない場合、値は最後の結果にとどまりますが、これは正しくありません。

ストリームアナリティクスからの着信メッセージがなくても、1分間に通常のデータストリームを送信できますか?

答えて

2

入力イベントなしで出力を生成することは現在のところ不可能です。上記のシナリオを達成するには、同じストリーム内に1分ごとに存在することが保証された[ハートビート]イベントを出すか、ハートビートの別のストリームを持ち、そのストリームとの結合を残します。これらの両方のケースでは、入力イベントが毎分に強制さ​​れています。

もう1つの選択肢は、出力データソースでサポートされている場合はこれを処理することです。たとえば、到着率を知っている場合は、一定時間が経過した後の行の不足を「ゼロ」として扱うクエリを記述することができます。

関連する問題