
1.概述
对于flink的窗口操作,尤其是基于事件时间的窗口操作,大家还要掌三个重要的知识点:
- 窗口分配器:就是决定着流入flink的数据,该属于哪个窗口。
- 时间戳抽取器/watermark生成器:抽取时间戳并驱动着程序正常执行。
- trigger:
决定着数据啥时候落地。
flink有很多内置的触发器,对于基于事件时间的窗口触发器叫做EventTimeTrigger。其实,我们要实现基于事件时间的窗口随意输出,比如1000个元素触发一次输出,那么我们就可以通过修改这个触发器来实现。
那么可能你没留意前面说的,为啥需要trigger,因为没有trigger的话,存在允许事件滞后的时候,输出时间延迟比较大,而我们需要尽早看到数据,那么这个时候就可以自己定义窗口触发。
2.自定义触发器
修改自基于处理时间的触发器,源码如下:
本文介绍了Flink中自定义触发器的重要性,特别是在基于事件时间的窗口操作中,如何通过修改触发器实现特定的输出策略。文章详细讲解了自定义触发器的源码,并给出了测试结果,展示了每9个或20秒输出一次的示例。同时,作者提出了疑问关于窗口如何清除状态,解释了TumblingProcessingTimeWindows中状态管理的过程。
订阅专栏 解锁全文
454

被折叠的 条评论
为什么被折叠?



