当我们聊数据质量的时候,我们在聊些什么?
点击上方 "云祁QI"关注, 星标或置顶一起成长
大家好,我是云祁!
今天和大家分享一篇关于数据质量的讨论。随着大数据行业的深入发展,数据质量越来越成为一个绕不开的话题,那当大家在聊数据质量的时候,通常会聊什么呢?
01
什么是数据质量
将维度与业务需求相匹配,并且划分评估的先后顺序
了解从每一维度的评估中能够/不能够得到什么
在时间和资源有限的情况下,更好地定义和管理项目计划中的行动顺序
完整性(Completeness):用来描述信息的完整程度
唯一性(Uniqueness):用来描述数据是否存在重复记录,没有实体多余出现一次
有效性(Validity):用来描述模型或数据是否满足用户定义的条件。通常从命名、数据类型、长度、值域、取值范围、内容规范等方面进行约束
一致性(Consistency):用来描述同一信息主体在不同的数据集中信息属性是否相同,各实体、属性是否符合一致性约束关系
准确性(Accuracy):用来描述数据是否与其对应的客观实体的特征相一致(需要一个确定的和可访问的权威参考源)
及时性(Timeless):用来描述从业务发生到对应数据正确存储并可正常查看的时间间隔程度,也叫数据的延时时长,数据在及时性上应能尽可能贴合业务实际发生时点
可信性(credibility):用来描述数据发生是否符合客观规律
每一规则维度可能需要不同的度量方法、时机和流程。这就导致了完成检核评估所需要的时间、金钱和人力资源会呈现出差异。
数据数据质量的提升不是一蹴而就的,在清楚了解评估每一维度所需工作的情况下,选择那些当前较为迫切的检核维度和规则,从易到难、由浅入深的逐步推动数据质量的全面管理与提升。
02
数据完整性
非空约束:描述检核对象是否存在数据值为空的情况。如客户开户时,客户名称是必填项,不能出现为空的情况。
非空约束
非空约束比较容易理解,简单的讲就是字段不能为空,检查方式也比较容易,只需要设定需要检查的字段,通过 sql 查询列值不能为空即可。将为空的数据查询出来进行整改。
03
数据唯一性
唯一性约束:描述同一客观实体在不同业务数据集中的信息,经整合后是唯一的,针对目标通常是单一主键或联合主键,如证件类型+证件号码+姓名相同,则其客户编号应唯一。
唯一性约束
04
数据有效性
代码值域约束:描述检核对象的代码值是否在对应的代码表内。如业务规则定义"性别"的取值应该是"1-未知的性别"、"2-男性"、"3-女性"、"4-未说明的性别",如果出现"A"、"B"这样的取值,则认为“性别”的代码值域存在问题 长度约束:描述检核对象的长度是否满足长度约束。如"金融机构编码"在《人民银行金融机构编码规范》中规定长度为14位,如果出现非14位的值,则判定为不满足长度约束,不是一个有效的"金融机构编码"
内容规范约束:描述检核对象的值是否按照一定的要求和规范进行数据的录入与存储。如"存款账号"应仅含数字,如果出现字母或其他非法字符,则不是一个有效的"存款账号",不满足内容规范约束
取值范围约束:描述检核对象的取值是否在预定义的范围内。如“授信额度”取值范围应大于等于0,如果出现小于0的情况,则超出了取值范围的约束,不是一个有效的"授信额度"
代码值域约束
描述检核对象的值是否按照一定的要求和规范进行数据的录入与存储。
例1 : 依业务规则性别只有"0:男","1:女",则性别字段只应出现0或1。
例2 : 货币代码 (CURCODE) 只应有RMB
或是USD
值。
长度约束
描述检核对象的长度是否满足长度约束。例如身份证号是18位。
长度约束可以通过建表时指定字符长度去限制,如果业务系统最初没有做限制,只能通过sql判断长度的方式获取异常值再进行处理。
内容规范约束
描述检核对象的值是否按照一定的要求和规范进行数据的录入与存储。例如:余额或者日期等一般都会按照固定类型存储,如果最初设计为字符型后续应按照对应类型调整。
取值范围约束
描述检核对象的取值是否在预定义的范围内。例如:余额不能为负数,日期不能为负数等等。
05
数据一致性
数据一致性维度大类下可细分为以下维度小类:
等值一致性依赖约束:描述检核对象之间数据取值的约束规则。一个检核对象数据取值必须与另一个或多个检核对象在一定规则下相等
存在一致性依赖约束:描述检核对象之间数据值存在关系的约束规则。一个检核对象的数据值必须在另一个检核对象满足某一条件时存在 逻辑一致性依赖约束:描述检核对象之间数据值逻辑关系的约束规则。一个检核对象上的数据值必须与另一个检核对象的数据值满足某种逻辑关系(如大于、小于等)
等值一致性依赖约束
存在一致性依赖约束
主要是强调业务的关联性,一个状态发生了则某个值一定会如何。例如:投保状态
为已投保,则投保日期
不应为空。
逻辑一致性依赖约束
主要强调的是字段间的互相约束关系。例如:投保开始时间
小于等于投保结束时间
。
06
数据准确性
0-女性
,虽然满足代码值域约束,但却不满足取值准确性约束,因为该人为男性,其性别代码应为1-男性
;国际担保手续费收入
,却录入成国内担保手续费收入
。准确性要求不仅数据的取值范围和内容规范满足有效性的要求,其值也是客观真实世界的数据。由此可见,有效的数据未必是准确的,反之成立。
准确性通常需要业务人员或其他当事人手工核查。
07
数据及时性
及时性约束:描述检核数据能否及时反映其对应的实际业务的时点状态。
例如:系统中贷款五级分类
的分类比实际中的延迟几天变化;再如理财业务在理财系统中是成功状态,但在核心系统中却因通信的原因而没有入账。
及时性由于多个系统、通信等原因而造成,通常需要业务人员或系统人员手工核查。
08
数据可信性
数据可信性约束:描述再数据同步中每日/月增量数据是否符合理论的经验值。
例如:保单数据的每日分区数据较前日一般有10%增长,突然数据增长变为200%,这种情况有可能时数据同步出现问题。
我是「云祁」,一枚热爱技术、会写诗的大数据开发猿,欢迎大家关注呀!
全面解读数据中台、数据仓库和数据湖
数据治理怎么做?这篇万字长文终于讲清楚了!
关于OLAP数仓,这大概是史上最全面的总结!(万字干货)
关于未来数据开发技术方向的观点
大白话彻底搞懂HBase Rowkey设计和实现