触发器Trigger与剔除器Evictor

本文详细介绍了Flink中窗口计算的重要组件——Trigger和Evictor。Trigger包括EventTimeTrigger、ProcessTimeTrigger等,决定窗口何时进行计算。Evictor如CountEvictor、DeltaEvictor、TimeEvictor则用于在窗口函数执行前后剔除元素,优化窗口内存管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Trigger

窗口的计算是依赖触发器进行的,每种类型的窗口都有自己的触发器机制,如果用户没有指定,那么会使用默认的触发器。

  1. EventTimeTrigger:通过对比 Watermark 和窗口的 Endtime 确定是否触发窗口计算,如果 Watermark 大于 Window EndTime 则触发,否则不触发,窗口将继续等待。
  2. ProcessTimeTrigger:通过对比 ProcessTime 和窗口 EndTime 确定是否触发窗口,如果 ProcessTime 大于 EndTime 则触发计算,否则窗口继续等待。
  3. ContinuousEventTimeTrigger:根据间隔时间周期性触发窗口或者 Window 的结束时间小于当前 EndTime 触发窗口计算。
  4. ContinuousProcessingTimeTrigger:根据间隔时间周期性触发窗口或者 Window 的结束时间小于当前 ProcessTime 触发窗口计算。
  5. CountTrigger:根据接入数据量是否超过设定的阈值判断是否触发窗口计算。
  6. DeltaTrigger:根据接入数据计算出来的 Delta 指标是否超过指定的 Threshold 去判断是否触发窗口计算。
  7. PurgingTrigger:可以将任意触发器作为参数转换为 Purge 类型的触发器,计算完成后数据将被清理。

二、Evictor

Flink 中的剔除器可以在 Window Function 执行前或后使用,用来从 Window 中剔除元素。目前 Flink 支持了三种类型的剔除器,具体如下。

  • CountEvictor:数量剔除器。在 Window 中保留指定数量的元素&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值