Flink窗口window详解(分类、生命周期、窗口分配器、窗口函数、触发器)

一、窗口的分类

时间窗口:滚动(窗口大小)、滑动(窗口大小、滑动步长)、会话(会话超时时间)

计数窗口:滚动、滑动

二、窗口window的四个关键组件

        窗口操作一般在keyby之后调用window函数进行计算,因为进行keyby之后,原始的datastream就会分成多条逻辑流,就是keyedStream,基于keyedStream的窗口操作会开启多个并行子任务,即对不同的key分别开启一个并行子任务,各自独立进行窗口计算。

        如果没有keyBy而直接进行窗口计算,调用的是windowAll函数,windowAll函数本身是一个非并行的操作,那么即使手动调大了窗口算子并行度也是无济于事的,最终只会在一个task上进行计算,并行度为1。在实际应用中不推荐。

(1)(必要)窗口分配器(window assigner)

        定义数据应该被分配到哪个窗口,数据流经过窗口分配器处理后得到的是windowedStream,这个类型并不是datastream, 所以不能直接进行其他转换,必须进一步调用窗口函数,才能再次得到datastream。 

        时间窗口根据分类可以通过在window方法中传入不同参数定义如下六种窗口分配器:TumblingProcessingTimeWindows、SlidingProcessingTimeWindows、ProcessingTimeSessionWindows、TumblingEventTimeWindows、SlidingEventTimeWindows、EventTimeSessionWindows。

        计数窗口直接调用.countWindow()方法

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值