✅ Azure Stream Analytics ✅ Fabric Eventstream
タンブリング ウィンドウとは異なり、ホッピング ウィンドウ モデルは重なり合うウィンドウをスケジュールします。 ホッピング ウィンドウの仕様は、 timeunit、 windowsize (各ウィンドウの存続時間) と ホップサイズ (各ウィンドウが前のウィンドウに対して前方に移動する量) の 3 つのパラメーターで構成されます。 さらに、 offsetsize は省略可能な 4 番目のパラメーターとして使用できます。 タンブリング ウィンドウは、単に "hop" がその 'size' と等しいホッピング ウィンドウであることに注意してください。
次の図は、一連のイベントを含むストリームを示しています。 各ボックスはホッピング ウィンドウと、そのウィンドウの一部としてカウントされるイベントを表します。"hop" が 5 で、'size' が 10 であると仮定します。
構文
{HOPPINGWINDOW | HOPPING} ( timeunit , windowsize , hopsize, [offsetsize] )
{HOPPINGWINDOW | HOPPING} ( Duration( timeunit , windowsize ) , Hop (timeunit , windowsize ), [Offset(timeunit , offsetsize)])
注
ホッピング ウィンドウは、上記の 2 つの方法で使用できます。 ウィンドウサイズとホップサイズに同じタイムユニットがある場合は、Duration 関数と Hop 関数なしで使用できます。 Duration 関数は、他の種類のウィンドウと共に使用して、ウィンドウ サイズを指定することもできます。
論争
timeunit
ウィンドウサイズまたはホップサイズの時間の単位です。 次の表に、有効なすべての timeunit 引数を示します。
| Timeunit | 略語 |
|---|---|
| 日 | dd、d |
| 時間 | hh |
| 分 | mi、n |
| 秒 | ss、s |
| ミリ秒 | さん |
| マイクロ秒 | mcs |
windowsize
ウィンドウのサイズを表す大きな整数。 windowsize は静的であり、実行時に動的に変更することはできません。
すべての場合のウィンドウの最大サイズは 7 日です。
hopsize
ホップのサイズを表す大きな整数。
offsetsize
既定では、ホッピング ウィンドウはウィンドウの末尾に含まれており、最初は排他的です 。たとえば、午後 12:05 から午後 1:05 のウィンドウには、正確に午後 1 時 05 分に発生したイベントが含まれますが、午後 12:05:PM に発生したイベントは含まれません (これらのイベントは午後 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 AM より大きく、タイムスタンプが 12:05 AM までのすべてのイベントがこのウィンドウに含まれます。 ウィンドウの出力は、ウィンドウの終了時刻と等しいタイムスタンプで使用される集計関数に基づく 1 つのイベントになります。 ウィンドウの出力イベントのタイムスタンプは、エイリアスを使用して System.Timestamp() プロパティを使用して SELECT ステートメントに投影できます。