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> 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);

你可能感兴趣的:(Flink窗口函数)