flink窗口介绍

1.窗口分类

滚动窗口(滚动时间窗口,滚动计数窗口)

滑动窗口(滑动时间窗口,滑动计数窗口)

会话窗口

全局窗口

2.窗口解释

滚动窗口(Tumbing Window):固定时间生成一个窗口,或固定数据生成一个窗口;比如8点到9点,间隔一个小时生成一个窗口,那么8点到9点进来的数据进入这个窗口,窗口相当于一个桶,把数据存储起来;或进来10个数据生成一个窗口,放在这个窗口里。

滚动窗口时间间隔固定,采取左闭右开的原则,比如八点到九点,八点封闭,九点开,一个数据是九点进来,他应该是九点到十点的窗口。

滑动窗口(Sliding Window):它有二个参数,一个是窗口长度,另一个是步长,比如一个小时生成一个窗口,五分钟滑动一次,意思是说八点到九点生成了一个窗口,八点五分到九点五分,再滑动生成一个窗口,数据是八点六分进来的,它会存在二个窗口里,数据有重叠;计数也是一个一样,如进来十个数生成一个窗口,二个步长滑动生成一个窗口,存放10个数据。 

会话窗口(Session Window):会话就是在一定时间间隔内,没有产生数据,或者会话中断,就生成一个会话窗口。

3.窗口API

滚动窗口:timeWindow(Time.seconds(5)) 、countWindow(5)

滑动窗口:timeWindow(Time.seconds(5),Time.seconds(2)) 、countWindow(5,2)

会话窗口:window(EventTimeSessionWindows.withGap(Time.minutes(10)))

增量聚合函数:ReduceFunction 、AggregateFunction

全量聚合函数:ProcessWindowFunction 、WindowFunction

猜你喜欢

转载自blog.csdn.net/anita9999/article/details/121411386
今日推荐