系统思考数据质量

系统思考数据质量

|0x00 质量标准体系

在谈一件事情的质量时,我们通常会想起ISO的标准,例如ISO9000,如果一件商品被打上了ISO的标签,对于自己产品的质量,是一件最有说服力的证据。

那么在数据领域有这种标准吗?有,比如ISO8000、ISO9126、或者是GB/T36344-2018,但这些标准一来显得太过于“重”,二来理解和寻找资料也是困难重重,三是按照这些规范来落地也不太现实。因此把其中精华的部分抽取出来,总结成几项大的原则,再根据公司的实际情况,补充细节部分,对于数据领域的从业者而言,更为切合实际一些。

以ISO9126软件质量模型为例,包含了6个大的特性和27个子特性,其中大部分移植到数据领域,通常也是适合的。

ISO9126质量体系如下图所示:

|0x01 从数据视角思考7个一级特性

我们把ISO9126的一级特性拿出来,按照数据领域的理解,一条条过一下。

【功能性】

功能性提供了软件/数据产品所需要的功能,包括适合、准确、互操作和保密安全。如果用通俗的语言解释,就是数据要有、数据要准、数据要全、数据是安全的。能够按照交付标准产出数据,数据是准确的,并且能够满足使用者的诉求,同时安全性要得到保证。

这些特性在很多文章中都有提到过,只不过没有提升到数据质量体系的高度来进行阐述。例如对于数据的一致性而言,有很多地方都可以用到这个概念,比如CAP理论,比如数据库的外键,比如逆向接口开发,等等。但数据一致性所影响的,依旧是数据的准确性,那么数据一致性就应该是准确性的一种解读,而不是一个子项。

【可靠性】

指产品在规定的条件下,在规定的时间内完成规定功能的能力。映射到数据系统中,便是数据使用者,在使用时,数据能够按时产出。对应的要求,就是数据链路的可靠性,例如上游数据是否按时产出、Job的调度是否正确,等等。

【易用性】

在指定使用条件下,产品被理解、 学习、使用和吸引用户的能力。这一条是绝大多数数据从业者所忽视的一条,也就是自己做出来的报表,能否让用户读懂,而不仅仅是做出了报表产出了数据。例如我们对于数据指标的定义,用户是否接受,或者是我们所提供的数字,是否能够真的反映了商业的变化,而不仅仅是为了统计而统计。对于使用者而言,数据的结果是否能够被理解、是否满足了自己的诉求,通常跟产品需求和项目规划有关。

【效率】

在规定的条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。例如最近大火的实时数仓,例如老生常谈的数据倾斜,就是效率的一种解读。这些能力最终影响的,是软件所提供的价值能力,因为提供的数据越实时、计算的问题越复杂,理论上可以带来更多的价值增量。

【维护性】

在规定条件下,规定的时间内,使用规定的工具或方法修复成功的能力。对于互联网这一类高速增长的业务而言,如果仅仅是为了满足需求,采取了烟囱式的开发手段,那么维护起来就一定是个灾难。因此,提供数据的复用能力,就是体现维护性的重点。通常来说提升数据的维护性有两个方面,一个是软件本身,提供Cube这种预计算的能力,一种是开发过程,提高数据的模型质量,降低理解和维护成本。

【可移植性】

从一种环境迁移到另一种环境的能力。这个能力考验的是数据架构或者工具的能力,例如当对于数据的要求从离线转向实时,过去写好的SQL代码是否能够完好迁移。或者是当开发架构从A迁移至B(Hadoop -> Spark / Storm -> Flink),所付出的成本有多少。

|0x02 数据质量定义的拆分

这些特点可以直接拿来用吗?从概念上讲,是可以的,但是却并没有延伸到我们的日常工作中,也就是停留在概念阶段,那么如何将我们的日常工作与这些标准结合起来,就是下一步要思考的问题。

从结果上来看,如果“用户体感”不佳,也就是功能性出现了问题,都可以归因为数据质量有问题,因为最终交付的是质量结果。而要解决这个问题,就需要思考数据开发的整个链路,也就是开发过程的可靠性。虽然开发过程中可能出现许许多多的意外,导致了数据对不上/没有准时产出/结果出现波动等情况,但它们的结果却是相同的,就是“数据质量”不好。

因此,我们应该把数据质量进一步切分,分为“用户可见”的数据质量,和“研发可见”的数据质量。解决“用户可见”是“治标”,通过快速恢复结果的兜底方案,来解决用户侧的问题,解决一时的困境;而解决“研发可见”是“治本”,对研发过程中平台可靠、建模清晰、数据安全等根本问题进行考量,解决长期的困境。

|0xFF “治本”,就要转换观念

大一点的公司都会配有数据测试团队,但大部分的数据开发同学对测试没有太强的感知,因为不会像后端团队那样,被各种测试的流程卡住,总体上还是处于比较早期的阶段:讲效率、重产出、轻规范。

这个其实涉及到数据团队的定位问题,因为我们更多的将自己定位成业务人员,是站在与产品/运营同一角度,来解决业务问题的,而不是像工程团队那样,以稳定性为第一要务,那么要彻底解决数据质量的问题,首先就要将自己的身份定位转换过来,以研发过程的规范为抓手,来统筹整个质量体系的建设。

那么很多人要问了,我们考核的标准,不应该是价值的产出吗?如果站在业务团队的角度出发,是的,但如果站在工程团队的角度出发,就不是。道理很简单,对于工程团队,数据质量和交付效率才是第一要求,至于业务的价值,占比就不应该太重。

