Flink学习笔记之四Time&Window
2019-03-26 本文已影响6人
天火燎原_e548
一.Time
1.DataStream支持3种Time

设置时间:
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setStreamTimeCharacteristic(TimeCharacteristic.ProcessingTime);
不设置,默认是 ProcessTime
2.Timestamp和Watermark
Watermark是用于触发事件执行。

并行流中的Watermark

生成Watermark
时间顺序到达,event单调递增

允许固定延迟的Assigner

延迟数据处理

3.什么是Window

4.Window分类

5.Window生命周期

6.窗口分配器Window Assigner

Tumbling Window翻滚窗口


Sliding Window滑动窗口


Session Window


Global Window

预定义Keyed Windows

7.窗口函数

ReduceFunction

Aggregation Function,ReduceFunction是特殊的聚集函数

WindowFunction

ProcessWindowFunction,区别在于多了Context

窗口状态

二.Trigger触发器
1.触发器定义触发规则,一般会有默认触发

2.EventTimeTrigger源码
onElement函数:最大时间戳,也就是窗口的边界,小于Watermark,即可以水位线以前的元素到达了,可以触发窗口计算,返回FIRE,否则CONTINUE也就是什么都不做

3.内置触发器

三.Evictors驱逐器
1.Evictor可以起到过滤作用

2.内置Evictor
