Flink Evictors(驱逐器)最全解释


前言

Flink关于Evictors(驱逐器)的解释不多,因为默认是在element进入Window窗口聚合之前进行移除数据,这个能够满足绝多大多数应用场景。但对于element进入Window窗口聚合后并在Trigger触发计算操作之前移除数据, 即:Evictor类中的第2个方法evictAfter(),会在什么样的场景用到,这部分解释几乎是空白,因此,在此进行一个解释,希望能帮助到有需要的Flink开发者。
注意:evictor只能使用在没有增量聚合函数作为参数的情况下。


一、Evictor是什么?

Flink 窗口模式允许特别的算子Evictor(驱逐器),应用在WindowAssigner和trigger之间。通过evictor()方法使用。

Evictor驱逐器能够在element进入Window窗口聚合之前进行移除数据或者在进入Window窗口聚合后,Trigger触发计算操作之前移除数据。

Evictor的2个方法:

evictBefore():移除窗口元素,在Window Function之前调用。

evictAfter():移除窗口元素,在Window Function之后调用。

两个方法的参数都一样,分别是:

Iterable elements:当前窗口中的元素
int size:当前窗口中的元素数量
W window:当前窗口
EvictorContext evictorContext:evict的上下文

二、图解

1.evictBefore()

在这里插入图片描述

2.evictBefore() and evictAfter()

该处使用的url网络请求的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lmh450201598

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值