一.Time
1.DataStream支持3種Time
屏幕快照 2019-03-20 下午8.09.49.png
設(shè)置時間:
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setStreamTimeCharacteristic(TimeCharacteristic.ProcessingTime);
不設(shè)置掠械,默認(rèn)是 ProcessTime
2.Timestamp和Watermark
Watermark是用于觸發(fā)事件執(zhí)行降铸。
屏幕快照 2019-03-20 下午8.12.56.png
并行流中的Watermark
屏幕快照 2019-03-20 下午8.14.53.png
生成Watermark
時間順序到達(dá),event單調(diào)遞增
屏幕快照 2019-03-20 下午8.21.35.png
允許固定延遲的Assigner
屏幕快照 2019-03-20 下午8.26.10.png
延遲數(shù)據(jù)處理
屏幕快照 2019-03-20 下午8.26.55.png
3.什么是Window
屏幕快照 2019-03-20 下午8.29.02.png
4.Window分類
屏幕快照 2019-03-20 下午8.32.14.png
5.Window生命周期
屏幕快照 2019-03-20 下午8.33.07.png
6.窗口分配器Window Assigner
屏幕快照 2019-03-20 下午8.34.55.png
Tumbling 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
預(yù)定義Keyed Windows
屏幕快照 2019-03-20 下午8.40.29.png
7.窗口函數(shù)
屏幕快照 2019-03-20 下午8.41.46.png
ReduceFunction
屏幕快照 2019-03-20 下午8.42.55.png
Aggregation Function救斑,ReduceFunction是特殊的聚集函數(shù)
屏幕快照 2019-03-20 下午8.43.04.png
WindowFunction
屏幕快照 2019-03-20 下午8.44.12.png
ProcessWindowFunction,區(qū)別在于多了Context
屏幕快照 2019-03-20 下午8.44.20.png
窗口狀態(tài)
屏幕快照 2019-03-20 下午8.45.49.png
二.Trigger觸發(fā)器
1.觸發(fā)器定義觸發(fā)規(guī)則,一般會有默認(rèn)觸發(fā)
屏幕快照 2019-03-20 下午8.49.20.png
2.EventTimeTrigger源碼
onElement函數(shù):最大時間戳,也就是窗口的邊界,小于Watermark,即可以水位線以前的元素到達(dá)了手幢,可以觸發(fā)窗口計算捷凄,返回FIRE,否則CONTINUE也就是什么都不做
屏幕快照 2019-03-20 下午8.50.25.png
3.內(nèi)置觸發(fā)器
屏幕快照 2019-03-20 下午8.48.05.png
三.Evictors驅(qū)逐器
1.Evictor可以起到過濾作用
屏幕快照 2019-03-20 下午8.53.48.png
2.內(nèi)置Evictor
屏幕快照 2019-03-20 下午8.53.57.png