数据质量
数据质量监控
数据质量管理围绕着数据从产生要销毁的全生命周期,共分为事前防范、事中监控与事后治理三个阶段。事前防范即依照数据标准对业务源端数据产生的过程进行约束,规避问题数据的产生,同时对已发现的存量数据问题进行修正,从而规避由于数据质量问题导致的后续数据使用异常。在数据质量管理的实施过程中在推动业务侧做好事前防范的同时,需要重点关注数据质量的监控以及数据质量的整体提升。
数据质量监控模块是对数据库里的数据质量进行质量管理的工具。可从完整性、有效性、及时性、一致性、准确性、唯一性六个维度进行单列、跨列、跨行和跨表的分析。并能够根据数据标准自动生成质量作业。需要注意的是,数据质量的提升是一个持续的过程,需要贯穿在数据创建,转换和数据传输的整个生命周期。
- 规则模板
创建规则是数据质量的核心,数据质量支持对离线数据的监控,您可根据表的实际需要创建规则。目前创建规则的方式包括模板规则和自定义规则。
系统内置的模板规则共计20种,分为库级规则、表级规则、字段级规则和跨字段级规则四种类型,常见的有表行数、字段唯一值、字段空值、字段重复值、正则表达式校验、日期格式校验、字段一致性校验、合法性校验、枚举值校验等。当系统内置规则模板不足以满足您的需求,可通过自定义的方式新建规则模板。
新建规则模板
以常用的“长时间_XXX域格式校验”为例:
选择控制台 > 数据质量 > 规则模板 单击“新建”,在弹出的新建规则模板页面中进行配置
图1 规则模板1
在弹出的新建规则模板页面中输入规则名称,选择规则匹配的维度,定义SQL模板并对输出结果进行说明。
图2 规则模板2
维度:数据质量支持从完整性、有效性、及时性、一致性、准确性、唯一性六个维度进行单列、跨列、跨行和跨表的分析。自定义质量规则时,请对此规则进行维度匹配。
定义关系:输入SQL语句,实现对数据的查找。
样例1:统计表行数,输入SQL语句
select count(${Column1}) from ${Schema_Table1}
其中${Column1}通过单击“添加字段参数”生成,${Schema_Table1} 通过单击“添加库表参数”生成。
样例2:“长时间_XXX格式校验”,输入SQL语句
select ifnull(b - a,0),ifnull(a,0), ifnull(b,0),ifnull(a/b, 1) from ( select ( select count(1) as a from ${Schema_Table1} where ${Column1} regexp '(^((1[8-9][0-9]{2})|(2[0-9]{3}))-(((01|03|05|07|08|10|12)-((0[1-9])|([1-2][0-9])|(3[0-1])))|((04|06|09|11)-((0[1-9])|([1-2][0-9])|(30)))|((02)-((0[1-9])|([1-2][0-9])))) ((0[0-9])|(1[0-9])|(2[0,1,2,3])):([0-5][0-9]):([0-5][0-9])$)' ) a,( select count(1) as b from ${Schema_Table1}) b )
输出结果说明:对SQL获得结果的每一列进行说明,列说明之间用逗号进行分隔。
样例:“长时间_XXX格式校验”,输出结果说明为:
非法行数,合法行数,总行数,合法比率
结果说明应该与关系定义的输出结果顺序一一对应。
描述:用于通过文字阐述数据质量监控规则的依据及规则内容
样例:“长时间_XXX格式校验”,描述为:
用于数据标准【长时间_XXX】的格式校验,YYYY-MM-DD 时(2位):分(2位):秒(2位)
单击“确定”后,系统默认发布此规则模板,版本名称默认为V1.0。
图3 规则模板3
管理规则模板
自定义规则模板不支持直接修改已发布的历史版本。当您有修改需求,可以通过发布新版本以修改规则模板,并可以选择下线历史版本且将待下线历史版本关联的作业迁移到新版本上。具体请参见如下操作。
选择“数据质量监控 > 规则模板”,在规则模板列表中找到待修改的规则模板,单击操作列的“发布”。
图4 规则模板4
支持修改维度,修改输出结果说明和重新定义关系。
图5 规则模板5
单击“发布新版本”,在提交发布对话框中,重新设置版本名称,并确认发布。
图6 规则模板6
提交发布后,单击操作列的“发布历史”,可以查看该规则模板的发布记录,支持查看变化信息、修改版本名称、下线对应版本等。
图7 规则模板7
如需下线历史版本,单击历史版本最右侧的“下线”按钮。
如果该版本没有关联作业,单击确认即可下线。
如果该版本存在关联作业,需要选择迁移版本,将新版本与作业关联后,单击确认才能完成下线。
图8 规则模板8
图9 规则模板9
发布历史处支持进行版本比对,直观展示修改点。
图10 规则模板10
- 质量作业
在规范设计中,基于数据模型,提供了自动创建质量作业的能力,自动生成数据质量作业需要5步:
- 创建数据标准
- 在已经创建好的数据标准关联质量规则或者引用码表
- 新建模型
- 模型关联数据标准
- 模型发布
创建标准并关联质量作业
进入规范设计单击左侧“数据标准”菜单,进入数据标准界面,单击“新建”按钮,进入数据标准创建界面。
图11 质量作业1
引用码表数据标准:填写标准名称、标准编码、数据类型、描述信息等,并选择要引用的码表及码表字段,完成配置后发布。
图12 质量作业2
关联质量规则数据标准:填写标准名称、标准编码、数据类型、描述信息等,并配置质量规则,内置20个质量规则,包括行数、字段唯一值、空值、重复值、身份证、枚举值、邮箱、正则表达式等,完成配置后发布。
图13 质量作业3
关联质量规则数据标准:填写标准名称、标准编码、数据类型、描述信息等,并通过自定义正则表达式配置质量规则,完成配置后发布。
图14 质量作业4
模型关联质量规则并发布
如下在建模过程中,编辑时可以针对每一个字段关联数据标准从而生成。选择需要生成数据质量作业的逻辑模型,单击“编辑”按钮。
图15 质量作业5
通过将数据模型中具体字段与数据标准已定义的数据质量规则、码表、枚举值、长度等内容,来基于统一数据标准监控表中的数据质量。
图16 质量作业6
发布模型,配置了质量规则后,需要发布模型才能生成质量作业。
首先,需要确保质量作业开关是开着的,在配置中心选择功能配置,点选创建质量作业并单击确定即可。
审核并发布后,即可自动生成质量作业:
图17 质量作业7
- 对账作业
数据对账对于数据开发和数据迁移流程中的数据一致性至关重要,而跨源数据对账的能力是检验数据迁移或数据加工前后是否一致的关键指标。数据质量监控中的对账作业支持跨源数据对账能力,可将创建的规则应用到两张表中进行质量监控,并输出对账结果。
对账作业的功能是检测两张表的一致性的,一般用源数据经过数据集成后进行一致性和完整性验证,用到最多的就是表行数和数据表空值扫描功能
创建对账作业如下图所示:主要功能是选择源库表和目的表进行对比,可以多表一起对比,计算范围建议第一次是全表扫描,后续是增量扫描。
图18 对账作业
- 运维管理
用于查看质量作业的运行记录和运行结果,支持按时间和名称、运行状态筛选运行记录,其中运行结果链接可以查看规则的运行结果详细信息,如果出现异常还可以通过查看执行日志查看异常原因,也可以在处理问题中转发给指定负责人进行处理。
图19 运维管理1
图20 运维管理2
- 质量报告
质量报告功能分为两个角度:业务质量报告和技术质量报告。
业务质量报告:是从规范设计中的业务分层角度统计不同分层的业务质量运行结果数据,并根据汇总数据结果,对不同业务分层进行质量打分,评估数据质量状况。
技术质量报告:是从数据本身的技术分层角度(即连接、库、表、字段)统计不同数据分层的数据质量运行结果数据,并根据统计数据结果,对不同的库、表进行质量评分。
对于以上两种不同的质量报告,均支持按天查看质量评分,查看最近7天的质量评分历史变化趋势,以及逐层下钻查看质量评分来源及关联的数据质量规则。
图21 质量报告
数据质量提升是一个发现问题、分析问题、处理问题的过程,首先是基于质量作业的监控发现并跟踪数据质量问题,其次是对数据质量问题的异常情况与产生原因进行分析,待分析出结果后再制定相应的解决方案解决数据质量问题,从而达到数据质量逐步提升的最终效果。
数据质量问题分析:针对数据质量作业中发现的数据问题,通过数据质量规则,结合对异常数据的探查统计,分析问题类型与问题产生原因,用以制定问题解决方案。
数据质量问题处理:经由数据质量问题分析后,常见异常数据产生原因与处理方式如下:
表1 常见异常数据产生原因与处理方式 产生原因
问题举例
处理方式
数据标准定义有误
例如数据标准中“客户代码”并没有相应的编码或业务标准,无需进行格式、长度相关的质量检查
在质量作业中取消相应质量规则
数据标准关联有误
例如将数据标准“长时间_XX域”关联到实际数据内容为日期的字段,从而导致质检结果显示该字段数据内容全部异常
核实数据实际内容与业务含义,在质量作业中取消相应质量规则,或关联上相匹配的数据标准
质量规则有误
例如数据标准“XXX”定义数据为001~999,但在设计质量规则时将000视为正常数据
调整质量规则,使其与数据标准逻辑一致
数据系统建设阶段没有统一的格式标准,以及数据录入过程中未进行格式约束,更或是系统升级或切换过程中未对存量数据进行格式同化处理,导致数据质量较差
例如时间或日期数据存在上百种异常情况,在数据使用过程中,影响基于时间的范围限定以及基于时间的数据分析,无法有效的发挥数据价值
将数据异常情况反馈至业务部门,建议其对存留数据进行统一格式处理,并对录入过程进行格式约束
在出现数据质量问题影响到数据使用,但数据部门尚无能力整改的情况下,可针对性的对数据进行清洗转换处理,待业务端完成整改后再取消清洗转换动作