网站建设公司华网天下买送活动,网站首页确认书,建设网站协议,贵州网站制作背景
在flink的窗口函数运用中#xff0c;window和windowAll方法总是会引起混淆#xff0c;特别是结合上GlobalWindow的组合时#xff0c;更是如此#xff0c;本文就来梳理下他们的区别和常见用法
window和windowAll的区别
window是KeyStream数据流的方法#xff0c;其…背景
在flink的窗口函数运用中window和windowAll方法总是会引起混淆特别是结合上GlobalWindow的组合时更是如此本文就来梳理下他们的区别和常见用法
window和windowAll的区别
window是KeyStream数据流的方法其并行度是任意的也就是最大可以和分组key的数量相同
windowAll是DataStream数据流的方法其并行度只能是1也就是所有的元素都会被聚合到一个算子任务上性能极差
GlobalWindows.create()是一个全局的窗口分配器 它的作用和TimeWindow或CountWindow一样都是对元素进行窗口分配不同点在于GlobalWindows把分区内所有的元素分配到同一个窗口并且不会触发计算 而TimeWindow或CountWindow会基于时间或者元素个数对元素进行窗口的分配并且满足条件就会触发计算
以下是示意图 GlobalWindowsKeyedStream常见用法如下
WindowedStreamInteger, Integer, GlobalWindow keyedWindowedStream keyedStream.window(GlobalWindows.create()).trigger(PurgingTrigger.of(CountTrigger.of(10)));
GlobalWindowsDataStream常见用法如下
AllWindowedStreamInteger, GlobalWindow allWindowedStream dataStream.windowAll(GlobalWindows.create()).trigger(PurgingTrigger.of(CountTrigger.of(10)));