技術共有

フリンクウィンドウトリガー (トリガー) (2)

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

フリンクウィンドウトリガー (トリガー) (1)
フリンクウィンドウトリガー (トリガー) (2)

Apache Flink は、境界のないデータ ストリームと境界のあるデータ ストリームを処理するためのオープン ソースのストリーム処理フレームワークです。 Flink のタイム ウィンドウ操作では、トリガーは非常に重要な概念であり、いつウィンドウを計算して結果を出力するかを決定します。トリガーは、ウィンドウを処理する準備ができたとき (つまり、計算がトリガーされたとき) の条件を定義します。
窓の種類

  • タイムウィンドウ(タイム ウィンドウ): ローリング タイム ウィンドウ (タンブリング タイム ウィンドウ) やスライディング タイム ウィンドウ (スライディング タイム ウィンドウ) など、時間分割に基づくウィンドウ。
  • イベントの時間枠(イベント タイム ウィンドウ): イベント タイムスタンプに基づくウィンドウ。順序が崩れたデータを処理できます。

引き金

トリガーは、ウィンドウが計算の準備ができたときの条件を定義するために使用されます。 Flink にはいくつかの組み込みトリガーが用意されており、ユーザーは必要に応じてトリガーをカスタマイズできます。

内蔵トリガー

  • 処理時間トリガー: 指定された時間間隔に達するたびに起動される、処理時間に基づくトリガー。
  • イベントタイムトリガー : イベント時間に基づいてトリガーされ、ウィンドウの終了時間に達するとトリガーされます。これは、順序付きまたは順序なしのイベント時間データ ストリームの処理に適しています。
  • カウントトリガー: 要素の数に基づいてトリガーされ、ウィンドウ内の要素の数が指定されたしきい値に達したときにトリガーされます。

カスタムトリガー

ユーザーは、トリガー インターフェイスを実装することでカスタム トリガーを作成できます。カスタム トリガーは、複雑なロジックに基づいてウィンドウ計算をいつトリガーするかを決定できます。カスタム トリガーは通常、次のメソッドを実装する必要があります。

  • 要素(element, timestamp, window, ctx): 要素がウィンドウに追加されるときに呼び出されます。
  • イベントタイム(time, window, ctx, out): ウィンドウのイベント時刻が到着すると呼び出されます。
  • オン処理時間(time, window, ctx, out): ウィンドウの処理時間が到着すると呼び出されます。
  • マージ時(その他): 2 つのウィンドウがマージされるときに呼び出されます (たとえば、セッション ウィンドウで使用されます)。
  • マージ可能(): トリガーがウィンドウの結合をサポートするかどうかを示します。

効果

  • トリガーの主な機能は、ウィンドウの計算タイミングを制御することにより、Flink のウィンドウ操作をより柔軟かつ強力にすることです。適切なトリガーを選択することで、ストリーム処理アプリケーションのパフォーマンスとリソース使用率を最適化できます。

以下は、Flink ウィンドウとトリガーを使用した簡単な例です (Java API が使用されていると仮定しています)。

DataStream