0


【Flink】Flink窗口触发器

   数据进入到窗口的时候,窗口是否触发后续的计算由窗口触发器决定,每种类型的窗口都有对应的窗口触发机制。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

ProcessingTimeoutTrigger: 可以将任意 Trigger 作为参数转为为 ProcessingTimeout 类型的 Trigger。在第一个元素到达后设置一个超时处理时间。还可以通过指定 resetTimerOnNewRecord 为每个到达的元素重新更新计时器,也可以指定是否应通过 shouldClearOnTimeout 在超时时清理窗口所有数据。

标签: flink 大数据

本文转载自: https://blog.csdn.net/sinat_23225111/article/details/132347252
版权归原作者 一杯咖啡半杯糖 所有, 如有侵权,请联系我们删除。

“【Flink】Flink窗口触发器”的评论:

还没有评论