flink sql 知其所以然(十):大家都用 cumulate window 计算累计指标啦

本文详细介绍了Flink 1.13引入的cumulate窗口,作为解决实时场景中周期内累计指标(如PV,UV)问题的利器。cumulate窗口通过避免retract流和处理时间触发的缺点,提供了一种更优的解决方案,适用于实时统计分析。文章通过实例展示了cumulate窗口的工作机制和SQL实现,以及与tumble window + early-fire方案的对比。
摘要由CSDN通过智能技术生成

想啥呢,小宝贝,还不三连???(关注  +  点赞 + 再看),对博主的肯定,会督促博主持续的输出更多的优质实战内容!!!

1.序篇

源码公众号后台回复1.13.2 cumulate window 的奇妙解析之路获取。

此节就是窗口聚合章节的第三篇,上节介绍了 1.13 window tvf tumble window 实现,本节主要介绍 1.13. window tvf 的一个重磅更新,即 cumulate window。

本节从以下几个章节给大家详细介绍 cumulate window 的能力。

  1. 应用场景介绍

  2. 预期的效果

  3. 解决方案介绍

  4. 总结及展望篇

2.应用场景介绍

先来一个简单的小调查:在实时场景中,你见到过最多的指标需求场景是哪一种?

答案:博主相信,占比比较多的不是 PCU(即同时在线 PV,UV),而是周期内累计 PV,UV 指标(如每天累计到当前这一分钟的 PV,UV)。因为这类指标是一段周期内的累计状态,对分析师来说更具统计分析价值,而且几乎所有的复合指标都是基于此类指标的统计(不然离线为啥都要一天的数据,而不要一分钟的数据呢)。

本文要介绍的就是周期内累计 PV,UV 指标在 flink 1.13 版本的最优解决方案。

3.预期的效果

先来一个实际案例来看看在具体输入值的场景下,输出值应该长啥样。

指标:每天的截止当前分钟的累计 money(sum(money)),去重 id 数(count(distinct id))。每天代表窗口大小为 1 天,分钟代表移动步长为分钟级别。

来一波输入数据:

time id money
2021-11-01 00:01:00 A 3
2021-11-01 00:01:00 B 5
2021-11-01 00:01:00 A 7
2021-11-01 00:02:00 C 3
2021-11-01 00:03:00 C 10

预期输出数据:

time count distinct id sum money
2021-11-01 00:01:00 2 15
2021-11-01 00:02:00 3 18
2021-11-01 00:03:00 3 28

转化为折线图长这样:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值