FLINK 基于1.15.2的Java开发-使用AggregateFunction解决以天为单位诸如PV、UV等统计的实时计算

什么样的业务场景适合AggregateFunction

FLINK 基于1.15.2的Java开发-使用AggregateFunction解决以天为单位诸如PV、UV等统计的实时计算_第1张图片

对于这一类的:

统计的数据的窗口为一天内(24小时),然后每X秒刷新一下相关数据的实时变化,每次变化的值是在之前的值上有一个累计,然后每天归0后,重新计算当天的数据。

诸如此类的需求还有:每天的UV、PV。

凡是这一类的业务场景、需求,全部适合使用Flink的AggregateFunction和ReduceFunction。我们今天就精细化的讲一下AggregateFunction的使用。这块是最常用的。

从需求出发如何设计这个架构

很多人一看,哦。。。是当天的数据。互联网应用里当天的数据就是千万级的,那么你要累计,那么我每5秒跑一个批吧,前端用VUE JS或者是小程序、APP做一个轮循就完了。

那好吧,你可以去试试看,我不阻止你,然后系统死了也别再来哭。

因为很多人在考虑问题时要么没有考虑数据量要么考虑了数据量没有考虑另一个重要的点:那就是并发。

我们来看真实的生产环境:2,000个并发,在基于1,000万的数据集上,每五秒做一次按照不同列维度的聚合、去重,再变成API返回出去,这个系统不白屏才怪。

所以,它

你可能感兴趣的:(flink,flink,uv,aggregate,flink,aggregate,flink,一天内)