Apache Flink是否可以在具有EventTime TimeCharacteristic

时间:2018-04-03 06:07:21

标签: apache-flink

我有一个EventTime流中的元素流到TumblingWindow到AggregationFunction到FlatMap,它维护状态而不是聚合并生成警报

元素来自网络,偶尔事件会有延迟,因此TumblingWindow不会关闭一段时间。在这些情况下,窗口中可以缓冲元素,当与先前收集的元素组合时,将生成警报。有没有办法在这种情况下尽早关闭TumblingWindow?

是否有类似的推荐模式。

我尝试了以下但没有成功......它应该有效吗? 我结合了一个ProcessFunction,一个自定义触发器,并在流中的Element中添加了一个boolean flushSignal。我在窗口的上游插入了ProcessFunction,并从processingElementMethod中启动了一个处理时间计时器            long timeout = ctx.timerService()。currentProcessingTime()+ 10000;            。ctx.timerService()registerProcessingTimeTimer(超时);

并保存传入的元素以处于键控状态

当计时器在onTimer方法中过期时,我从keyedstate中检索了元素,将flushSignal设置为true并将其传递给onTimer收集器。

在触发器中,意图是在onElement方法中返回TriggerResult.FIRE。

但是,Element实例没有进入自定义触发器。在TumblingWindow.assignWindows方法中,时间戳无效。

ProcessFunction.onTimer中的收集器是否需要与ProcessFunction.processElement中的收集器相关联?

请注意,我的元素流有时间特征eventTime,我试图使用的计时器是ProcessingTimeTimer,这是一个问题吗?

我们非常感谢任何建议。

由于 吉姆

0 个答案:

没有答案