Flink窗口函数

一、窗口简介

1. Flink窗口分为CountWindow和TimeWindow

2. CountWindow按照指定的数据条数生成一个 Window,与时间无关

3. TimeWindow按时间生成window, 可分为Tumbling Window(滚动窗口)、Sliding Window(滑动窗口)和Session Window(会话窗口)



二、窗口类型

1. 滚动窗口(Tumbling Window)

时间对齐、窗口长度固定、窗口不可重叠


2. 滑动窗口(Sliding Window)

时间对齐、窗口长度固定、窗口可重叠


3. 会话窗口(Session Window)

配置Session窗口需要指定Session间隔,间隔内没有元素到来,窗口关闭,新窗口建立。窗口长度不固定



三、Window API

1. TimeWindow滚动窗口

默认按ProcessingTime进行窗口划分

DataStream<Tuple2<String, Double>> minTempPerWindowStream = dataStream.map(new MapFunction>() {

@Override

public Tuple2 map(SensorReading value)throws

Exception {

return new Tuple2<>(value.getId(), value.getTemperature());

}

})

.keyBy(data -> data.f0)

.timeWindow( Time.seconds(15))



.minBy(1);

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容