ウィンドウ関数 (Azure Stream Analytics)

リアルタイム イベントを処理するアプリケーションでは、一定期間内に含まれるイベントのサブセットに対して、一部のセットベースの計算 (集計) またはその他の操作を実行するのが一般的です。 複合イベント処理システムには時間の概念が不可欠であるため、システム内のクエリ ロジックの時間コンポーネントを簡単に使用できることが重要です。 Azure Stream Analytics では、このようなイベントのサブセットがウィンドウで定義され、時間ごとのグループ化を表します。 この記事では、ウィンドウとその定義方法について説明し、サポートされているウィンドウの種類を特定し、さまざまな演算子でウィンドウを使用する方法について説明します。

ウィンドウについて

ウィンドウには、タイムラインに沿ったイベント データが含まれています。これを使用して、そのウィンドウ内のイベントに対してさまざまな演算を実行できます。 たとえば、次の図に示すように、特定のウィンドウ内のペイロード フィールドの値を合計することもできます。

Stream Analytics クエリ言語タンブリング ウィンドウ

すべてのウィンドウ操作は、ウィンドウの最後にイベントを出力します。 Azure Stream Analytics のウィンドウは、ウィンドウの開始時刻に開き、ウィンドウの終了時刻に閉じられます。 たとえば、午前 12:00 から午前 12:05 まで 5 分のウィンドウがある場合、タイムスタンプが午前 12:00 より大きく、タイムスタンプが 12:05 AM までのイベントはすべて、このウィンドウに含まれます。 ウィンドウの出力は、ウィンドウの終了時刻と等しいタイムスタンプで使用される集計関数に基づく 1 つのイベントになります。 ウィンドウの出力イベントのタイムスタンプは、エイリアスを使用して System.Timestamp() プロパティを使用して SELECT ステートメントに投影できます。 すべてのウィンドウは、0 時に自動整列します。 たとえば、5 分間のタンブリング ウィンドウは、それ自体が (12:00-12:05] 、 (12:05-12:10]、...など) に揃えられます。

ウィンドウ操作の後、イベントのタイムスタンプは、元のイベント時刻属性 ( 到着時刻 または TIMESTAMP BY で使用される列) とは異なります。 イベントの現在の更新されたタイムスタンプには、 常に system.timestamp() を使用してアクセスできます。

注意

すべてのウィンドウは GROUP BY 句で使用します。

ウィンドウには次の 5 種類があります。

  1. タンブリング ウィンドウ (Azure Stream Analytics)

  2. ホッピング ウィンドウ (Azure Stream Analytics)

  3. スライディング ウィンドウ (Azure Stream Analytics)

  4. セッション ウィンドウ (Azure Stream Analytics)

  5. スナップショット ウィンドウ (Azure Stream Analytics)

すべてのケースでウィンドウの最大サイズは 7 日間です。

Windows (Azure Stream Analytics) 関数を使用して、同じ GROUP BY ステートメントで複数の時間枠にわたって集計できます。

参照

組み込み関数 (Azure Stream Analytics)
集計関数 (Azure Stream Analytics)
分析関数 (Azure Stream Analytics)
配列関数 (Stream Analytics)
変換関数 (Azure Stream Analytics)
日付と時刻の関数 (Azure Stream Analytics)
Record Functions (Azure Stream Analytics)