Flink学习笔记之四Time&Window
2019-03-26 本文已影响6人
天火燎原_e548
一.Time
1.DataStream支持3种Time
屏幕快照 2019-03-20 下午8.09.49.png设置时间:
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setStreamTimeCharacteristic(TimeCharacteristic.ProcessingTime);
不设置,默认是 ProcessTime
2.Timestamp和Watermark
Watermark是用于触发事件执行。
屏幕快照 2019-03-20 下午8.12.56.png
并行流中的Watermark
屏幕快照 2019-03-20 下午8.14.53.png
生成Watermark
时间顺序到达,event单调递增
屏幕快照 2019-03-20 下午8.21.35.png
允许固定延迟的Assigner
屏幕快照 2019-03-20 下午8.26.10.png
延迟数据处理
屏幕快照 2019-03-20 下午8.26.55.png
3.什么是Window
屏幕快照 2019-03-20 下午8.29.02.png4.Window分类
屏幕快照 2019-03-20 下午8.32.14.png5.Window生命周期
屏幕快照 2019-03-20 下午8.33.07.png6.窗口分配器Window Assigner
屏幕快照 2019-03-20 下午8.34.55.pngTumbling Window翻滚窗口
屏幕快照 2019-03-20 下午8.35.09.png
屏幕快照 2019-03-20 下午8.36.26.png
Sliding Window滑动窗口
屏幕快照 2019-03-20 下午8.37.42.png
屏幕快照 2019-03-20 下午8.37.49.png
Session Window
屏幕快照 2019-03-20 下午8.38.28.png
屏幕快照 2019-03-20 下午8.38.41.png
Global Window
屏幕快照 2019-03-20 下午8.39.40.png
预定义Keyed Windows
屏幕快照 2019-03-20 下午8.40.29.png
7.窗口函数
屏幕快照 2019-03-20 下午8.41.46.pngReduceFunction
屏幕快照 2019-03-20 下午8.42.55.png
Aggregation Function,ReduceFunction是特殊的聚集函数
屏幕快照 2019-03-20 下午8.43.04.png
WindowFunction
屏幕快照 2019-03-20 下午8.44.12.png
ProcessWindowFunction,区别在于多了Context
屏幕快照 2019-03-20 下午8.44.20.png
窗口状态
屏幕快照 2019-03-20 下午8.45.49.png
二.Trigger触发器
1.触发器定义触发规则,一般会有默认触发
屏幕快照 2019-03-20 下午8.49.20.png2.EventTimeTrigger源码
onElement函数:最大时间戳,也就是窗口的边界,小于Watermark,即可以水位线以前的元素到达了,可以触发窗口计算,返回FIRE,否则CONTINUE也就是什么都不做
屏幕快照 2019-03-20 下午8.50.25.png