apache flink中心时间窗口

时间:2017-12-03 22:43:37

标签: apache apache-flink

是否可以收集中心是特定感兴趣事件的窗口?

想象一下事件流:

....e...........e...E........e......

特别是我对触发事件E及其周围环境感兴趣(+ - 几分钟):

....e..........|e...E....|....e......

1 个答案:

答案 0 :(得分:1)

使用Flink的窗口运算符(包括自定义TriggerEvictor实现)实现此逻辑应该是可能的,但在我看来非常具有挑战性。

我认为更好的方法是ProcessFunctionProcessFunction可以注册调用回调函数的计时器(处理时间或事件时间)。对于给定的用例,ProcessFunction将收集托管状态下的所有记录。当接收到触发事件时,注册定时器以等待更多事件到达,直到触发事件周围的窗口边界到期。此外,ProcessFunction需要定期删除过早到达的所有元素以与触发事件关联。这也可以通过注册计时器来完成。