开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Window Aggregation Vs Group Aggregation有哪些区别?

Window Aggregation Vs Group Aggregation有哪些区别?

展开
收起
Medusa 2021-11-12 16:07:47 697 0
1 条回答
写回答
取消 提交回答
  • 如图示,Window Aggregation 在输出模式上是按时输出,是在定义的数据到期之后它才会输出。比如定义 5 分钟的窗口,结果是延迟输出的,比如 00:00~00:05 这个时间段,它会等整个窗口数据都到齐之后,才完整输出出来,并且结果只输出一次,不会再改变。

    Group Aggregation 是数据触发,比如第一条数据来它就会输出结果,同一个 Key 的第二条数据来结果会更新,所以在输出流的性质上两者也是不一样的。WindowAggregation 一般情况下输出的是 Append Stream,而在 Group Aggregation 输出的是 Update Stream。

    在状态 State 处理上两者的差异也比较大。Window Aggregation 会自动清理过期数据,用户就不需要额外再去关注 State 的膨胀情况。Group Aggregation 是基于无限的状态去做累积,所以需要用户根据自己的计算场景来定义 State 的 TTL,就是 State 保存多久。

    配图19.png

    资料来源:《实时数仓“王炸组合”-实时计算》,下载链接:https://developer.aliyun.com/topic/download?id=7944

    2021-11-12 18:03:40
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
Lazy Join Optimizations Without Upfront Statistics 立即下载
Lambda Processing for Near Time Search Indexing 立即下载
Custom applications with Spark’s RDD 立即下载