2017-04-23 4 views
2

私は、という状態のウィンドウに集約/折りたたみ機能を実装する方法を探しています。 私はウィンドウに集約する方法、およびキー/グローバル状態を使用する方法を理解していますが、両方を使用することはできません。ウィンドウと状態のFlink集約

私は状態でウィンドウを言うときだけ、明確にする - 私は(無効)状態が初期化されなければならないという意味では、ウィンドウが変更されるたびに/を動かしました。

例:イベントタイプごとに5分ごとに入力されたイベントの数をカウントしたいとします。しかし、イベントタイプ(ウィンドウキー)に加えて、イベントはいくつかのidフィールドを持っています - そして、私はそれぞれのIDを一度だけ数えたいので - 私はすでにそのウィンドウで数えたすべてのIDの状態を保存する必要があります。

Flinkでこれを行う簡単な方法はありますか?

答えて

1

FlinkにはRichReduceFunctionがあり、特定のキーのすべてのウィンドウでグローバルな状態にアクセスできます。ウィンドウごとの状態が必要な場合は、Flink 1.3の一部となる[Flink-5929]を参照してください。

+0

お返事ありがとうございます。私は完全に理解しているかどうかはわかりませんが、[Flink-5929](https://github.com/apache/flink/pull/3479)は、1つのウィンドウ期間が終了し、別のウィンドウが開始されるたびに状態リセットを実装しますか? – alex

+0

はい、Flink-5929で利用できるウィンドウの状態は、特定のウィンドウインスタンスと特定のキーに限定されます。 –

関連する問題