0

Flink のTimeWindow機能を使用していくつかの計算を実行しています。5分の を作成していWindowます。Windowただし、初回のみ1時間作成したいです。次に必要な Windows は 5 分です。

最初の 1 時間はデータが収集され、それに対して私の操作が実行されます。これが完了すると、5 分ごとに同じ操作が実行されます。

これは a で実装できることがわかりましたが、どちらをどのように使用すればよいかわかりtriggerません。trigger

更新:私triggersが得ることができるものから、彼らwindowは最初のトリガーがいつトリガーwindowされるかではなく、ごとにトリガーする時間/カウントを定義するだけです。

4

1 に答える 1

3

これを実装するのは簡単ではありません。

aを指定すると、 a と、それが初めて起動したかどうかを「記憶する」カスタム ステートフルKeyedStreamを使用する必要があります。GlobalWindowTrigger

val stream: DataStream[(String, Int)] = ???
val result = stream
  .keyBy(0)
  .window(GlobalWindows.create())
  .trigger(new YourTrigger())
  .apply(new YourWindowFunction())

GlobalWindowとについての詳細Triggerは、Flink Window のドキュメントにあります。

于 2016-04-20T21:35:00.507 に答える