window
每一个window都会有一个trigger和一个附加窗口函数
函数里包含了应用于窗口(Window)内容的计算,而Trigger(触发器)则指定了函数在什么条件下可被应用(函数何时被触发),一个触发策略可以是 "当窗口中的元素个数超过4个时" 或者 "当水印达到窗口的边界时"。触发器还可以决定在窗口创建和删除之间的任意时刻清除窗口的内容,本例中的清除仅指清除窗口的内容而不是窗口的元数据,也就是说新的数据还是可以被添加到当前的window中。
Trigger
A Trigger确定窗口(由窗口分配器形成)何时准备好由窗口函数处理。每个WindowAssigner都有一个默认值Trigger。如果默认触发器不符合您的需求,则可以使用指定自定义触发器trigger(...)。
(摘自官方文档)触发器接口具有五种方法,它们允许a Trigger对不同事件做出反应:
onElement()对于添加到窗口中的每个元素,都会调用该方法。onEventTime()当注册的事件时间计时器触发时,将调用该方法。onProcessingTime()当注册的处理时间计时器触发时,将调用该方法。onMerge()方法与有状态触发器相关,并且在两个触发器的相应窗口合并时(例如

本文深入探讨Flink中的window机制,包括Trigger(触发器)的原理和作用,它决定了窗口何时准备就绪以供窗口函数处理。同时介绍了附加窗口函数,它是对每个窗口执行计算的核心。Flink提供了预定义的窗口分配器,如滚动、滑动、会话和全局窗口,并支持自定义窗口分配器以适应不同场景。
最低0.47元/天 解锁文章
908

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



