Atlas Stream Processing Windowsは、データストリームの時間指定されたサブセットをキャプチャする集計パイプライン ステージであり、ストリーミング データに対して一定の入力を必要とする操作を実行できます。
ここで説明されているストリーム プロセッサの例について考えてみましょう。 $matchステージは$sourceによって取り込まれたデータのストリームを直接操作し、ストリーム プロセッサが取り込む各ドキュメントを一致条件でチェックします。
一方、 $groupステージとそれに含まれるさまざまな統計計算は、無制限データでは実行できません。最小値、最大値、平均値、中央値を決定するには、まず考慮する値のセットを制限する必要があるためです。 $pushや$topなどの多くの非数学演算子でも、境界のあるデータが必要です。
ストリーム プロセッサは、これらの限界を ウィンドウで提供します。 ウィンドウが開き、ストリーム プロセッサが取り込むすべてのドキュメントは、事前定義された時間が経過してウィンドウが閉じられるまで、そのウィンドウの状態に蓄積されます。 ウィンドウは、その間隔中にキャプチャしたすべてのドキュメントをバッチし、このセットを内部パイプラインに渡します。 このパイプライン内では、バッチ処理されたドキュメントは保管中のデータと区別できません。
Atlas Stream Processing は、 チャンクWindows、 ホスティングWindows、 セッションWindowsのサポートを提供します。
ダンプリング Windows
ダンプリングWindowsは、キャプチャされる時間間隔によって完全に定義されるWindowsです。 これらの時間間隔は重複しません。
例
3 秒間隔のローリング ウィンドウを定義します。 ストリーム プロセッサを起動すると、次のことを行います。
ウィンドウが 3 秒開きます。
最初のウィンドウは、ストリームが 3 秒以内に生成するすべてのドキュメントをキャプチャします。
3 秒が経過すると、ウィンドウが閉じ、そのウィンドウ内のすべてのドキュメントに集計ロジックが適用されます。
allowedLatenessを構成する場合、ウィンドウが閉じられた後に Atlas Stream Processing は遅延メッセージをデッド 文字キューに書込みます。最初のウィンドウが閉じるとすぐに新しいウィンドウが開き、次の 3 秒間ストリームからドキュメントがキャプチャされます。
Windowsを使用すると、個々のドキュメントを繰り返し処理することなく、データ ストリームを包括的にキャプチャできます。
ホスティングWindows
ホスティング ウィンドウは、取得される時間間隔と各ウィンドウ を開く間隔によって定義されるウィンドウであり、 op と呼ばれます。ドロップは 間隔以下である必要があります。ドロップが 間隔より小さい場合、ウィンドウは重複します。
例
間隔が 20 秒で、ホスティングが 5 秒のホスティング ウィンドウを定義します。 ストリーム プロセッサを起動すると、次のことを行います。
ウィンドウが 20 秒開きます。
最初のウィンドウは、ストリームが 20 秒以内に生成するすべてのドキュメントをキャプチャします。
5 秒後に別のウィンドウが開き、次の 20 秒以内にすべてのドキュメントがキャプチャされます。 最初のウィンドウはまだ開いているため、次の 15 秒間にストリームが生成するすべてのドキュメントは、両方のWindowsによってキャプチャされます。
最初のウィンドウが開いてから 20 秒後にウィンドウが閉じられ、そのウィンドウ内のすべてのドキュメントに集計ロジックが適用されます。
5 秒後に 2 番目のウィンドウが閉じ、最初のウィンドウで集計ロジックの対象となるドキュメントを含む、そのウィンドウ内のすべてのドキュメントに集計ロジックが適用されます。
allowedLateness を構成する場合、ウィンドウが閉じられた後に Atlas Stream Processing は遅延メッセージをデッド 文字キューに書込みます。
セッションウィンドウ
セッション ウィンドウは、入力ストリーム内の各 "セッション" に対してパイプラインを実行できるウィンドウです。2 つのドキュメントが同じパーティションを持ち、かつそのタイムスタンプの差がセッション ギャップ未満であれば、それらは同じセッションと見なされます。
ウィンドウを閉じると、その結果は次の段階にリリースされます。
例
$userId のパーティション、5 分のギャップ、5 秒の許容遅延を定義します。ストリーム プロセッサを起動すると次の動作が発生します。
最初のドキュメントが
$sessionWindowに到達すると、ウィンドウが開きます。プロセッサに到達した最新の一致するドキュメントから 5 分 5 秒以内に同じ
userId値(このフィールドの欠落を含む)を含むドキュメントは、同じ セッションウィンドウに追加されます。ウィンドウは、5 分間隔に 5 秒の遅延許容時間を加えた間に、ドキュメントが追加されなくなるまで開いたままになります。