数据治理5-企业数据质量建设与实战
一、企业数据质量基础概述
数据质量在大数据中是很重要的一环,是数据治理版块的核心部分。数据质量同时也依赖底层统一元数据服务和任务调度服务。
1.1. 数据质量的重要性?(价值角度看)
数据质量的重要性在现代企业中变得越发突出。以下是数据质量的几个关键方面,说明其对企业的重要性:
-
决策基础:数据质量直接影响到企业决策的准确性和可靠性。如果数据存在错误、不完整或不一致,决策者将无法获得准确的信息,从而可能导致错误的决策和策略。高质量的数据可以为管理层提供可靠的依据,使其能够做出明智的决策。
-
客户满意度:数据质量直接关系到企业与客户之间的关系。如果客户的个人信息被错误记录或泄露,将对客户的信任产生负面影响。另外,数据质量也影响到客户服务和沟通的效果。准确、及时、一致的数据有助于提供个性化的服务,满足客户需求,增强客户忠诚度。
-
业务流程效率:高质量的数据可以提升业务流程的效率和准确性。例如,在供应链管理中,准确的库存数据和供应商信息可以帮助企业更好地进行库存控制和物流规划。而数据质量低下可能导致错误的订单处理、物料短缺或过剩,从而影响业务流程的正常运转。
-
成本控制:低质量的数据可能导致额外的成本和资源浪费。数据错误和不一致性会增加纠错和修复的工作量,导致人力资源和时间的浪费。此外,数据质量问题还可能导致重复劳动、产品退货、客户投诉等额外成本。通过确保数据质量,企业可以降低这些不必要的成本。
-
法规合规:许多行业都有严格的数据保护和隐私法规要求。保持数据的准确性、完整性和保密性对于遵守法律法规非常重要。数据泄露或数据不符合合规要求可能会面临罚款、声誉损害和法律诉讼等风险。
综上所述,数据质量对企业的重要性不可忽视。高质量的数据有助于提高决策质量、增强客户满意度、提升业务流程效率、降低成本并确保法规合规。因此,企业应重视数据质量管理,并采取适当的措施来确保数据的准确性、完整性,一致性。
1.2. 数据质量出问题的环节,问题的分类?
1.2.1. 数据质量出问题的环节?
衍生问题:数据质量为什么要做?哪些环节数据容易出问题?数据质量管理为什么很重要?定位问题,解决问题
大数据的建设和管理是一个专业且复杂的工程,涵盖了业务梳理、标准制定、元数据管理、数据模型管理、数据汇聚、清洗加工、中心存储、资源目录编制、共享交换、数据维护、数据失效等等过程。在任何一个环节中出错,都将导致数据的错误。甚至,源头数据本身就是错误的。所以,数据质量问题不仅仅是一个技术问题,它也可能出现在业务和管理的过程中。
1.2.2. 数据质量有可能出哪些问题?(数据角度)
-
数据缺失:数据缺失是指在数据集中某些字段或记录缺少必要的数据值。数据缺失可能导致分析结果的不准确性和不完整性,影响决策的可靠性。
-
数据错误:数据错误指的是数据值与实际情况不符或包含错误信息。例如,记录的日期格式错误、数字数据的计算错误等。数据错误可能导致错误的分析结果和决策。
-
数据不一致:数据不一致是指同一类数据在不同数据源或系统中存在差异。例如,同一客户的信息在不同系统中有不一致的记录。数据不一致性给数据集成和共享带来困难,影响数据的可靠性和一致性。
-
数据重复:数据重复指同一数据记录在数据集中出现多次。数据重复会导致数据冗余和资源浪费,增加数据处理和存储的成本。
-
数据精度问题:数据精度问题包括数据的精确性和精度。数据的精确性指数据值与实际情况的一致性,而数据的精度指数据的有效数字位数或小数位数。数据精度问题可能导致错误的计算和分析结果。
-
数据不完整:数据不完整是指数据集中某些字段或记录缺少部分数据。例如,客户信息中缺少联系方式或地址信息。数据不完整会降低数据的可用性和决策的准确性。
-
数据格式问题:数据格式问题指数据的格式与要求不符合,例如日期格式、文本格式等。数据格式问题可能导致数据解析错误和数据集成问题。
-
数据安全和隐私问题:数据安全和隐私问题是指数据在存储、传输和处理过程中受到未经授权的访问、泄露或篡改的风险。数据安全和隐私问题可能导致数据泄露、侵犯用户隐私,对企业声誉和合规性造成影响。
1.2.3. 数据质量出问题的原因规类总结?(分类角度)
三个角度,业务、技术、管理
数据质量的技术因素
-
数据标准制定的质量问题:数据输入规范不统一,不同的业务部门、不同的时间、甚至在处理相同业务的时候,由于数据输入规范不同,造成数据冲突或矛盾。如果在数据的生成过程中包含主观判断的结果,必然会导致数据中含有主观的偏见因素。并且,不是所有行业都有公认可信的数据标准,而组织标准制定过程中容易出现数据元描述及理解错误,代码码集定义不正确、不完整等情况。
-
数据模型设计的质量问题:由于对业务理解的不到位或技术实践水平不到位,数据库表结构、数据库约束条件、数据校验规则的设计不合理,造成数据存储混乱、重复、不完整、不准确。
-
数据源本身存在质量问题:在生产系统中有些数据就存在不规范、不完整、不准确、不一致等问题,而采集过程没有对这些问题做清洗加工处理,或清洗加工的程序代码不正确。
-
数据梳理过程的质量问题:在数据采集之前,需要梳理组织机构、业务事项、信息系统、数据资源清单等信息,那么对业务的理解不到位,将造成梳理报告的不完整或不正确。
-
数据采集过程的质量问题:采集点、采集频率、采集内容、映射关系等采集参数和流程设置的不正确,数据采集接口效率低,导致的数据采集失败、数据丢失、数据映射和转换失败。
-
数据清洗加工的质量问题:数据清洗规则、数据转换规则、数据装载规则配置有问题,甚至未按照数据标准开展相应的清洗加工工作,自由发挥的空间过大。并且在数据汇聚的过程中,没有及时建立数据的相关性,导致后期很难补充完善。
这些数据质量问题对企业的数据分析、决策和运营都会带来负面影响。因此,建立数据质量体系和采取相应的数据质量管理措施是重要的,以确保数据的准确性、完整性、一致性和安全性。
数据质量的业务因素
-
业务理解不到位:数据的业务描述、业务规则、相关性分析不到位,导致技术无法构建出合理、正确的数据模型。
-
业务流程的变更:业务流程一变,数据模型设计、数据录入、数据采集、数据传输、数据清洗、数据存储等环节都会受到影响,稍有不慎就会导致数据质量问题的发生。
-
数据输入不规范:常见的数据录入问题,如:大小写、全半角、特殊字符等一不小心就会录错,甚至还会将数据输入到错误的字段中,造成“张冠李戴”。人工录入的数据质量与录数据的业务人员密切相关,录数据的人工作严谨、认真,数据质量就相对较好,反之就较差。
-
业务系统烟囱林立:过去 20 年中,只要是稍大一点的企业和政府部门,都建设了一批信息化系统来解决业务问题,但也导致了如今信息化整合的痛点和困难,变先发优势为数据困境。
-
数据作假:操作人员为了提高或降低考核指标,对一些数据进行处理,使得数据真实性无法保证。
数据质量的管理因素
-
人才缺乏:组织以自身的业务发展的主要原则组建团队,数据建设则依赖于外部服务公司,而自身没有建立相应的管理手段和监督机制,从而无法准确判断数据项目的建设成效。
-
流程管理不完善:缺乏有效的数据质量保障机制和问题处理机制,数据质量问题从发现、指派、处理、优化没有一个统一的流程和制度支撑,数据质量问题无法闭环。
-
成员意识不开放:组织管理缺乏数据思维,没有认识到数据质量的重要性,重系统而轻数据,认为系统是万能的,数据质量差些也没关系。组织成员没有从组织战略的视角来看待数据资产,而把数据看成是创造它的部门的资产,从而导致数据冗余、数据不一致、数据割裂,从而导致数据价值难以发掘。
-
奖惩机制不明确:没有明确数据归口管理部门或岗位,缺乏数据认责机制,出现数据质量问题找不到权威源头或找不到负责人。缺乏数据规划,没有明确的数据质量目标,没有制定数据质量相关的政策和制度。
1.3. 企业大数据的数据质量可以从哪些角度(维度)去保障(重要)?
数据质量维度:就是用来测量或者评估数据质量的哪些方面?也可以理解成数据治理问题的分类
目前为止,最权威的标准是由全国信息技术标准化技术委员会提出的数据质量评价指标(GB/T36344-2018 ICS 35.24.01),它包含以下几个方面:
-
规范性:指的是数据符合数据标准、数据模型、业务规则、元数据或权威参考数据的程度。例如 GB/T 2261.1-2003 中定义的性别代码标准是 0 表示未知性别,1 表示男,2 表示女,9 表示未说明。GB 11643-1999 中定义的居民身份证编码规则是 6 位数字地址码,8 位数字出生日期码,三位数字顺序码,一位数字校验码。
-
完整性:指的是按照数据规则要求,数据元素被赋予数值的程度。完整性是指数据的记录和信息是否完整,是否存在缺失的情况。数据的缺失主要包括记录的缺失和记录中某个字段信息的缺失,两者都会造成数据不准确,所以说完整性是数据质量最基础的保障。
比如交易中每天支付订单数都在 100 万笔左右,如果某一天支付订单数突然下降到 1 万笔,那么很可能是记录缺失了。对于记录中某个字段信息的缺失,比如订单的商品 ID、卖家 ID 是必须存在的,这些字段的空值个数肯定是 0,一旦大于 0 就必然违背了完整性约束。
-
准确性(可靠性):准确性也叫可靠性,体现在数据描述是否准确,数据计算是否准确,数据的值是否准确等。准确性是用于分析和识别哪些是不准确的或无效的数据,不可靠的数据可能会导致严重的问题,会造成有缺陷的方法和糟糕的决策。数据准确表示其所描述的真实实体(实际对象)真实值的程度。例如互联网+监管行政检查行为中的行政相对人为公民时,证件类型和证件号码只能是身份证号码。
-
一致性:多源数据的数据模型不一致,例如:命名不一致、数据结构不一致、约束规则不一致。数据实体不一致,例如:数据编码不一致、命名及含义不一致、分类层次不一致、生命周期不一致……。相同的数据有多个副本的情况下的数据不一致、数据内容冲突的问题。概述来说一致性指的是数据与其它特定上下文中使用的数据无矛盾的程度。例如,某公司有很多业务数仓分支,对于同一份数据,在不同的数仓分支中必须保证一致性(数仓各层数据经过 ETL 后,条数、数据值、类型需要与上层保持一致)。例如,从在线业务库加工到数据仓库,再到各个数据应用节点,用户 ID 必须保持同一种类型,且长度也要保持一致。
-
时效性(及时性):数据的及时性(In-time)是指能否在需要的时候获到数据,数据的及时性与企业的数据处理速度及效率有直接的关系,是影响业务处理和管理效率的关键指标,举个栗子,我要求某个报表每天要在老板上班9点前生产完,结合实际,我要求任务必须要在7点开始触发执行。保障数据的及时产出才能体现数据的价值。例如,决策分析师通常希望当天就可以看到前一天的数据。若等待时间过长,数据失去了及时性的价值,数据分析工作将失去意义。时效性指的是数据在时间变化中的正确程度。例如企业住址搬迁后,企业法人库中的住址是否及时更新了。营业执照已经办理,许可照办理时是否可以及时获取到营业执照信息。
-
可访问性:指的是数据能被访问的程度。
除此之外,还有一些业内认可的补充指标,并且在质量工作的实际开展中,可以根据数据的实际情况和业务要求进行扩展如下:
-
唯一性:描述数据是否存在重复记录(国标归在准确性中),比如主数据治理中的一物多码,多物一码的问题,要确保为每个数据实体赋予唯一的身份ID。·
-
稳定性(波动性):描述数据的波动是否是稳定的,是否在其有效范围内,这个稳定性在企业中使用的还是比较多,比如我每天正常订单数是1000w,上线浮动20%,超过这个范围就是不正常,那么我可以配置qcj监控,数据波动率±20%
-
可信性:描述数据来源的权威性、数据的真实性、数据产生的时间近、鲜活度高。
注意这只是参考标准,,实际每个企业会结合自己公司业务情况,有所侧重点。但是常规的比如及时性(时效性),一致性,完整性等都是必做数据质量监控;大家需要记住常用的几个qc标准。比如及时性,一致性,稳定性等
1.4. 企业数据质量实施流程(宏观数据质量建设)
事前管理
1)测试验证
测试验证方法如下:
总量核对,核对上下两步的数据总条数,没有过滤条件的话应该是一致的。
多维度统计,复杂的多维度指标拆分成单维度SQL统计,对每个指标分别进行核查。
多表关联统计,拆分成中间表进行核对每一步骤的指标。
明细到指标统计,比如随机找一台车的明细和最后统计的指标进行核对。
新老统计对比,比如有些指标是迁移或者之前业务手工制作,可以开发后的新指标同老指标进行对比。
测试需要有专门的数据测试人员进行测试,输出测试用例和测试报告。
2)上线审核
需要对上线的SQL代码进行审核,主要从以下几个方面:
对查询表的where后面的条件、join关联字段、group by分组字段等重点检查逻辑,和需求理解结合审核。
数据集命名、数据集字段命名、任务名称进行审核,是否按照数据仓库建设规范中的业务域、维度、原子指标、修饰类型、修饰词、时间周期、派生指标等标准进行命名。
代码注释审核,每一步处理需要有注释该步骤的作用,每个指标也要有注释,where条件等也要添加注释。
重要任务是否开启短信告警,任务启动时间等审核。
任务上线的位置是否符合上线标准,比如上线的数据层级与业务层级等。
上线审核需要审核人员按照以上步骤进行审核,对不合理的地方进行指正,审核人员和开发人员共同保障代码质量。
3)流程规范
需求上线时候需要在知识库中完成所开发需求逻辑说明
复杂需求(比如项目指标),需要团队至少两人以上评审需求后开发。
提交上线申请的同事需要备注上需求逻辑说明。
审核上线人员为“轮值”,审核上线人员需要review开发人员的代码,需要和开发人员共同承担代码质量
事中监控数据质量
指标开发完成后,需要对指标的波动情况进行监控,发现波动较大的进行核查,指标波动范围需要具体业务具体制定,需要业务人员协助确认。常用的数据质量监控方法如下:
1)校验每天的记录数
分析师遇到的最常见数据异常是其报告的输出突然降至0。我们通常会发现最后的罪魁祸首是当天没有将新记录添加到相应的表中。一种简单的检查方法是确保每天一个表中的新记录数>0。
2)NULL和0值校验
分析师常遇到的第二个问题是NULL或0值。我们要保证每天增量数据中的NULL或0值不能超过新增数据的99%。要检查这一点,只需将一个循环脚本设置为每天用NULL或0计数一个表中的新记录数。如果看到记录数急剧增加,则可能存在转换错误或源业务系统就存在异常。
3)每天新增的记录数波动范围
某一天你发现数据量出现大幅增长或下降,而规则1和2都已校验通过。这种波动可能是正常的,比如电商行业某天的大促活动,或者社交软件的营销活动。但是也可能这就是异常的,是因为从源系统抽取了重复的记录。所以针对此种情况,我们也要制定数据质量规则,检查这些波动何时发生,并主动进行诊断。比如自动执行的一个简单的SQL过程,每天检查COUNT个新记录是否在7天跟踪平均值的误差范围内。阈值和误差范围可能因公司和产品而异,经验值一般是加减25%。当然,你可也可以直接和前一天的数据对比,增量不超过前一天的1倍。
4)重复记录数据校验
不管是电商系统或者是社交系统或者是物联网设备上报的数据,正常情况下都不会出现两条完全一样的记录(包括ID,时间,值都一样)。笔者曾遇到一个终端上报的两条数据完全一样的场景,导致我在做时间分段时候,划分不正确。所以,对数据值唯一性校验是有必要的。
5)数据时间校验
一般我们业务系统的数据都是带有时间戳的,这个时间戳肯定比当前的时间要小。但是由于采集数据设备异常(业务系统异常),我们会碰到“未来时间”的数据,那如果我们以时间作为分区,后期可能就会出现异常的分析结果。当然,如果你的公司业务是跨国的,你需要考虑时差因素。
事后分析和问题跟踪
1)定期质量监控
定期质量监控也叫定期数据测量,是对某些非关键性数据和不适合持续测量的数据定期重新评估,为数据所处状态符合预期提供一定程度的保证。定期监控数据的状况,为数据在某种程度上符合预期提供保障,发现数据质量问题及数据质量问题的变化,从而制定有效的改进措施。定期质量监控就像人们定期体检一样定期检查身体的健康状态,当某次体检数据发生明显变化时,医生就会知道有哪些数据出现异常,并根据这些异常数据采取适当的治疗措施。对于数据也一样,需要定期对企业数据治理进行全面“体检”,找到问题的“病因”以实现数据质量的持续提升。
比如:每周定时跑一次程序,对全局数据进行质量稽核控制,如唯一性,非空性等.
2)数据问题补救
尽管数据质量控制可以在很大程度上起到控制和预防不良数据发生的作用,但事实上再严格的质量控制也无法做到 100%的数据问题防治,甚至过于严格的数据质量控制还会引起其他数据问题。因此,企业需要不时进行主动的数据清理和补救措施,以纠正现有的数据问题。
(1)清理重复数据
对经数据质量检核检查出的重复数据进行人工或自动处理,处理的方法有删除或合并例如:对于两条完全相同的重复记录,删除其中一条;如果重复的记录不完全相同,则将两条记录合并为一条,或者只保留相对完整、准确的那条。
(2)清理派生数据
派生数据是由其他数据派生出来的数据,例如:“利润率”就是在“利润”的基础上计算得出的,它就是派生数据。而一般情况下,存储派生出的数据是多余的,不仅会增加存储和维护成本,而且会增大数据出错的风险。如果由于某种原因,利润率的计算方式发生了变化,那么必须重新计算该值,这就会增加发生错误的机会。因此,需要对派生数据进行清理,可以存储其相关算法和公式,而不是结果。
(3)缺失值处理处理缺失值的策略是对缺失值进行插补修复,有两种方式:人工插补和自动插补。对于“小数据”的数据缺失值,一般采用人工插补的方式,例如主数据的完整性治理。而对于大数据的数据缺失值问题,一般采用自动插补的方式进行修复。
3)流程和模型优化
根据结果反哺优化数据质量管理成,管理标准等,对数据质量模型进行优化等措施
1.5.4. 企业数据质量问题分析与改进流程
二、企业数据质量设计与工程化
数据质量管理(Data Quality Management),是指对数据从计划、获取、存储、共享、维护、应用、消亡生命周期的每个阶段里可能引发的各类数据质量问题,进行识别、度量、监控、预警等一系列管理活动,并通过改善和提高组织的管理水平使得数据质量获得进一步提高。
2.1. 数据质量企业落地(工程化,工具化)
数据质量管理工具用于为企业特定的数据集定义数据质量规则,进行数据质量评估,开展数据质量稽查,并促进企业数据质量及相关业务流程的优化和改进。
2.1.1. 数据质量企业实际从哪些角度去做?
1、基于表监控
统计Count或者表实际占用的磁盘空间,PV(加group条件),UV(加group条件去重)可以提供几种默认报警规则根据平均值,上一次的值,或者7天前的值,与本次的值做比较,来设定是否报警,然后再提供自定义sql报警功能,比如表在规定的时间有没有生成?
2、基于字段
默认提供重复值校验,字段缺失率(为null或者空字符串的比例)打分,也可以自定义,如果是数值类型可以计算平均值,最大/最小,中位数,四分位数等指标
2.1.2. 总结各公司DQC质量系统的建设
企业一般是自研的数据质量平台DQC(耦合调度系统的),大数据开发使用这个平台,一般基于任务去配置任务级别的质量监控管理
DQC(Data Quality Check),数据质量检查。主键是否唯一,量级是否符合预期,维度等是否做了非空处理,指标字段数据类型精度等是否有问题。主键、波动、枚举,一定要检查验证。核心指标、核心模型,必不可少。数据质量是数据一致性的必要条件。基于上述,最好产出数据验证报告且wiki或知识库资产留存维护。通过配置 DQC 的数据质量校验规则,可以实现在数据处理过程中进行自动的数据质量监控。DQC 可以监控数据质量并报警,但它不对数据产出进行处理,需要报警接收人判断如何处理。
- 离线数据质量监控支持MaxCompute、EMR-Hive、Hologres和ADB-PG四种不同引擎。
- 同时支持内置模板规则、自定义SQL规则和自定义模板规则。
- 所有规则都支持四种不同的监控方式,包含绝对值监控、同比/环比监控(与上一周期业务比较)、波动率监控和动态阈值。
- 数据质量问题报警都可以支持短信、邮件和钉钉群通知的方式实现,这些数据质量问题和指标都会汇总到一个自定义质量报表上,然后通过邮件周期性发出来,也可以通过网页端实时查看。
三、数据质量企业实践总结
数仓的表很多,几万张,十几万张,上百万张,甚至千万张,数据质量规则也很多,内置模块多,同时也支持自定义配置,那么我们该如何选择?
3.1. 数仓各层数据质量监控实践总结
- 在数仓入口层,即数据引入层或基础层,主要关注数据的准确性和完整性。一般会检测主外键是否缺失,周期性数据量波动是否过大,无周期性则判断数据是否大于固定值,数据是否有重复导入问题,数据是否及时产生。可以通过设置数据校验规则,比如非空验证、数据类型验证、数据长度验证、数据范围验证等,来确保数据的准确性和完整性
- 在数据清洗层和加工层,一般会增加对清洗逻辑的监控,对数据的重复性和唯一性进行监控。比如在Join或者分组的时候出现重复数据的可能性。
- 在高度/轻度汇总层,对汇总逻辑进行平衡值监控,基于统计,比如求和、求平均、最大最小值等指标在汇总时是否产生了一些业务语义的变形(比如明细表某些数值列的求和值一定要和汇总表上对应列的求和值一致),监控这些平衡值以确保加工过程中汇总值不会出现业务语义上的形变。
- 维度表和事实表,需要关注主外键的一致性和维度值(离散值)数量监控
- 在出口层、应用层和报表层,需要通过特殊的业务逻辑,监控多表之间的平衡关联和特定业务的逻辑监控,可能就会用到自定义SQL规则。
3.2. 对哪些表进行监控?
数据质量监控通常针对业务关键的数据表进行配置。具体要监控哪些表,需要根据实际业务需求和数据质量目标来进行选择。
- 业务核心表:这些表通常包含了业务流程中最关键的数据,如订单表、用户表、商品表等。数据质量问题可能会直接影响业务运行和决策。
- 数据字典或基础数据表:这些表包含了系统中的基础数据,如地区表、行业表等。它们为其他表提供了参照信息,数据质量问题可能导致数据不一致或错误的关联。
- 统计汇总表:这些表包含了业务数据的汇总和统计信息,如日报、月报等。数据质量问题可能导致统计数据不准确,进而影响业务决策。
- 外部数据接口表:这些表用于与外部系统或数据源进行数据交换,如合作伙伴的数据接口表。数据质量问题可能导致数据交换失败或数据误差。
- 业务流程中涉及的其他关键表:这些表在业务流程中起到关键作用,如审批表、工作流表等。数据质量问题可能导致业务流程中断或异常。
配置数据质量监控时,需要关注以下几个方面:
-
数据完整性:确保关键字段值不为空,如订单号、用户ID等。
-
数据准确性:确保数据符合业务规则和约束条件,如价格不能为负数、手机号格式正确等。
-
数据一致性:确保数据在不同表之间保持一致,如用户表和订单表中的用户信息应保持一致。
-
数据唯一性:确保某些字段值在表中是唯一的,如订单号、用户ID等。
-
数据时效性:确保数据及时更新,如统计表应按照预定的时间周期进行更新。
配置好数据质量监控后,还需要定期对监控结果进行分析和异常数据进行处理,以确保数据质量得到持续改进。
四、数据质量体系与架构建设
数据质量管理包含正确定义数据标准,并采用正确的技术、投入合理的资源来管理数据质量。数据质量管理策略和技术的应用是一个比较广泛的范畴,它可以作用于数据质量管理的事前、事中、事后三个阶段。
数据质量管理应秉持预防为主的理念,坚持将“以预控为核心,以满足业务需求为目标”作为工作的根本出发点和落脚点,加强数据质量管理的事前预防、事中控制、事后补救的各种措施,以实现企业数据质量的持续提升
数据质量体系实操建议
步骤 | 数据质量监控告警的上线与使用 |
---|---|
第一步起步 | 1. 数据完整性:确保关键字段值不为空,如订单号、用户ID等。 2. 数据准确性:确保数据符合业务规则和约束条件,如价格不能为负数、手机号格式正确等。 3. 数据一致性:确保数据在不同表之间保持一致,如用户表和订单表中的用户信息应保持一致。 4. 数据唯一性:确保某些字段值在表中是唯一的,如订单号、用户ID等。 5. 数据时效性:确保数据及时更新,如统计表按预定的时间周期进行更新。 |
第二步完善 | 1. 数据质量报告与告警:根据监控结果,生成定期的数据质量报告,以便于管理层和相关人员了解数据质量状况。同时,设定数据质量告警机制,当发现数据质量问题时,及时通知相关人员进行处理。 2. 数据质量问题跟踪与解决:当发现数据质量问题时,需要对问题进行分析,找出问题原因,并制定相应的解决方案。处理过程中,可以使用数据质量工具进行数据清洗、纠错等操作。 3. 数据治理流程优化:分析数据质量问题产生的原因,优化数据治理流程,如数据录入、数据校验、数据清洗等环节,提高数据质量的根本保障。 4. 数据质量培训与宣导:提高员工对数据质量的重视程度,定期进行数据质量培训,宣导数据质量的重要性,从源头上减少数据质量问题的产生。 5. 数据质量评估与改进:定期对数据质量进行评估,了解数据质量状况,并根据评估结果,持续改进数据质量监控策略和数据治理流程,形成一个闭环的数据质量管理体系 |
第三步体系化 | 1. 建立数据质量标准:根据业务需求和行业规范,制定数据质量标准,为数据质量监控和改进提供明确的指导。 2. 设立数据质量责任人:为每个关键数据表和数据流程设立数据质量责任人,确保数据质量问题能够得到及时的关注和有效的解决。 3. 数据质量审计:定期进行数据质量审计,对数据治理流程和数据质量状况进行全面的评估,找出存在的问题和不足,为后续改进提供依据。 4. 与业务部门紧密合作:与业务部门保持紧密沟通,了解业务部门的数据需求和期望,确保数据质量工作能够满足业务需求。 5. 建立数据质量反馈机制:鼓励员工积极反馈数据质量问题,建立问题反馈渠道和奖励机制,提高员工对数据质量的关注程度。 6. 数据安全与隐私保护:在保证数据质量的同时,加强数据安全和隐私保护工作,确保数据在合规的范围内使用和处理。 7. 采用先进的数据质量工具:引入先进的数据质量工具和技术,如数据质量平台、数据治理工具等,提高数据质量监控和处理效率。 8. 持续关注数据质量最佳实践:关注行业内的数据质量最佳实践,学习借鉴其他企业在数据质量管理方面的经验,不断优化自身的数据质量管理体系。 |
数据质量体系架构方向建议:
1)加强组织建设
企业需要建立一种文化,以让更多的人认识到数据质量的重要性,这离不开组织机制的保障。建立数据质量管理的组织体系,明确角色职责并为每个角色配置适当技能的人员,以及加强对相关人员的培训和培养,这是保证数据质量的有效方式。组织角色设置企业在实施数据质量管理时,应考虑在数据治理整体的组织框架下设置相关的数据质量管理角色,并确定他们在数据质量管理中的职责分工。常见的组织角色及其职责如下。
数据治理委员会:为数据质量定下基调,制定有关数据基础架构和流程的决策。数据治理委员会定期开会以新的数据质量目标,推动测量并分析各个业务部门内数据质量的状态。
数据分析师:负责数据问题的根因分析,以便为数据质量解决方案的制定提供决策依据。
数据管理员:负责将数据作为公司资产进行管理,保障数据质量,例如定期数据清理、删除重复数据或解决其他数据问题。
2)加强人员培训
数据不准确的主要原因是人为因素,加强对相关人员的培训,提升人员的数据质量意识,能够有效减少数据质量问题的发生。数据质量管理培训是一个双赢的过程。对于员工来说,通过培训,自己不仅能够认识到数据质量对业务和管理的重要性,还能学习到数据管理理论、技术、工具等知识和技能,确保上游业务人员知道他们的数据对下游业务和应用程序的影响,让自己在工作中尽可能不犯错、少犯错,提高自己的业务处理效率和质量。对于企业来说,通过培训,可以使数据标准得到宣贯,提升员工的数据思维和对数据的认识水平,建立起企业的数据文化,以支撑企业数据治理的长治久安。此外,企业应鼓励员工参加专业资格认证的培训,这样能够让相关人员更加系统性地学习数据治理知识体系,提升数据管理的专业能力。
3)落实数据标准
数据标准的有效执行和落地是数据质量管理的必要条件。数据标准包括数据模型标准、主数据和参考数据标准、指标数据标准等(参考我们的数仓开发技术与管理规范)
4)ETL流程规范保障
数据提取规范:明确数据提取的来源和方法,包括数据源的选择、访问权限和安全性要求。定义清楚数据提取的时间频率和数据范围,确保提取的数据完整和准确。
数据清洗规范:明确数据清洗的目标和规则。定义数据清洗的步骤和流程,包括数据格式化、去重、填充缺失值、纠正错误等操作。确保数据清洗过程符合业务需求和数据质量标准。
数据转换规范:明确数据转换的目的和规则。定义数据转换的操作和算法,包括数据格式转换、数据标准化、数据聚合等。确保数据转换过程符合业务逻辑和数据质量要求。
数据加载规范:明确数据加载的目标和规则。定义数据加载的目标数据库或数据仓库的结构和模型,确保数据按照正确的结构进行加载。同时,制定数据加载的验证和校验规则,确保加载的数据准确性和完整性。
异常处理规范:制定异常数据处理的规范流程。定义异常数据的识别和处理方法,包括错误数据的记录、通知和修复流程。确保异常数据得到及时处理,避免其对后续数据分析和决策造成负面影响。
5)源端系统变更检测
源端的问题最好能在源端解决掉,比如数据准确性、一致性、稳定性等等。
我们需要事先跟源端系统负责人沟通确认清楚数据使用规则,确保数据抽取和计算环节的数据准确性。
在线业务系统复杂多变,每次变更都会产生数据的变化。为保证数据质量,就需要考虑如何能将源端业务系统的变更,更高效地通知给数据仓库维护人员。
首先,我们可以从人员管理入手,制定流程规范,要求前端业务变更发版上线前必须通知下游下游数仓运维人员。
其次,我们可以使用工具自动捕捉每一次业务的变化。如果数仓直接使用的是业务系统的表可以检测表结构的变化、业务关键字段的空值率、数据量同环比的波动等等。如果数仓接入的是业务系统日志,可以在入库前做格式校验和数据量同环比波动分析。
6)模型设计评审
模型设计师、架构师、需求人员、业务人员、运维人员参与,对数仓模型进行评审,优秀的数据模型除了满足业务需求外,还需要在性能、成本、效率、质量等方面有不错的助力。良好的数据模型能改善数据统计口径的不一致性,减少数据计算错误的可能性。
7)代码提交核查
即在 SQL 提交前进行相关规则校验。有工具最好,如果没有可以人工代码 review。规则分类如下:
代码规范类规则。例如,表命名规范、生命周期设置及表注释等。
代码质量类规则。例如,分母为0提醒、NULL 值参与计算影响结果提醒及插入字段顺序错误等。
代码性能类规则。例如,分区裁剪失效、扫描大表提醒及重复计算检测等。
8)任务发布变更审查
为保障线上数据的准确性,每次变更都需要经过测试再发布到线上生产环境,上线后最好第一时间对相关应用和底层数据做检查。
在进行更新操作前,需要通知下游变更原因、变更逻辑、变更时间等信息。下游对此次变更没有异议后,再按照约定时间执行发布变更,这样可以将变更对下游的影响降到最低。
9)数据质量监控
ETL 运行过程每一步的执行情况都应该记录日志,如果有报错需要根据资产等级定义选择立即触发报警以及是否停止任务。
DQC Data Quality Center/Check 数据质量中心, DQC 通过配置质量检查规则,可以实现完整性、准确性、可访问性监控,从而间接实现了时效性监控。但是,一致性只能通过统一的模型设计和口径定义来保障。
通过配置 DQC 的数据质量校验规则,可以实现在数据处理过程中进行自动的数据质量监控。DQC 可以监控数据质量并报警,但它不对数据产出进行处理,需要报警接收人判断如何处理。
DQC 数据监控规则有强规则和弱规则:
强规则:一旦触发报警就会阻断任务的执行(将任务置为失败状态,使下游任务不会被触发执行)。
弱规则:只报警但不阻断任务的执行。