流式数据Pipeline质量控制浅谈

一般而言,实现某个特定业务的数据Pipeline都会比较长,这个时候对其中某个组件进行变更就是很有压力的事情。我们如何保证数据的准确性和完整性呢?

引子

以我们公司的实时带宽计算为例,就是一个长长的Pipeline,中间经过的组件其实是很多的,比如解析模块,指标拼接模块,累加器模块等,这些模块可能是独立部署,也可能是在一个系统中,它们根据业务需求会经常发生变更。

因为最终数据需要每一个环节的衔接和计算都没有问题,才能得出正确的结果。然而让人遗憾的是,一个变更可能不影响最终呈现,但是其实是有问题的,这种问题往往令人难以察觉。那问题来了,发生变更后,如何保证数据的正确性?

需要做的事情其实很多的。经过实践,我们发现如下四个举措可以减少变更带来的风险。

变更前并行运行

通常我们有一个模块变更后,我们会在准生产环境并行运行一段时间(一般而言是一周),对计算结果会绘制成曲线图,然后和线上的曲线进行拟合。如果完全重叠,则证明没有问题,具备上线条件。

这个可以保证数据的准确性,而且这种准生产环境的服务器资源也是值得投入的。

探针

探针可以检测全流程数据是否会丢失,而且能检验延时情况。 探针可以是数据源提供的,也可以是自己仿造的。

这个可以一定程度上保证数据的完整性。

离线数据存储

离线数据需要得到保留,可以是最原始的数据,也可以是某个中间结果的数据,还可以是某个数据的偏移量(譬如Kafka的偏移量),这样可以保证上线变更导致计算异常(逻辑上的或者物理上的)能够得到补救。一旦有异常,可以拿这些离线数据进行计算恢复数据曲线。实时计算中很大的一个问题是发生故障或者程序逻辑异常时导致某一段时间区段的结果计算不准确了。

埋点统计

当然,真正要实现全链路的质量监控,保证不发生问题或者及时发现问题,还是需要对每个环节设置各种指标,我们其实对各个环节也抽象出了很多指标,通过一个高效的计数系统来实现。这里唯一的问题是需要进行埋点。

总结

质量控制其实是一个比较复杂的问题,上面的做的事情通过并行运算确保最终结果无异常,离线数据存储保证数据计算结果的可恢复,探针可以检测延时或者数据的完整性,埋点可以让我们对各个组件的状态有更多的追踪。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏阮一峰的网络日志

中文技术文档的写作规范

很多人说,不知道怎么写文档,都是凭着感觉写。 网上也很少有资料,教你写文档。这已经影响了中文软件的发展。 ? 英语世界里,文档非常受重视,许多公司和组织都有自己...

545100
来自专栏IT大咖说

新一代CMDB模型构建指南

摘要 今天我为大家带来的分享主题是新一代CMDB模型的构建指南,主要分为四大部分。 困境:当前CMDB模型面临的普遍困境 很多CMDB建设前期做得风风火火,而后...

63850
来自专栏腾讯云技术沙龙

林帅康:云上构建容器化的科学计算平台

一般来讲,在云端构建大规模计算集群是难以实现完整的资源自治的。那么在计算任务运行容器化之后,应当如何进行云上构建计算集群并对大规模容器进行管理呢?请看这篇文章。

52140
来自专栏SDNLAB

基于意图的网络:是否需要推翻和替换我们的现有网络?

基于意图的网络最近十分火爆,主要是由于思科密集的营销活动。那么基于意图的网络究竟是什么呢?

13420
来自专栏腾讯技术工程官方号的专栏

SDCC 2017 深圳站应用架构及大数据双峰会

前言 6月10-11日,2017年SDCC峰会在深圳举行。为期两天的会议邀请业内顶尖的架构师和数据技术专家分享干货实料。来自腾讯TEG架构平台部的Jerome以...

22750
来自专栏祝威廉

(课程)基于HBase做Storm 实时计算指标存储

Hi,大家好!我是祝威廉,本来微博也想叫祝威廉的,可惜被人占了,于是改名叫·祝威廉二世。然后总感觉哪里不对。目前在乐视云数据部门里从事实时计算,数据平台、搜索和...

24230
来自专栏服务端技术杂谈

程序员工作久了基础更重要

工作一段时间会遇到一个瓶颈期,会考虑未来1到2年的发展和方向问题,之前的方式是通过不停的学习新的框架或者解决方案来调整。 比如写服务端代码期间会去学习TDD,D...

322100
来自专栏企鹅号快讯

干货!大数据专业词汇整理,不知道容易被别人喷晕!

随着大数据技术的不断提高,大数据应用的不断普及,大数据与各行各业的关系越来越紧密。大数据行业充斥着大量的专业词汇,准确掌握和了解这些词汇的含义,有助于更好的理解...

20860
来自专栏Albert陈凯

2018-10-31 网易考拉规则引擎平台架构设计与实践

https://juejin.im/post/5bd69af1e51d453975303cef?utm_source=gold_browser_extensio...

28830
来自专栏web前端教室

一篇有难度的前端教程,怎么做才是看懂它的正确姿势?

今天是周五,先祝大家周末愉快哈,虽然过二天就又是周一了。周末的文章我一般都写的短一些。就如标题所言,现在有这么一篇难的教程,该怎么看? 先说一下,你要学习必须要...

21390

扫码关注云+社区

领取腾讯云代金券