数仓系列第9篇:数据质量

浊酒南街 浊酒南街     2022-10-22     381

关键词:

目录

导读:

随着大数据行业的深入发展,数据质量越来越成为一个绕不开的话题,那当大家在聊数据质量的时候,通常会聊什么呢?从什么是数据质量开始。

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值。
数据质量中代码值域首先要指定企业级的统一编码表,然后按照对照关系进行 etl 转换,至于出报告只需要通过 sql 查询不再范围内的数值就可以了。

长度约束

描述检核对象的长度是否满足长度约束。
例如身份证号是 18 位。
长度约束可以通过建表时指定字符长度去限制,如果业务系统最初没有做限制,只能通过 sql 判断长度的方式获取异常值再进行处理。

内容规范约束
描述检核对象的值是否按照一定的要求和规范进行数据的录入与存储。
例如:余额或者日期等一般都会按照固定类型存储,如果最初设计为字符型后续应按照对应类型调整。
首先这种情况最好一开始就建立好统一规范,按照业务含义去指定技术类型。如果最初做的不好,可以通过类型进行数据探查,对数据统一格式化。

取值范围约束
描述检核对象的取值是否在预定义的范围内。
例如:余额不能为负数,日期不能为负数等等。
如果业务初始没有做限制,只能通过 sql 去对数据过滤查询,对有问题数据集中 etl 处理。

05数据一致性

数据一致性维度大类下可细分为以下维度小类:
等值一致性依赖约束:描述检核对象之间数据取值的约束规则。一个检核对象数据取值必须与另一个或多个检核对象在一定规则下相等。

存在一致性依赖约束:描述检核对象之间数据值存在关系的约束规则。一个检核对象的数据值必须在另一个检核对象满足某一条件时存在。

逻辑一致性依赖约束:描述检核对象之间数据值逻辑关系的约束规则。一个检核对象上的数据值必须与另一个检核对象的数据值满足某种逻辑关系(如大于、小于等)。

等值一致性依赖约束
一般指外键关联的场景。例如:保单表,理赔表的保单号存在保单主表,同一张表,两个字段之间的关联关系。

存在一致性依赖约束
主要是强调业务的关联性,一个状态发生了则某个值一定会如何。
例如:投保状态为已投保,则投保日期不应为空;

逻辑一致性依赖约束
主要强调的是字段间的互相约束关系。
例如:投保开始时间小于等于投保结束时间。

06数据准确性

数据准确性主要是指取值的准确性,描述该检核对象是否与其对应的客观实体的特征相一致。
例如:投保人的性别代码为 0-女性,虽然满足代码值域约束,但却不满足取值准确性约束,因为该人为男性,其性别代码应为 1-男性;
再如:国际保函业务的手续费应录入为国际担保手续费收入,却录入成国内担保手续费收入。
准确性要求不仅数据的取值范围和内容规范满足有效性的要求,其值也是客观真实世界的数据。由此可见,有效的数据未必是准确的,反之成立。
准确性通常需要业务人员或其他当事人手工核查。

对待这种情况,数据质量规则没办法直接统一处理,只能通过即使查询的方式对数据结果进行详细核查。

07数据及时性

及时性约束:描述检核数据能否及时反映其对应的实际业务的时点状态。
例如:系统中贷款五级分类的分类比实际中的延迟几天变化;再如理财业务在理财系统中是成功状态,但在核心系统中却因通信的原因而没有入账。
及时性由于多个系统、通信等原因而造成,通常需要业务人员或系统人员手工核查。
一般来说数据同步都是基于业务系统的落表技术字段(比如:CREATE_DT),而真是业务发生的时间可能与该字段存在时间间隔。可以通过简单的sql对两个时间比较,判断数据的及时性是否符合需求。

08数据可信性

数据可信性约束:描述再数据同步中每日/月增量数据是否符合理论的经验值。
例如:保单数据的每日分区数据较前日一般有 10% 增长,突然数据增长变为200%,这种情况有可能时数据同步出现问题。
再如:每月的营收总额一般都按一定规律上涨,突然数据波动较大则一般都可能出现问题。
可信性要求数据的总量波动符合基本客观规律,一般通过对 7,15,30 日数据进行比较,如果出现差距较大则进行详细的问题探查。

数仓系列第10篇:数据治理

目录01数据治理、数据管理与数据管控02系统架构、应用架构和数据架构03数据标准、数据模型、数据资产、数据分布04数据仓库、数据湖与数据中台05数据中台是什么,不是什么,为什么06结语01数据治理、数据管理与数据... 查看详情

数仓系列第10篇:数据治理

目录01数据治理、数据管理与数据管控02系统架构、应用架构和数据架构03数据标准、数据模型、数据资产、数据分布04数据仓库、数据湖与数据中台05数据中台是什么,不是什么,为什么06结语01数据治理、数据管理与数据... 查看详情

数仓系列第7篇:数仓olap技术

