次の方法で共有


ホッピング ウィンドウ

✅ Azure Stream Analytics ✅ Fabric Eventstream

タンブリング ウィンドウとは異なり、ホッピング ウィンドウ モデルは重なり合うウィンドウをスケジュールします。 ホッピング ウィンドウの仕様は、 timeunitwindowsize (各ウィンドウの存続時間) と ホップサイズ (各ウィンドウが前のウィンドウに対して前方に移動する量) の 3 つのパラメーターで構成されます。 さらに、 offsetsize は省略可能な 4 番目のパラメーターとして使用できます。 タンブリング ウィンドウは、単に "hop" がその 'size' と等しいホッピング ウィンドウであることに注意してください。

次の図は、一連のイベントを含むストリームを示しています。 各ボックスはホッピング ウィンドウと、そのウィンドウの一部としてカウントされるイベントを表します。"hop" が 5 で、'size' が 10 であると仮定します。

Stream Analytics ホッピング ウィンドウダイアグラム

構文

{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 ステートメントに投影できます。