本文是作者 诸葛子房 投稿,欢迎大家投放原创优质稿件!
相信大家做过实时指标统计的,肯定会遇到一个问题,算的指标是不是对的呢?pv、uv、dau、gmv、订单等等统计数据,但是怎么知道自己算的gmv是不是正确的呢?
上述流程图描述了一般的实时数据计算流程,从消息的接收(kafka)、处理、计算(Flink),以及最终的存储(redis),最后查询出redis中的数据即可提供给大屏、看板等前端使用。
但是在整个过程中,不得不思考一下,最后计算出来的存储在redis中指标数据是不是正确的呢?怎么能给用户或者老板一个信服的理由呢?相信这个问题一定是困扰所有做实时数据开发的朋友。
比如说:离线的同事说离线昨天的数据订单是1w,实时昨天的数据确实2w,存在这么大的误差,到底是实时计算出问题了,还是离线出问题了呢?
还是拿上面离线和实时的订单数据为例,两者不一致。离线的同事说,这边有明细数据,可以对,但是实时这边只有redis的统计结果数据,肯定是没办法说服别人的。因此,对于上图中加工的实时宽表数据,可以进行持久化,进行存储。
这样,实时数据也有明细数据,就可以和离线数据进行比对了,到底是日志丢失还是消息没有发送或者计算的业务逻辑有问题,就能够一目了然。
这就需要对flink加工的实时宽表进行存储了,这边考虑两种解决方案。
(1)实时宽表数据存储至elasticsearch
但是有一些朋友可能会说,es对应的sqlcount、group语法操作,非常复杂,况且也不是用来做线上服务,而只是用与对数,所以时效性也不需要完全考虑。
(2)实时宽表数据存储至hdfs,通过hive进行查询
优点:
a.学习成本低、会sql的基本就可以了
b.可以和离线表数据进行关联查询,容易找出两张表的数据差异
实时计算能给提供给用户查看当前的实时统计数据,但是数据的准确性确实一个很大的问题,如何说服用户或者领导数据计算是没有问题的,就需要和其他的数据提供方进行比对了。问题的关键就在于,只要有明细数据,就可以和任意一方进行比对,毕竟有明细数据。不服?我们就对一对啊。明细数据的存储、设计也很有讲究,可以和离线或者其他提供方的数据字段进行对其,这样就非常方便进行比对了,而采用hive这种方式又是最简便的方式了,毕竟大多数人都是会sql的,无论开发人员还是数据人员或者BI人员。
原文链接地址:https://blog.csdn.net/weixin_43291055/article/details/102594978
END
关注我
公众号(zhisheng)里回复 面经、ES、Flink、 Spring、Java、Kafka、监控 等关键字可以查看更多关键字对应的文章
1、《从0到1学习Flink》—— Apache Flink 介绍
2、《从0到1学习Flink》—— Mac 上搭建 Flink 1.6.0 环境并构建运行简单程序入门
3、《从0到1学习Flink》—— Flink 配置文件详解
4、《从0到1学习Flink》—— Data Source 介绍
5、《从0到1学习Flink》—— 如何自定义 Data Source ?
6、《从0到1学习Flink》—— Data Sink 介绍
7、《从0到1学习Flink》—— 如何自定义 Data Sink ?
8、《从0到1学习Flink》—— Flink Data transformation(转换)
9、《从0到1学习Flink》—— 介绍 Flink 中的 Stream Windows
10、《从0到1学习Flink》—— Flink 中的几种 Time 详解
11、《从0到1学习Flink》—— Flink 读取 Kafka 数据写入到 ElasticSearch
12、《从0到1学习Flink》—— Flink 项目如何运行?
13、《从0到1学习Flink》—— Flink 读取 Kafka 数据写入到 Kafka
14、《从0到1学习Flink》—— Flink JobManager 高可用性配置
15、《从0到1学习Flink》—— Flink parallelism 和 Slot 介绍
16、《从0到1学习Flink》—— Flink 读取 Kafka 数据批量写入到 MySQL
17、《从0到1学习Flink》—— Flink 读取 Kafka 数据写入到 RabbitMQ
18、《从0到1学习Flink》—— 你上传的 jar 包藏到哪里去了
19、大数据“重磅炸弹”——实时计算框架 Flink
20、《Flink 源码解析》—— 源码编译运行
21、为什么说流处理即未来?
22、OPPO数据中台之基石:基于Flink SQL构建实数据仓库
23、流计算框架 Flink 与 Storm 的性能对比
24、Flink状态管理和容错机制介绍
25、原理解析 | Apache Flink 结合 Kafka 构建端到端的 Exactly-Once 处理
26、Apache Flink 是如何管理好内存的?
27、《从0到1学习Flink》——Flink 中这样管理配置,你知道?
28、《从0到1学习Flink》——Flink 不可以连续 Split(分流)?
29、Flink 从0到1学习—— 分享四本 Flink 的书和二十多篇 Paper 论文
30、360深度实践:Flink与Storm协议级对比
31、Apache Flink 1.9 重大特性提前解读
32、如何基于Flink+TensorFlow打造实时智能异常检测平台?只看这一篇就够了
33、美团点评基于 Flink 的实时数仓建设实践
34、Flink 灵魂两百问,这谁顶得住?
35、一文搞懂 Flink 的 Exactly Once 和 At Least Once
36、你公司到底需不需要引入实时计算引擎?
37、Flink 从0到1学习 —— 如何使用 Side Output 来分流?
38、一文让你彻底了解大数据实时计算引擎 Flink
39、基于 Flink 实现的商品实时推荐系统(附源码)
40、如何使用 Flink 每天实时处理百亿条日志?
41、Flink 在趣头条的应用与实践
42、Flink Connector 深度解析
43、滴滴实时计算发展之路及平台架构实践
44、Flink Back Pressure(背压)是怎么实现的?有什么绝妙之处?
45、Flink 实战 | 贝壳找房基于Flink的实时平台建设
46、如何使用 Kubernetes 部署 Flink 应用
47、一文彻底搞懂 Flink 网络流控与反压机制
48、Flink中资源管理机制解读与展望
49、Flink 实时写入数据到 ElasticSearch 性能调优
50、深入理解 Flink 容错机制
51、吐血之作 | 流系统Spark/Flink/Kafka/DataFlow端到端一致性实现对比