タンブリング ウィンドウ (Azure Stream Analytics)
タンブリング ウィンドウとは、固定サイズで重複しない一連の連続する時間間隔です。 次の図は、一連のイベントを含むストリームと、それらが 10 秒のタンブリング ウィンドウにどのようにマップされるかを示しています。
構文
{TUMBLINGWINDOW | TUMBLING} ( timeunit , windowsize, [offsetsize] )
{TUMBLINGWINDOW | TUMBLING} ( Duration( timeunit , windowsize ), [Offset(timeunit , offsetsize)] )
Note
タンブリング ウィンドウは、上記の 2 つの方法で使用できます。 ホッピング ウィンドウとの一貫性が保たれるようにするには、すべての種類のウィンドウで Duration 関数を使用して、ウィンドウのサイズを指定します。 ウィンドウの期間は、正の float 定数である必要があります。
引数
timeunit
windowsize の時間の単位です。 次の表に有効な timeunit 引数をすべて示します。
Timeunit | 省略形 |
---|---|
day | dd、d |
hour | hh |
minute | mi、n |
second | ss、s |
ミリ秒 | ms |
マイクロ秒 | mcs |
windowsize
ウィンドウのサイズを記述する多倍長整数。 windowsize は静的であり、実行時に動的に変更することはできません。
ウィンドウの最大サイズは 7 日間です。
offsetsize
既定では、タンブリング ウィンドウはウィンドウの最後に含まれており、最初は排他的です 。たとえば、午後 12:00 から午後 1:00 のウィンドウには、正確に午後 1 時に発生したイベントが含まれますが、午後 12:00 に発生したイベントは含まれません (これらのイベントは午前 11 時から午後 12 時のウィンドウの一部になります)。
Offset パラメーターを使用すると、この動作を変更し、ウィンドウの先頭にイベントを含め、最後に発生したイベントを除外できます。
例
SELECT System.Timestamp() AS WindowEnd, TollId, COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY TollId, TumblingWindow(Duration(hour, 1), Offset(millisecond, -1))
SELECT 'reset' AS command
INTO
alert
FROM
temperature TIMESTAMP BY timeCreated
GROUP BY TumblingWindow(second,15)
HAVING Avg(machine.temperature) > 25
時間に関する考慮事項
すべてのウィンドウの演算は、ウィンドウの終了時にイベントを出力します。 Azure Stream Analytics のウィンドウは、ウィンドウの開始時刻に開き、ウィンドウの終了時刻に閉じられます。 たとえば、午前 12:00 から午前 12:05 までの 5 分間のウィンドウがある場合、タイムスタンプが午前 12:00 より大きく、タイムスタンプが 12:05 AM までのすべてのイベントがこのウィンドウに含まれます。 ウィンドウの出力は、ウィンドウの終了時刻と等しいタイムスタンプで使用される集計関数に基づく 1 つのイベントになります。 ウィンドウの出力イベントのタイムスタンプは、エイリアスを使用して System.Timestamp() プロパティを使用して SELECT ステートメントに投影できます。