...SQL)四、结束语导读:数据应用,是真正体现数仓价值的部分,包括且又不局限于数 查看详情

数仓系列第8篇:架构规范

目录导读:数据层次的划分数据分类架构数据处理流程架构数据划分及命名空间约定数据模型导读:本文以及后续章节中介绍的非功能性规范均为建议性规范,产品功能无强制,仅供指导。数据层次的划分ODS:... 查看详情

数仓系列第8篇:架构规范

目录导读:数据层次的划分数据分类架构数据处理流程架构数据划分及命名空间约定数据模型导读:本文以及后续章节中介绍的非功能性规范均为建议性规范,产品功能无强制,仅供指导。数据层次的划分ODS:... 查看详情

数仓系列第11篇:实时数仓

...的发展3.数据仓库建设方法论4.数据仓库架构的演变5.实时数仓案例6.实时数仓与离线数仓的对比导读:本文将从数据仓库的简介、经历了怎样的发展、如何建设、架构演变、应用案例以及实时数仓与离线数仓的对比六个方面... 查看详情

数仓建模理论——高质量数据建模(代码片段)

数仓质量数据模型的概念和意义-DIKW低质量数据模型十宗罪:低质量数据模型的影响数仓必备技能1.建模基础-实体2.建模基础——属性(Attribute)3.域(Domain)NULL值的处理规范化——范式第一范式:原子性&#... 查看详情

freertos系列第9篇---freertos任务概述(代码片段)

1.任务和协程(Co-routines)   应用程序可以使用任务也可以使用协程,或者两者混合使用,但是任务和协程使用不同的API函数,因此在任务和协程之间不能使用同一个队列或信号量传递数据。   通常情况下&... 查看详情

企业数据治理实战总结--数仓面试必备

...,微众银行,众安保险等多家公司擅长大数据求职面试,数仓开发管理,数据治理,数据质量等工作,主导过相关平台的建设1 数据治理的背景在数据建设过程中,业务人员和数据开发人员在日常使用数据的过程中还是能感... 查看详情

数仓之数据质量及apachegriffin简介

概述垃圾进,垃圾出(garbagein,garbageout)。数据质量定义:数据质量可能不是数据治理的最核心部分,但可能会成为数据治理落地的最大障碍。评估一般从以下6个方面评估数据质量:完整性:数据的记录和信息是否完整,是否... 查看详情

网易严选离线数仓质量建设实践

做数仓最重要的是什么?一是模型易用性,二是数据质量。模型易用性我们可以通过建模规范、指标管理等方式去实现。而对于数据质量呢?本篇将以严选数仓为例,从建设目标、保障措施、效果评价等几方面探... 查看详情

网易严选离线数仓质量建设实践

做数仓最重要的是什么?一是模型易用性,二是数据质量。模型易用性我们可以通过建模规范、指标管理等方式去实现。而对于数据质量呢?本篇将以严选数仓为例,从建设目标、保障措施、效果评价等几方面探... 查看详情

数仓建模理论——高质量数据建模(代码片段)

数仓质量数据模型的概念和意义-DIKW低质量数据模型十宗罪:低质量数据模型的影响数仓必备技能1.建模基础-实体2.建模基础——属性(Attribute)3.域(Domain)NULL值的处理规范化——范式第一范式:原子性&#... 查看详情

数仓建模理论——高质量数据建模(代码片段)

数仓质量数据模型的概念和意义-DIKW低质量数据模型十宗罪:低质量数据模型的影响数仓必备技能1.建模基础-实体2.建模基础——属性(Attribute)3.域(Domain)NULL值的处理规范化——范式第一范式:原子性&#... 查看详情

stm32hal库学习系列第9篇---nvic按键外部中断函数(代码片段)

**针对HAL库的中断操作,使用按键实例进行说下,以供参考---------------------------**voidHAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin)//回调函数if(GPIO_Pin==KEY1_GPIO_PIN)HAL_Delay(20);//延时一小段时间,消除抖动if(HAL_GPIO_ReadPin(KEY1_GPIO,KEY1_GP 查看详情

如何保障数仓数据质量?(代码片段)

导读有赞数据报表中心为商家提供了丰富的数据指标,包括30+页面,100+数据报表以及400+不同类型的数据指标,它们帮助商家更合理、科学地运营店铺,同时也直接提供分析决策方法供商家使用。并且ÿ... 查看详情

java小白入门系列第三篇从新开始

...日   17:47:51郑州  西北风SueJava小白入门系列第三篇从新开始  越过中秋,迈过国庆,这一个多月乱七八糟又不得不应对的事接踵而至,好在学习一直在持续,用户中心的项目今天终于收尾测试并开始复习,就... 查看详情

rk3399平台开发系列讲解(内核调试篇)9.38使用bushound抓usb设备数据包

平台内核版本安卓版本RK3399Linux4.4Android7.1 查看详情