flink的window和windowAll的区别

背景

在flink的窗口函数运用中,window和windowAll方法总是会引起混淆,特别是结合上GlobalWindow的组合时,更是如此,本文就来梳理下他们的区别和常见用法

window和windowAll的区别

window是KeyStream数据流的方法,其并行度是任意的,也就是最大可以和分组key的数量相同

windowAll是DataStream数据流的方法,其并行度只能是1,也就是所有的元素都会被聚合到一个算子任务上,性能极差

GlobalWindows.create()是一个全局的窗口分配器,

它的作用和TimeWindow或CountWindow一样,都是对元素进行窗口分配,不同点在于GlobalWindows把分区内所有的元素分配到同一个窗口,并且不会触发计算,

而TimeWindow或CountWindow会基于时间或者元素个数对元素进行窗口的分配,并且满足条件就会触发计算

以下是示意图:

GlobalWindows+KeyedStream常见用法如下:

WindowedStream<Integer, Integer, GlobalWindow> keyedWindowedStream = keyedStream.window(GlobalWindows.create()).trigger(PurgingTrigger.of(CountTrigger.of(10)));

GlobalWindows+DataStream常见用法如下:

AllWindowedStream<Integer, GlobalWindow> allWindowedStream = dataStream.windowAll(GlobalWindows.create()).trigger(PurgingTrigger.of(CountTrigger.of(10)));

相关推荐
Meya112728 分钟前
别再人工硬扛机房管理!智能 U 位系统,让机房管理一键数字化
大数据·运维
天辛大师1 小时前
天辛大师谈人工智能时代,如何用AI研究历代放生劝善忏悔文
大数据·人工智能·随机森林·启发式算法
渣渣盟1 小时前
Flink并行数据源:ClickSource实现详解
flink·scala
为儿打call2 小时前
SparkSQL 广播超时排查:小表但是多分区 = BroadcastTimeout
大数据·spark
eastyuxiao2 小时前
如何用思维导图拆解项目范围
大数据·人工智能·流程图
渣渣盟2 小时前
Flink单流转换算子实战解析
flink·scala
渣渣盟2 小时前
Apache Flink物理分区算子全解析
大数据·flink·apache
小王毕业啦3 小时前
(1990-2024年)个股交易活跃度、个股换手率
大数据·人工智能·数据挖掘·数据分析·区块链·社科数据
N串3 小时前
2.7 公司内部的“阶级”是什么
大数据·人工智能
lizhihai_994 小时前
股市学习心得—商业航天10大核心材料供应商
大数据·人工智能·学习