华为是如何确保数据质量的?非常强大!
超级会员年卡
企业数据来源于多个不同的业务系统,数据流转、处理环节多,用“Garbage in Garbage out(垃圾进,垃圾出)”原则保证数据质量已成为数字化转型企业的共识。企业数据质量管理是一个系统性的工程,华为数据质量从数据质量领导力、数据质量持续改进、数据质量能力保障三方面展开,有机结合形成联动。
01
什么是数据质量
ISO9000标准对质量的定义为“产品固有特性满足要求的程度”,其中“要求”指“明示的、隐含的或必须履行的需求或期望”,强调“以顾客为关注焦点”。
在Won Kim的论文“A Taxonomy of Dirty Data”中,数据质量被定义为“适合使用”,即数据适合使用的程度、满足特定用户期望的程度。
数据质量不是追求100%,而是从数据使用者的角度定义,满足业务、用户需要的数据即为“好”数据。
华为数据质量指“数据满足应用的可信程度”,从以下六个维度对数据质量进行描述。
1)完整性:指数据在创建、传递过程中无缺失和遗漏,包括实体完整、属性完整、记录完整和字段值完整四个方面。完整性是数据质量最基础的一项,例如员工工号不可为空。
2)及时性:指及时记录和传递相关数据,满足业务对信息获取的时间要求。数据交付要及时,抽取要及时,展现要及时。数据交付时间过长可能导致分析结论失去参考意义。
3)准确性:指真实、准确地记录原始数据,无虚假数据及信息。数据要准确反映其所建模的“真实世界”实体。例如员工的身份信息必须与身份证件上的信息保持一致。
4)一致性:指遵循统一的数据标准记录和传递数据和信息,主要体现在数据记录是否规范、数据是否符合逻辑。例如同一工号对应的不同系统中的员工姓名需一致。
5)唯一性:指同一数据只能有唯一的标识符。体现在一个数据集中,一个实体只出现一次,并且每个唯一实体有一个键值且该键值只指向该实体。例如员工有且仅有一个有效工号。
6)有效性:指数据的值、格式和展现形式符合数据定义和业务定义的要求。例如员工的国籍必须是国家基础数据中定义的允许值。
02
数据质量管理范围
提到数据质量管理,经常有人会问:数据质量和流程质量有什么区别?流程质量是基于流程结果评估业务执行的好坏,数据质量更关注业务对象、业务规则、业务过程、业务结果等数据是否得到了及时记录。以采购验收为例,采购验收及时性属于流程质量,送达到验收所需时间满足3天的SLA即属于流程质量合格;而验收数据录入及时性属于数据质量,验收到录入所需时间满足1天的SLA即属于数据质量合格。
03
数据质量的总体框架
华为以ISO8000质量标准体系为依据,设计了PDCA(Plan、Do、Check、Action、计划、执行、检查、处理)持续改进的数据质量管理框架,如图7所示。
图7:数据质量管理框架
数据质量管理以数据清洁为目标,以业务需求为驱动,通过PDCA的循环,提升数据质量,达到数据质量结果满意。领导力模块通过制定政策、规范来构建数据质量管理机制,对数据质量的工作起牵引作用。能力保障模块构建完整的数据组织、流程和工具,起到支撑作用。
1)自上而下打造数据质量领导力
数据质量政策应该有不同的层次,数据质量的管控要兼顾宏观方面的指导原则以及微观层面的具体操作要求,引导正确的业务行为,提升企业成员的数据质量意识。
2)全面推进数据质量持续改进机制
提升数据质量是为了满足业务应用,业务战略变化会产生新数据,对数据应用提出更高的要求,使得数据质量管理范围、目标发生变化,因此数据质量管理是动态、持续的循环过程。
3)不断加强数据质量能力保障
数据质量管理具有专业性,需要专业团队制定数据质量管理策略、流程、规范等,通过技术工具实现自动融入日常业务。通过不断提升数据质量管理组织的管理水平、改善数据质量工具平台,使企业数据质量获得进一步提高。
04
全面监控企业业务异常数据
不论做了多少数据质量预防措施,实施多严格的数据质量过程控制,只要涉及人为干预,总会存在数据质量的问题。为了避免或降低数据质量对业务的影响,要能及时发现数据质量问题。问题的发现既可以“正向”主动监控,也可以“逆向”通过下游环节反馈问题来识别。主动发现、制定解决方案、采取行动,比被动采取补救措施效果更好,并且代价更小。数据质量监控环节必不可少,本节重点讲述基于异常数据的数据质量
监控。
1. 数据质量规则
异常数据是不满足数据标准、不符合业务实质的客观存在的数据,如某位员工的国籍信息错误、某位客户的客户名称信息错误等。
数据在底层数据库多数是以二维表格的形式存储,每个数据格存储一个数据值。若想从众多数据中识别出异常数据,就需要通过数据质量规则给数据打上标签。
数据质量规则是判断数据是否符合数据质量要求的逻辑约束。在整个数据质量监控的过程中,数据质量规则的好坏直接影响监控的效果,因此如何设计数据质量规则很重要。
依据数据在数据库落地时的质量特性及数据质量规则类型,设计如下四类数据质量分类框架。
1)单列数据质量规则。关注数据属性值的有无以及是否符合自身规范的逻辑判断。 2)跨列数据质量规则。关注数据属性间关联关系的逻辑判断。 3)跨行数据质量规则。关注数据记录之间关联关系的逻辑判断。 4)跨表数据质量规则。关注数据集关联关系的逻辑判断。
华为结合ISO8000数据质量标准、数据质量控制与评估原则(国标SY/T 7005—2014),共设计了15类规则,具体如图8所示。
图8:数据质量规则
规则类型的详细说明如表1所示。
表1:规则分类内容及示例
当我们发现某个数据格的数据异常时,往往会思考这一列其他的数据格是否也存在同样的问题,是否应该对这一列的其他数据格进行检查。因此数据质量规则一般以业务属性(即数据列)为对象,数据质量规则类型为颗粒度进行设计和应用。这样既方便获取业务属性的整体数据质量状况,又可清晰定位异常数据、识别严重问题、制定解决方案,同时数据质量规则也不会因互相交织而过于庞大,方便后续的运营维护。
我们以员工“邮箱地址”业务属性为例设计数据质量规则进行数据质量检查。根据业务问题反馈、数据源剖析及15类数据质量规则对数据遍历的综合结果,我们设计了“不可为空类”“语法约束类”“格式规范类”三个数据质量规则进行数据质量检查。同时对这三个子规则向上收敛,形成“邮箱地址”业务属性的完整的主规则,这种层级关系我们称之为“规则树”,如图9所示。
图9:规则树示例
通过规则树,我们既能统计出共有多少员工的“邮箱地址”数据异常,又可分别统计各子规则的异常数量,从而快速识别出当前哪个问题更严重(异常数量越多,问题越严重)。因此我们在制定相应的解决方案时,可能会优先解决问题严重的子规则。
在如图10所示的规则应用结果中,我们可以看到6位员工的“邮箱地址”有异常,其中“不可为空类”的异常有5个,占比最大,且解决此问题的技术手段简单,成本较低。因此我们决定先解决邮箱地址“不可为空”的问题,在数据产生系统中根据数据质量规则增加防呆设计。
图10::规则应用结果
这里需要强调的是,并不是每一个属性都会涉及上述15类规则,例如“记录唯一类”规则,适用于“员工ID”但不适用于“员工姓名”;“值域约束类”规则,仅适用于有枚举值列表的业务属性。同时,随着解决方案的落地、历史数据的清理、新需求的开发,需要进行监控的数据质量规则也会随之新增、变更、取消。例如上面所提到的“邮箱地址”的“不可为空类”规则,当IT系统实现了防呆功能且完成历史数据清理后,监控持续一段时间里异常率都为0,则规则可下线。所以,数据质量规则的生命周期是随着数据治理范围的扩大和数据治理程度的深入而更新的。
来源:本文节选自《华为数据之道》华为公司数据管理部撰写,全面总结华为在数据治理和数字化转型方面的经验、方法论、模型、规范、解决方案,本文经机械工业出版社授权原创发布。
华为HRBP特训营:体系运作实践