Flink 窗口和水位线

本文介绍了Flink中的窗口概念,包括时间窗口、滑动窗口、会话窗口和计数窗口,以及水位线在处理乱序数据和控制窗口关闭时间中的作用。此外,还讨论了窗口模型的组件,如分配器、计算函数、触发器和退出策略,并对比了keyWindow和noKeyWindow的区别,强调了key拆分对于并行计算效率的影响。

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

什么是窗口

我认为的窗口是无限处理流的一个核心,因为stream是流数据,而batch是批数据,

window也是stream通往batch的一个转折,因为通过窗口可以实现批流一体

什么是水位线

个人理解:水位线是处理乱序数据或迟到数据的,如果和窗口一起使用的话,水位线还有一个功能就是可以控制窗口的关闭时间

窗口分类

时间窗口:滚动窗口:窗口长度固定,数据不重复

                  滑动窗口:窗口长度固定,数据重复

                 会话窗口:时间不固定,数据不重复

计数窗口:同上,不是以时间为单位,是到达一定个数触发窗口

窗口模型

assigner(分配器):如何将元素分配给窗口

function(计算函数):完成窗口的数据的计算

triger(触发器):什么条下完成触发计算

evictor(退出):完成计算后删除数据

水位线的使用:

SingleOutputStreamOperator<OrderGoodsWideEntity> orderwate = OrderDs.assignTimestampsAndWatermarks(
                WatermarkStrategy.<OrderGoodsWideEntity>forBoundedOutOfOrderness(Duration.ofSeconds(1))
                        .withTimestampAssigner(new SerializableTimestampAssigner<OrderGo
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值