ホッピング ウィンドウ (Azure Stream Analytics)
タンブリング ウィンドウとは異なり、ホッピング ウィンドウ モデルは重複するウィンドウをスケジュールしました。 ホッピング ウィンドウの仕様は、 timeunit、 windowsize (各ウィンドウの有効期間) と ホップサイズ (各ウィンドウが前のウィンドウに対して前方に移動する量) の 3 つのパラメーターで構成されます。 さらに、 offsetsize は省略可能な 4 番目のパラメーターとして使用できます。 タンブリング ウィンドウは、単に "ホップ" が "サイズ" と同じホッピング ウィンドウです。
次の図は、一連のイベントがあるストリームを示しています。 各ボックスは、ホッピング ウィンドウと、そのウィンドウの一部としてカウントされるイベントを示しています。"ホップ" は 5、"サイズ" は 10 と想定されています。
構文
{HOPPINGWINDOW | HOPPING} ( timeunit , windowsize , hopsize, [offsetsize] )
{HOPPINGWINDOW | HOPPING} ( Duration( timeunit , windowsize ) , Hop (timeunit , windowsize ), [Offset(timeunit , offsetsize)])
Note
ホッピング ウィンドウは、前述の 2 つの方法で使用できます。 windowsize と hopsize の timeunit が同じ場合、Duration 関数と Hop 関数なしで使用できます。 また、Duration 関数は、他の種類のウィンドウと共に使用してウィンドウ サイズを指定することもできます。
引数
timeunit
windowsize または hopsize の時間の単位です。 次の表に、有効なすべての timeunit 引数の一覧を示します。
Timeunit | 省略形 |
---|---|
day | dd、d |
hour | hh |
minute | mi、n |
second | ss、s |
ミリ秒 | ms |
マイクロ秒 | mcs |
windowsize
ウィンドウのサイズを記述する多倍長整数。 windowsize は静的であり、実行時に動的に変更することはできません。
すべてのケースでウィンドウの最大サイズは 7 日間です。
hopsize
ホップのサイズを表す大きな整数。
offsetsize
既定では、ホッピング ウィンドウはウィンドウの最後に含まれており、最初は排他的です 。たとえば、午後 12:05 から午後 1:05 のウィンドウには、午後 1 時 05 分に発生したイベントは含まれますが、午後 12:05 に発生したイベントは含まれません (これらのイベントは午後 12:00 から午後 01:00 ウィンドウの一部になります)。
Offset パラメーターを使用すると、動作を変更し、ウィンドウの先頭にイベントを含め、最後に発生したイベントを除外できます。
例
SELECT System.Timestamp() AS WindowEnd, TollId, COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY TollId, HoppingWindow(Duration(hour, 1), Hop(minute, 5), Offset(millisecond, -1))
時間の考慮事項
すべてのウィンドウ操作は、ウィンドウの最後にイベントを出力します (ホッピング ウィンドウの場合、これはすべてのホップ サイズで発生します)。 Azure Stream Analytics のウィンドウは、ウィンドウの開始時刻に開き、ウィンドウの終了時刻に閉じられます。 たとえば、午前 12:00 から午前 12:05 までの 5 分間のウィンドウがある場合、タイムスタンプが午前 12:00 より大きく、タイムスタンプが 12:05 AM までのすべてのイベントがこのウィンドウに含まれます。 ウィンドウの出力は、ウィンドウの終了時刻と等しいタイムスタンプで使用される集計関数に基づく 1 つのイベントになります。 ウィンドウの出力イベントのタイムスタンプは、エイリアスを使用して System.Timestamp() プロパティを使用して SELECT ステートメントに投影できます。