タンブリング・ウィンドウ
タンブリング・ウィンドウでは、ウィンドウが満杯になるまで着信タプルを格納します。その後、オペレーター動作を実行し、最終的にはすべての格納済みタプルをフラッシュし、再び最初から開始します。
- カウント排除ポリシー count(n): カウントに基づくウィンドウ。n 個のタプルを格納します。例えば、排除ポリシー count(4) の場合、ウィンドウは 4 番目の入力タプルごとにタンブリングします。ウィンドウ構成の例
CountWindowPolicy pc4(4), pc2(2); TumblingWindow<TT> wT_C4(op, 0, pC4);
タンブリング・シーケンス:
- 時間排除ポリシー time(t): 時間に基づくウィンドウ。t 秒の期間に到着したタプルを格納します。例えば、排除ポリシー time(5) の場合、ウィンドウは 5 秒ごとにタンブリングします。排除時には、ウィンドウに任意数のタプルが含まれている可能性もあり、空の場合もあります。
- 差分排除ポリシー delta(attribute, delta): 属性差分に基づくウィンドウ。最古のタプルと最新のタプルの属性 attribute の値の差異が差分 delta を超えるまで、タプルを格納します。より正式に言うと、以下の条件が true の場合にウィンドウが満杯になります。
Ttemperature - Toldesttemperature > delta
例えば、排除ポリシー delta(temperature, 1.5) の場合、ウィンドウに temperature 値が [17.1, 16.4, 16.0] のタプルが (最新のタプルから最古のタプルへの順に格納されて) 含まれている場合、temperature 値が 17.6 の入力タプルによってウィンドウがタンブリングします。これは、最新の値 (17.6) と最古の値 (16.0) の差分が 1.5 を超えるからです。
ウィンドウをタンブリングするタプルは、排除の一部にはならず、排除後にウィンドウに挿入されます。
この属性は、通常は単調に増加し、多くの場合はタイム・スタンプです。この場合、差分 delta は秒を表し、最新のタプルと最古のタプルのタイム・スタンプ値の差異 (秒数) が差分と比較されます。このように、属性差分に基づくウィンドウは時間に基づくウィンドウをエミュレートできますが、ローカル・コンピューターの現行時刻を使用するのではなく、データと一緒にストリームに入れられた時間属性を使用します。
- ウィンドウ・パンクチュエーション排除ポリシー punct(): パンクチュエーションに基づくウィンドウ。次のウィンドウ・パンクチュエーションが着信するまでタプルを格納します。上流のオペレーターがパンクチュエーションを生成可能で、下流のオペレーターはウィンドウ操作にそれを使用できます。
例えば、FileSource オペレーターは各ファイルの最後にウィンドウ・パンクチュエーションを実行依頼して、パンクチュエーションに基づく排除を使用するウィンドウ・オペレーターが、ファイルの内容を形成する一連のタプルに対して何らかの関数を実行できるようにします。
ウィンドウ操作をサポートするオペレーターは、通常、タンブリングした後でウィンドウ・パンクチュエーション・マークを実行依頼して、入力ウィンドウのタプル・セットを処理した結果のタプル・セットを示します。 このマークは、排除ポリシーに関係なく実行依頼されます。