如果我们将重心放在产出上,那么对于数据出现的问题,往往倾向于用“治标”的方式来解决,例如动不动就降级、看不懂就不管、出了问题再解决。而只有把重心转向研发过程的管控,也就是考虑平台的性能是否满足需求、调度系统设计的不合理如何解决、数据模型如何更加合理、数据事故如何有效复盘,才能真正的“治本”。

当然,这是一个一线工程师无法自己决定的决策,但不论如何,我们应该有这样的意识,即当未来社会的发展向数字化迈进的时候,数据从业者也会产生分化,一部分人需要更多的考虑业务问题,而另一部分人需要更多的考虑质量问题。

但眼下,我们需要与测试的同学进行协作,先解决当前的问题,也就是数据测试流程的规范化,这个我们下期再说。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据全样⽽⾮抽样原理_⼀⽂带你了解什么是⼤数据 科技是第⼀⽣产⼒。进⼊世纪的第⼀个20年以来,⼈们越来越多地将关注的领域集中在⼤数据、⼈⼯智能、云计算、物联⽹、移动互联 ⽹、GIS、AR与VR、5G、区块链、数字化与智慧化等,尤其为最近的风⼝"ABC"。笔者也⼀直在关注这⽅⾯的研究与学习,最近趁着 有时间,将把⼀些科普性的概念写出来,以帮助关注该领域的⼈更好地理解这⼏个热点领域的知识,本次分享将介绍⼀下⼤数据的产⽣、概 念、影响以及技术⽀撑。 1、Why.为什么会产⽣⼤数据? 我们遇到⼀个概念或者⼀个问题的思路就是去问"为什么?"同样,提起到⼤数据,我们会想,之前为什么不是⼤数据时代(DT),为什么现 在是?这⾥我分享⼏点我的看法。⼀个⽅⾯,产⽣⼤数据的⼀个基础是我们的计算存储技术发⽣了⾰命性的变化,从数据⼤⼩的单位来看, 数据⼤⼩的单位可以分为Bit 现在我们称为⼤数据,我相信单位⾄少是PB级别的,因为TB已经在我们的⽣活中很常见。存储技术的发展使得计算机的存储能⼒得到了飞 速的进步,我们不会再像以前那样为了节省空间会清理掉部分的数据,⽽是基本上在那个地⽅放着。基于⾜够性价⽐、⾜够低成本的存储技 术,这使得数据变得"⼤"有了最基本的⽀撑。另⼀个⽅⾯,数据产⽣的主体与范围发⽣了重要的变化,之前数据的产⽣只靠计算⼯作⼈员 与运营⼈员的输⼊,⽽现在随着⾃媒体的发展,⼈⼈都是数据的⽣产者,数据的量呈指数增长,最近⼜随着物联⽹、感知监测设备、GIS等 技术的发展,不仅⼈是数据产⽣的组成部分,其他⾮⼈物体、地⾯信息、空⽓检测信息都能作为数据产⽣源,并且⽆时⽆刻都在产⽣数据。 总结来说,过去我们对数据做"减法",现在我们不减,⽽且持续在做"加法"。 2、what,⼤数据的概念及特征 ⼤数据主要体现在⼀个"⼤"⼤字上⾯,谈及⼤数据,我们经常⽤"4V"来描述,第⼀,Volume,即容量⼤、体积⼤,正如前⾯所说,⼤ 数据的单位应该以PB起步,企业甚⾄可以到EB。第⼆个,Velocity,即⾼速,速率快,⼤数据产⽣的速度是很快的,有个知名的说法,即⼤ 数摩尔定律,据测算,现在每两年数据就会翻⼀倍,这个增长量是及其可怕的。第三个,Variety多样性,之前产⽣的数据多半是结构化的 数据,⽐如多是数值型,⽽现在越来越多产⽣图⽚,⾳频,视频,⽹页等半结构化的数据数据类型的多样性也是⼤数据的重要体现。第四 个,Value,即有价值但⼜密度低,⼤数据的背后藏着丰富的商业价值,但是因为海量数据,真正有价值的数据却很难挖掘,数据的价值密度 很低。 3、⼤数据的影响 ⼤数据的影响可以主要概括为,全样⽽⾮抽样,效率⽽⾮准确,相关⽽⾮推断。以前我们获得数据很难,我们会抽样作分析,现在随着⼤数 据的⽀撑,我们做全样研究很简洁⽅便。基于之前的抽样研究,我们往往追求模型的准确性,⽽忽略了效率,⼤数据的时代,分秒必争,在 这⼀秒,数据是有价值的,⽽到下⼀秒,数据就会失去价值,所以⼤数据时代,效率是王道。最后我们不会再关注特征与特征之间,或者说 变量与变量之间的因果推断,⽽是发现他们相关即可,这在智能推送过程中显得尤为重要。 4、⼤数据的技术⽀撑 ⼤数据的技术⽀撑主要体现在四个⽅⾯,主要是数据采集,数据存储与管理、数据处理与分析、数据隐私与安全。其中最为核⼼的是存储与 处理,两者都采⽤分布式原理,即分布式存储,主要有HDFS,NoSQL,NewSQL;分布式处理,即MapReduce。数据的存储利⽤分布式⽂ 件系统,云数据库,实现对结构化、半结构化和⾮结构化海量数据进⾏存储。⽽数据处理利⽤分布式并⾏编程模型,集合机器学习与数据挖 掘算法,实现对海量数据的处理与分析,并对分析结构进⾏可视化呈现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值