数据进入到窗口的时候,窗口是否触发后续的计算由窗口触发器决定,每种类型的窗口都有对应的窗口触发机制。WindowAssigner 默认的 Trigger通常可解决大多数的情况。我们通常使用方式如下,调用trigger()方法把我们想执行触发器传递进去:
SingleOutputStreamOperator<Product> name = name.keyBy("name").window(TumblingEventTimeWindows.of(Time.seconds(5))).trigger(ContinuousEventTimeTrigger.of(Time.seconds(1)))
.process(...);
如果不设置trigger()方法则 WindowAssigner 会根据不通类型默认使用一个 Trigger,例如所有的 event-time WindowAssigner 都默认使用 EventTimeTrigger。 这个 trigger 会在 watermark 越过窗口结束时间后直接触发,一共有以下几种trigger

Processin
本文介绍了Flink中窗口触发器的工作原理,如EventTimeTrigger、ProcessingTimeoutTrigger等,并强调了在业务数据不连续时,如何使用ContinuousEventTimeTrigger或ContinuousProcessTimeTrigger来定期获取窗口的中间结果。
订阅专栏 解锁全文
1487

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



