This documentation is for an unreleased version of Apache Flink. We recommend you use the latest stable version.
Process Function
処理関数 #
ProcessFunction #
ProcessFunction
は低レベルのストリーム処理オペレーションで、全ての(非周期)ストリーミングアプリケーションの基本構成要素へのアクセスを提供します。
- イベント (ストリーム要素)
- 状態 (耐障害性、一貫性、キー付けされたストリーム上のみ)
- タイマー (イベント時間および処理時間。キー付けされたストリーム上のみ)
ProcessFunction
はキー付け状態とタイマーにアクセスできるFlatMapFunction
とkg萎えることができます。入力ストリームで受信したイベントごとに呼び出されてイベントを処理します。
ProcessFunction
の概念と使用方法の詳細については、Process Functionを参照してください。
タイマーの実行動作 #
Pythonのユーザ定義関数は、JVMで実行されるFlinkのオペレータとは別のPythonプロセスで実行され、ProcessFunction
で行われたタイマー登録リクエストは非同期でJavaオペレータに送信されます。
タイマー登録リクエストを受信すると、Javaオペレータはそれを背後にあるタイマーサービスに登録します。
登録されたタイマーがすでに現在時刻(処理時間タイマーの場合は現在のシステム時間)をすでに過ぎている場合は、そのタイマーがすぐにトリガーされます。
非同期処理の特性により、タイマーが実際の時間よりも少し遅れてトリガーされる場合があることに注意してください。
例えば、登録された処理時間タイマー10:00:00
は、実際には10:00:05
に処理される可能性があります。