一种数据质量评估方法与系统
文献发布时间:2023-06-19 19:05:50
技术领域
本发明涉及一种方法与系统,尤其涉及一种数据质量评估方法与系统,属于计算机应用技术领域。
背景技术
随着移动互联网、云计算、物联网的快速发展,数据的生产者、生产环节都在急速攀升,随之快速产生的数据呈指数级增长。在信息和网络技术飞速发展的大数据时代,越来越多的政务管理、企业业务和社会活动实现了数字化,企业希望从大数据中掘金,以提高管理水平和生产力。企业逐步认识到“大数据有大价值”,但并非都意识到大数据还有个大前提——数据质量。
当前最常见的数据质量评估体系中,多基于数仓检查或有固定数据源,例如支持对hive、avro、kafka等,针对关系型数据库则需自行扩展。评估规则上当前各个开源系统支持程度也有所不同,在质量模板上支持较好的产品,其规则数量也一般局限在十几个到几十不等,通常采用SQL等手段来满足特殊场景下的规则自定义。
但现有技术存在着以下缺点:
1)评估方式:目前数据质量评估体系多以SQL为主,在评估的过程中,频繁且复杂的聚合查询给数据库带来了很大的压力。
2)质检规则:目前数据质量评估的质检规则提供数量相对较少,多依赖自定义脚本,在灵活性与易用性上存在优化空间。
发明内容
为了解决上述技术所存在的不足之处,本发明提供了一种数据质量评估方法与系统,针对一次数据质量检查任务只需进行一次全表扫描,将数据逐条进行规则审查,极大降低了源端数据库的压力;针对质检规则,提供了丰富的数据质量校验规则管理;定时检查数据质量、报告质量问题并生成质量报告,有效降低数据管理成本,促进高质量的数据产生业务价值。
为了解决以上技术问题,本发明采用的技术方案是:一种数据质量评估方法,包括以下步骤:
步骤一、创建数据源;
步骤二、创建项目;
步骤三、创建检查任务;
步骤四、创建检查项并配置规则;
步骤五、项目上线/单次执行;
步骤六、查看结果、导出报告。
优选的,该方法的具体过程如下:
步骤一、进行数据源的配置,确定数据源类型,配置数据源连接信息;
步骤二、创建项目,选择待检查数据源;
步骤三、为项目创建检查任务,输入数据过滤条件;
步骤四、为检查任务创建检查项,选择检查项所检查的字段并配置规则表达式;
步骤五、项目上线执行定时任务或立即执行项目;
步骤六、查看质量检查结果,导出质量检查结果、生成质量检查报告。
一种数据质量评估系统,该系统包括以下模块:
设计态:负责质检项目的设计和配置工作,提供质检过程中的必备管理功能;
运行态:负责运行配置完成的质量检查项目;
结果态:负责保存质量检测的结果;
报表态:负责生产质量检测报告,提供导出检查结果的功能。
优选的,设计态为质量检查设立规则库,规则类型具体以下:
一、内置规则,具体分类如下:
网络格式包括:全限定域名FQDN格式、传输控制协议地址TCPv6格式、数据报协议地址UDP格式;
字符匹配包括:大小写、开始结束、包含、排除;
格式匹配包括:经纬度、电子邮箱、国际标准书号;
数值比较包括:相等、不相等、数值大小;
其他包括:非空检查、长度检查;
二、自定义正则:支持进行自定义逻辑表达式进行质量检查,以满足内置规则未覆盖的场景;
三、自定义逻辑表达式:针对字段间比较支持逻辑表达式配置,支持选择多个字段同时比较;选择多个字段时,区分主字段和辅助字段,最终检查结果与主字段进行关联。
优选的,设计态为质量检查提供项目管理,即以项目为单位去管理数据质量检查任务,支持以检查任务的形式去规划一个数据表的数据质量检查,以检查项的形式去设计数据表中每个字段值的质量检查。
优选的,项目管理的具体流程如下:
项目:管理一个数据库的检查配置与历史执行情况;
检查任务:管理一个数据表的检查配置与历史执行情况;
检查项:管理一个字段的检查配置,包括规则权重;
规则配置:以表达式形式,配置在具体字段上,达到数据质量评估的效果;
定时执行:定时进行全量或增量的数据质量评估;
保存结果:执行结果以报告的形式进行展示,同时提供质量检查的错误明细。
优选的,设计态为质量检查提供任务管理:在任务队列存在积压时,通过增加执行器的方式来平衡压力;
任务执行过程中存在五个任务队列,分别是:计划执行队列Plan、等待执行器消费队列Todo、正在执行队列Doing、执行完成队列Done、以及执行异常队列Error。
优选的,任务管理的具体执行过程为:
定时执行的任务会在计划执行队列Plan中按照时间顺序排列;
调度器依据时间取出需要执行的任务放入等待执行的队列Todo中,等待执行器消费;
手动立即执行的任务会直接放入到等待执行的队列Todo中,等待执行器消费;
执行器拉取任务后,任务从等待执行的队列Todo取出放入到正在执行的队列Doing中;
执行器执行完成后,执行成功,任务放入到执行完成队列Done;
执行器执行完成后,执行失败,任务放入到执行异常队列Error。
优选的,运行态为质量检查提供规则引擎,在任务执行的过程中针对本次质量检查范围中的数据,只需进行一次全量扫描,规则引擎流程的具体步骤如下:
一.规则引擎处于运行态中,首先需从设计态中拉取项目信息,包含项目中的检查任务、检查项、规则、数据源与过滤条件信息;
二.依据上一步中的过滤条件信息以及数据源信息获取需要质量评估的数据;
三.逐条遍历获取到的数据并确定每个字段检查的规则;
四.将每个字段依次检查所配置的规则;
五.判断该字段的值是否存在质量问题,存在进入第六步,不存在进入第七步;
六.将存在质量问题的数据评分并进行存储;
七.判断所有规则是否检查完成,完成进入第八步,未完成返回第四步;
八.判断所有数据是否检查完成,完成进入第九步,未完成返回第三步;
九.保存质检过程中计算出的得分、质检耗费时间信息,质量引擎结束本次质检过程。
优选的,质量检查遵循如下计算公式:
单个字段Item分数计算,其中w为字段权重,t为字段中正误;
Sorce
单条数据Record分数计算,得分为每个Item得分的总和;
一个检查任务CheckTask分数计算,得分为所有Record累加之后的平均得分;
一个项目Project分数计算,得分为所有CheckTask累加之后的平均得分
应用本发明所提供的技术方案,可以达到如下有益效果:
一、针对一次数据质量检查尽只需进行一次全表扫描,降低了源端数据库的压力。
二、针对质检规则,系统提供内置规则、自定义正则、自定义逻辑表达式,保障了质检的灵活性。
三、拉取任务的质检模式保障了质检引擎水平弹性扩展能力,提高了质量检查效率。
本发明可以做到全量质检与增量质检两种模式,即可针对一批数据进行全量完整的检查,也可进行数据筛选条件或者增量条件的配置,增量质检要求数据有具备实时性的时间属性,依据时间属性过滤出增量区间所包含的数据。
附图说明
图1为本发明的质量检查流程图。
图2为本发明的系统模块图。
图3为本发明的项目结构图。
图4为本发明的规则引擎流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
一种数据质量评估方法,如图1所示,质量检查流程具体步骤如下:
步骤一、进行数据源的配置,确定数据源类型,配置数据源连接信息。
步骤二、创建项目,选择待检查数据源。
步骤三、为项目创建检查任务,输入数据过滤条件。
步骤四、为检查任务创建检查项,选择检查项所检查的字段并配置规则表达式。为质量检查设立规则库,利用规则库中的规则,对数据质量检查过程进行设计和配置;
步骤五、项目上线执行定时任务或立即执行项目。
步骤六、查看质量检查结果,导出质量检查结果、生成质量检查报告。将检查的评分、结果进行汇总,最终生成质量检查的相关质量报告与检查结果详情表。
一种数据质量评估系统,该系统包括以下模块:
支持整个质量评估步骤的功能分布在如下四个模块,系统模块图如图2所示。
设计态:负责质检项目的设计和配置工作,提供了质检过程中的必备管理功能。
运行态:负责运行配置完成的质量检查项目。
结果态:负责保存质量检测的结果。
报表态:负责生产质量检测报告,提供了导出检查结果的功能。
设计态为质量检查提供规则库管理,规则类型包括:内置规则、自定义正则、自定义逻辑表达式,各个规则可以自由组合。具体的为:
1.内置规则:总提供内置规则100余条,分类如下:
(1)网络格式(全限定域名FQDN格式、传输控制协议地址TCPv6格式、数据报协议地址UDP格式等)
(2)字符匹配(大小写、开始结束、包含、排除等)
(3)格式匹配(经纬度、电子邮箱、国际标准书号等)
(4)数值比较(相等、不相等、数值大小等)
(5)其他(非空检查、长度检查等)
2.自定义正则:支持进行自定义逻辑表达式进行质量检查,以满足内置规则未覆盖的场景。
3.自定义逻辑表达式:针对字段间比较支持逻辑表达式配置,支持选择多个字段同时比较,选择多个字段时,区分主字段和辅助字段,最终检查结果与主字段进行关联。
例:
主字段:idcard(身份证号码)
辅助字段:sex(性别)
使用逻辑表达式判断身份证号17位与性别是否匹配
表达式:
(sex=='男'?'0':'1')==parseNumber(substr(idcard,16,17))%2
辅助函数:parseNumber(数值类型转换)、substr(字符剪切)
设计态为质量检查提供项目管理,以项目为单位去管理一定范围内的数据质量检查任务,支持以检查任务的形式去规划一个数据表的数据质量检查,以检查项的形式去设计数据表中每个字段值的质量检查。数据质量管理员还可以为每个检查项设置权重,以便综合评价数据质量。
质量检查的设计流程,包括项目、检查任务、检查项之间的关系与规则的配置形式;项目、检查任务、检查项之间的关系如图3所示的项目结构图。
项目:管理一个数据库的检查配置与历史执行情况。
检查任务:管理一个表的检查配置与历史执行情况。
检查项:管理一个字段的检查配置,包括规则权重。
规则配置:以表达式形式,配置在具体字段上,达到数据质量评估的效果。
定时执行:定时进行全量或增量的数据质量评估。
保存结果:执行结果以报告的形式进行展示,同时提供质量检查的错误明细。
设计态为质量检查提供任务管理,在任务队列存在积压情况,可以通过增加执行器的方式来平衡压力,具备极强的水平弹性扩展能力,任务执行过程中存在五个任务队列,分别是:
1.Plan(计划执行队列)
2.Todo(等待执行器消费队列)
3.Doing(正在执行队列)
4.Done(执行完成队列)
5.Error(执行异常队列)
定时执行的任务会在计划执行队列(Plan)中按照时间顺序排列。
调度器依据时间取出需要执行的任务放入等待执行的队列(Todo)中,等待执行器消费。
手动立即执行的任务会直接放入到等待执行的队列(Todo)中,等待执行器消费。
执行器拉取任务后,任务从等待执行的队列(Todo)取出放入到正在执行的队列(Doing)中。
执行器执行完成后,执行成功,任务放入到执行完成队列(Done)。
执行器执行完成后,执行失败,任务放入到执行异常队列(Error)。
如果在执行过程中监控到Todo队列中存在大量任务积压情况,可以增加通过增加执行器的方式来平衡数据质量评估的执行压力,提高质量检查速度,通过平衡执行器数量,最大程度利用服务器资源。
运行态为质量检查提供规则引擎,在任务执行的过程中针对本次质量检查范围中的数据,只需进行一次全量扫描,评估流程如图4所示的规则引擎流程图,具体步骤如下:
(1)规则引擎处于图2中运行态中,首先需从设计态中拉取项目信息,包含项目中的检查任务、检查项、规则、数据源与过滤条件等信息。
(2)依据上一步中的过滤条件信息以及数据源信息获取需要质量评估的数据。
(3)逐条遍历获取到的数据并确定每个字段检查的规则。
(4)将每个字段依次检查所配置的规则。
(5)判断该字段的值是否存在质量问题,存在进入第六步,不存在进入第七步。
(6)将存在质量问题的数据评分并进行存储。
(7)判断所有规则是否检查完成,完成进入第八步,未完成返回第四步。
(8)判断所有数据是否检查完成,完成进入第九步,未完成返回第三步。
(9)保存质检过程中计算出的得分、质检耗费时间等相关信息,质量引擎结束本次质检过程。
本发明针对数据质量情况的评估遵循如下的计算公式。
单个字段(Item)分数计算,其中w为字段权重,t为字段中正误。
Sorce
单条数据(Record)分数计算,得分为每个Item得分的总和。
一个检查任务(CheckTask)分数计算,得分为所有Record累加之后的平均得分。
一个项目(Project)分数计算,得分为所有CheckTask累加之后的平均得分。
本发明遵循GB/T 36344-2018《信息技术数据质量评价指标》为理论依据,实现对数据质量进行量化得分并输出报告。本发明提供了数据质量管理的解决方案与系统,通过自动化的方法,实现了对企业数据质量的评估,基于评估的结果,系统提供了数据质量报告,在数据的全生命周期中监控数据质量变化情况。
上述实施方式并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的技术方案范围内所做出的变化、改型、添加或替换,也均属于本发明的保护范围。
- 一种地面观测站气压要素的数据质量评估方法和系统
- 一种数据质量评估方法、装置和用于数据质量评估的装置
- 一种数据质量的评估方法及评估系统