什么是窗口
我认为的窗口是无限处理流的一个核心,因为stream是流数据,而batch是批数据,
window也是stream通往batch的一个转折,因为通过窗口可以实现批流一体
什么是水位线
个人理解:水位线是处理乱序数据或迟到数据的,如果和窗口一起使用的话,水位线还有一个功能就是可以控制窗口的关闭时间
窗口分类
时间窗口:滚动窗口:窗口长度固定,数据不重复
滑动窗口:窗口长度固定,数据重复
会话窗口:时间不固定,数据不重复
计数窗口:同上,不是以时间为单位,是到达一定个数触发窗口
窗口模型
assigner(分配器):如何将元素分配给窗口
function(计算函数):完成窗口的数据的计算
triger(触发器):什么条下完成触发计算
evictor(退出):完成计算后删除数据
水位线的使用:
SingleOutputStreamOperator<OrderGoodsWideEntity> orderwate = OrderDs.assignTimestampsAndWatermarks(
WatermarkStrategy.<OrderGoodsWideEntity>forBoundedOutOfOrderness(Duration.ofSeconds(1))
.withTimestampAssigner(new SerializableTimestampAssigner<OrderGo