2017-09-10 3 views
0

アプリケーションでは、複数のIoTデバイスがIoTハブにデータを公開します。彼らは部屋でいくつかの読書を出す(例:電力使用)。 ここでは、1時間前の領域で消費された総エネルギーを調べてログに記録するという要件があります。タンブルウィンドウを使用したAzureストリーム分析クエリ

午前8時にスイッチが入れられ、60ワットの電力を消費する電球があり、それが8時20分に10分間スイッチオフされたとします。 8時30分に、それは40ワットの電力使用量で淡色にスイッチオンされた。したがって、午前8時から午前9時の間に消費されるエネルギー(ワット/時間)は、

60 * 20/60(午前8時〜午前8時20分)+0(8時20分〜8時30分)+40 * 30/60(8:30〜9:00)= 40ワット/時。

どのようにしてストリーム分析クエリを作成できますか(これを実現するためにタンブリングウィンドウを使用)。

答えて

0

HoppingWindowを使用すると、デバイスからの最新の信号を1分ごとに繰り返してイベントを生成し、TumblingWindowを使用して時間単位の集計を取得できます。

-- First query produces event every minute with latest known value up to 1 hour back 
WITH MinuteData AS 
(
SELECT deviceId, TopOne() OVER (ORDER BY ts DESC) AS lastRecord 
FROM input TIMESTAMP BY ts 
GROUP BY deviceId, HoppinWindow(miute, 1, 60) 
) 

SELECT 
deviceId, 
SUM(lastRecord.wat)/60 
FROM MinuteData 
GROUP BY deviceId, TumblingWindow(hour, 1) 
関連する問題