目录
window的生命周期
当一个属于window的元素到达之后这个window就创建了,而当当前时间(事件或者处理时间)为window的创建时间跟用户指定的延迟时间相加时,窗口将被彻底清除。Flink 确保了只清除基于时间的window,其他类型的window不清除;
每一个window都有一个触发器Trigger和一个附加窗口函数(WindowFunction
, ReduceFunction
及 FoldFunction等
),在定义窗口之前要先定义好数据是否按照key进行分组,(根据是否按照key进行分组,window分为keyed-window和NoKeyedwindow);使用 keyBy(...)
会将无限数据流拆分成逻辑分组的数据流,如果 keyBy(...)
函数不被调用的话,数据流将不是分组的。在分组数据流中,任何正在传入的事件的属性都可以被当做key,分组数据流将window计算通过多任务并发执行,因为每一个逻辑分组流在执行中与其他的逻辑分组流是独立地进行的。
在非分组数据流中,原始数据流并不会拆分成多个逻辑流并且所有的window逻辑将在一个任务中执行,并发度为1.