首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 一种数据质量校验方法、装置、系统

一种数据质量校验方法、装置、系统

阅读:267发布:2023-02-04

专利汇可以提供一种数据质量校验方法、装置、系统专利检索,专利查询,专利分析的服务。并且本 申请 实施例 公开一种数据 质量 校验方法、装置、系统,方法包括:获取 数据库 中预保存的配置文件;其中,配置文件包括校验表、被校验表、校验表和被校验表的字段之间的对应关系;判断校验表和被检验表的数据来源,按照与不同类型的数据源对应的加载方式加载校验表和被校验表的字段数据;对加载后的字段数据进行校验。本申请为不同的数据源设计了不同的数据加载方式,从而加载得到不同类型的数据源的数据,进而可以实现复杂数据源、复杂数据源中复杂数据类型的数据质量完整性、一致性校验,打破了不同数据源之间数据校验的壁垒;此外,本申请通过分片限流的方法解决了当 大数据 量读取关系型数据库时造成的内存溢出、数据库抽数压 力 大的问题。,下面是一种数据质量校验方法、装置、系统专利的具体信息内容。

1.一种数据质量校验方法,其特征在于,所述方法包括:
获取数据库中预保存的配置文件;其中,所述配置文件包括校验表、被校验表、所述校验表和被校验表的字段之间的对应关系;
判断所述校验表和被检验表的数据来源,按照与不同类型的数据源对应的加载方式加载所述校验表和被校验表的字段数据;
对加载后的字段数据进行校验。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述数据源为关系型数据库,对所述校验表和被校验表的字段数据进行分页处理并根据预创建的多个分片分别加载与所述分片相对应的分页的数据。
3.根据权利要求2所述的方法,其特征在于,若所述数据源为关系型数据库,对所述校验表和被校验表的字段数据进行分页处理并根据预创建的多个分片分别加载与所述分片相对应的分页的数据具体包括:
分别计算所述校验表的字段数据和所述被校验表的字段数据的数据量;
将所述字段数据进行分页处理;
创建包括至少两个分片的弹性分布式数据集;
将获取到的连接信息进行封装并广播至所述各个分片;
根据所述连接信息,在所述分片中加载对应分页的数据。
4.根据权利要求1所述的方法,其特征在于,所述校验为完整性校验;所述配置文件还包括定时任务配置信息;
所述按照与不同类型的数据源对应的加载方式加载所述校验表和被校验表的字段数据包括:
按照与不同类型的数据源对应的加载方式全量加载所述被校验表的字段数据;
若为首次加载或者修改后首次加载,按照与不同类型的数据源对应的加载方式定时全量加载所述校验表的字段数据;
若为非首次加载,按照与不同类型的数据源对应的加载方式定时增量加载所述校验表的字段数据。
5.根据权利要求4所述的方法,其特征在于,所述对加载后的字段数据进行完整性校验包括:
若所述校验表的字段数据为定时全量加载,则:
根据加载得到的所述校验表的字段数据计算与所述校验表对应的被校验表的字段数据的缺失值;
对所述缺失值进行去重以完成对所述被校验表的字段数据的完整性校验;
若所述校验表的字段数据为定时增量加载,则:
获取前次校验结果表;
将加载得到的所述校验表的字段数据与所述前次校验结果表的数据进行合并;
根据合并后得到的数据计算与所述校验表对应的被校验表的字段数据的缺失值并将所述缺失值存入当前校验结果表;
对所述缺失值进行去重以完成对所述被校验表的字段数据的完整性校验。
6.根据权利要求1所述的方法,其特征在于,所述校验为一致性校验;
所述按照与不同类型的数据源对应的加载方式加载所述校验表和被校验表的字段数据包括:
按照与不同类型的数据源对应的加载方式全量加载所述校验表的字段数据和所述被校验表的字段数据。
7.根据权利要求6所述的方法,其特征在于,所述对加载后的字段数据进行一致性校验具体包括:
将加载后的所述校验表的字段数据进行整合,生成参照集;
将加载后的所述被校验表的字段数据进行整合,生成全量数据集;
根据所述参照集对所述全量数据集进行过滤以得到与所述参照集一致的数据子集;
根据所述数据子集和全量数据集,得到不一致数据。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述数据源为非关系型数据库,根据所述校验表和被校验表在所述非关系型数据库中的存储分布情况,加载对应存储区域的字段数据。
9.一种数据质量校验装置,其特征在于,所述装置包括:
获取模,用于获取数据库中预保存的配置文件;其中,所述配置文件包括校验表、被校验表、所述校验表和被校验表中字段之间的对应关系;
加载模块,用于判断所述校验表和被检验表的数据来源,按照与不同类型的数据源对应的加载方式加载所述校验表和被校验表的字段数据;
校验模块,用于对加载后的字段数据进行校验。
10.一种计算机系统,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
获取数据库中预保存的配置文件;其中,所述配置文件包括校验表、被校验表、所述校验表和被校验表的字段之间的对应关系;
判断所述校验表和被检验表的数据来源,按照与不同类型的数据源对应的加载方式加载所述校验表和被校验表的字段数据;
对加载后的字段数据进行校验。

说明书全文

一种数据质量校验方法、装置、系统

技术领域

[0001] 本发明属于计算机技术领域,尤其涉及一种数据质量校验方法、装置、系统。

背景技术

[0002] 数据如同矿石,质量好才能打造好的产品。数据质量是指数据值的质量,通常由完整性,一致性,准确性,及时性来评估数据质量的好坏。数据质量差会浪费资源并且得到相反的结果。因此,对于数据质量校验非常重要。然后,在数据质量校验方面,业内一直处于摸索阶段,数据的完整性、一致性通常存在于理论阶段或者仅仅对单一数据源的、少量的数据进行完整性和一致性校验。由于现在处于数据爆发的时代,大数据场景复杂多样,现有校验方法已经无法满足需求。

发明内容

[0003] 为了解决现有技术的问题,本发明提出了一种数据质量校验方法、装置、系统,本方法可以对多源数据、大数据量进行完整性和一致性校验,克服现有技术中只能对单一数据源、少量数据进行校验的难点。
[0004] 本发明实施例提供的具体技术方案如下:
[0005] 第一方面,本发明提供一种数据质量校验方法,所述方法包括:
[0006] 获取数据库中预保存的配置文件;其中,所述配置文件包括校验表、被校验表、所述校验表和被校验表的字段之间的对应关系;
[0007] 判断所述校验表和被检验表的数据来源,按照与不同类型的数据源对应的加载方式加载所述校验表和被校验表的字段数据;
[0008] 对加载后的字段数据进行校验。
[0009] 优选的,所述方法还包括:
[0010] 若所述数据源为关系型数据库,对所述校验表和被校验表的字段数据进行分页处理并根据预创建的多个分片分别加载与所述分片相对应的分页的数据。
[0011] 优选的,若所述数据源为关系型数据库,对所述校验表和被校验表的字段数据进行分页处理并根据预创建的多个分片分别加载与所述分片相对应的分页的数据具体包括:
[0012] 分别计算所述校验表的字段数据和所述被校验表的字段数据的数据量;
[0013] 将所述字段数据进行分页处理;
[0014] 创建包括至少两个分片的弹性分布式数据集;
[0015] 将获取到的连接信息进行封装并广播至所述各个分片;
[0016] 根据所述连接信息,在所述分片中加载对应分页的数据。
[0017] 优选的,所述校验为完整性校验;所述配置文件还包括定时任务配置信息;
[0018] 所述按照与不同类型的数据源对应的加载方式加载所述校验表和被校验表的字段数据包括:
[0019] 按照与不同类型的数据源对应的加载方式全量加载所述被校验表的字段数据;
[0020] 若为首次加载或者修改后首次加载,按照与不同类型的数据源对应的加载方式定时全量加载所述校验表的字段数据;
[0021] 若为非首次加载,按照与不同类型的数据源对应的加载方式定时增量加载所述校验表的字段数据。
[0022] 优选的,所述对加载后的字段数据进行完整性校验包括:
[0023] 若所述校验表的字段数据为定时全量加载,则:
[0024] 根据加载得到的所述校验表的字段数据计算与所述校验表对应的被校验表的字段数据的缺失值;
[0025] 对所述缺失值进行去重以完成对所述被校验表的字段数据的完整性校验;
[0026] 若所述校验表的字段数据为定时增量加载,则:
[0027] 获取前次校验结果表;
[0028] 将加载得到的所述校验表的字段数据与所述前次校验结果表的数据进行合并;
[0029] 根据合并后得到的数据计算与所述校验表对应的被校验表的字段数据的缺失值并将所述缺失值存入当前校验结果表;
[0030] 对所述缺失值进行去重以完成对所述被校验表的字段数据的完整性校验。
[0031] 优选的,所述校验为一致性校验;
[0032] 所述按照与不同类型的数据源对应的加载方式加载所述校验表和被校验表的字段数据包括:
[0033] 按照与不同类型的数据源对应的加载方式全量加载所述校验表的字段数据和所述被校验表的字段数据。
[0034] 优选的,所述对加载后的字段数据进行一致性校验具体包括:
[0035] 将加载后的所述校验表的字段数据进行整合,生成参照集;
[0036] 将加载后的所述被校验表的字段数据进行整合,生成全量数据集;
[0037] 根据所述参照集对所述全量数据集进行过滤以得到与所述参照集一致的数据子集;
[0038] 根据所述数据子集和全量数据集,得到不一致数据。
[0039] 优选的,所述方法还包括:
[0040] 若所述数据源为非关系型数据库,根据所述校验表和被校验表在所述非关系型数据库中的存储分布情况,加载对应存储区域的字段数据。
[0041] 第二方面,本发明提供一种数据质量校验装置,所述装置包括:
[0042] 获取模,用于获取数据库中预保存的配置文件;其中,所述配置文件包括校验表、被校验表、所述校验表和被校验表中字段之间的对应关系;
[0043] 加载模块,用于判断所述校验表和被检验表的数据来源,按照与不同类型的数据源对应的加载方式加载所述校验表和被校验表的字段数据;
[0044] 校验模块,用于对加载后的字段数据行校验。
[0045] 优选的,所述加载模块包括:
[0046] 第一加载子模块,用于若所述数据源为关系型数据库,对所述校验表和被校验表的字段数据进行分页处理并根据预创建的多个分片分别加载与所述分片相对应的分页的数据。
[0047] 优选的,所述第一加载子模块具体用于:
[0048] 分别计算所述校验表的字段数据和所述被校验表的字段数据的数据量;
[0049] 将所述字段数据进行分页处理;
[0050] 创建包括至少两个分片的弹性分布式数据集;
[0051] 将获取到的连接信息进行封装并广播至所述各个分片;
[0052] 根据所述连接信息,在所述分片中加载对应分页的数据。
[0053] 优选的,所述校验为完整性校验;所述配置文件还包括定时任务配置信息;所述加载模块具体用于:
[0054] 按照与不同类型的数据源对应的加载方式全量加载所述被校验表的字段数据;
[0055] 若为首次加载或者修改后首次加载,按照与不同类型的数据源对应的加载方式定时全量加载所述校验表的字段数据;
[0056] 若为非首次加载,按照与不同类型的数据源对应的加载方式定时增量加载所述校验表的字段数据。
[0057] 优选的,所述校验模块包括:
[0058] 完整性校验模块,用于若所述校验表的字段数据为定时全量加载,则:
[0059] 根据加载得到的所述校验表的字段数据计算与所述校验表对应的被校验表的字段数据的缺失值;
[0060] 对所述缺失值进行去重以完成对所述被校验表的字段数据的完整性校验;
[0061] 若所述校验表的字段数据为定时增量加载,则:
[0062] 获取前次校验结果表;
[0063] 将加载得到的所述校验表的字段数据与所述前次校验结果表的数据进行合并;
[0064] 根据合并后得到的数据计算与所述校验表对应的被校验表的字段数据的缺失值并将所述缺失值存入当前校验结果表;
[0065] 对所述缺失值进行去重以完成对所述被校验表的字段数据的完整性校验。
[0066] 优选的,所述校验为一致性校验;所述加载模块还用于:
[0067] 按照与不同类型的数据源对应的加载方式全量加载所述校验表的字段数据和所述被校验表的字段数据。
[0068] 优选的,所述校验模块还包括:
[0069] 一致性校验模块,用于将加载后的所述校验表的字段数据进行整合,生成参照集;
[0070] 将加载后的所述被校验表的字段数据进行整合,生成全量数据集;
[0071] 根据所述参照集对所述全量数据集进行过滤以得到与所述参照集一致的数据子集;
[0072] 根据所述数据子集和全量数据集,得到不一致数据。
[0073] 优选的,所述加载模块还包括:
[0074] 第二加载子模块,用于若所述数据源为非关系型数据库,根据所述校验表和被校验表在所述非关系型数据库中的存储分布情况,加载对应存储区域的字段数据。
[0075] 第三方面,本发明提供一种计算机系统,包括:
[0076] 一个或多个处理器;以及
[0077] 与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
[0078] 获取数据库中预保存的配置文件;其中,所述配置文件包括校验表、被校验表、所述校验表和被校验表的字段之间的对应关系;
[0079] 判断所述校验表和被检验表的数据来源,按照与不同类型的数据源对应的加载方式加载所述校验表和被校验表的字段数据;
[0080] 对加载后的字段数据进行校验。
[0081] 本发明实施例具有如下有益效果:
[0082] 1、本发明为不同的数据源设计了不同的数据加载方式,从而加载得到不同类型的数据,进而可以实现复杂数据源、复杂数据源中复杂数据类型的数据质量完整性、一致性校验,打破了不同数据源之间数据校验的壁垒;
[0083] 2、本发明采用分片限流的方法解决了当大数据量读取关系型数据库时造成的内存溢出、数据库抽数压大的问题;
[0084] 3、本发明可通过配置定时任务对复杂数据源的校验表的字段数据进行增量方式加载,从而实现完整性校验,大大降低了计算量和计算时间、减少了计算机内存占用。
[0085] 当然,本发明并不一定需要同时满足上述所有效果,只需满足其一即可。附图说明
[0086] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0087] 图1是本申请实施例提供的数据质量校验方法的应用环境图;
[0088] 图2是本申请实施例一提供的数据质量校验方法的流程图
[0089] 图3是本申请实施例一提供的被校验表和校验表的对应关系图;
[0090] 图4是本申请实施例二提供的数据质量校验装置的结构示意图;
[0091] 图5是本申请实施例三提供的计算机系统架构图。

具体实施方式

[0092] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0093] 本申请提供一种数据完整性和一致性校验方法,可以应用于如图1所示的应用环境中。其中,服务器14通过网络与数据库12和终端16进行通信。终端16可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,终端16上可部署Web服务器,用于给用户提供页面,从而进行表及任务信息的配置;数据库12用于存储用户保存的配置文件;服务器14可以为分布式yarn服务器,通过执行Spark任务读取数据库12的配置文件,进而完成数据加载与校验。
[0094] 实施例一
[0095] 如图2所示,本申请提供了一种数据质量校验方法,需要说明的是,本申请中通过创建的Spark任务来实现数据完整性和一致性校验,具体包括如下步骤:
[0096] S22、获取数据库中预保存的配置文件;其中,配置文件包括校验表、被校验表、校验表和被校验表的字段之间的对应关系。
[0097] 具体的,根据Spark任务ID,通过Spark自带的API读取数据库中预保存的配置文件。
[0098] 其中,被校验表和校验表中的数据可来源于单一数据源或者多个数据源,其数据类型包括整型,浮点型,字符串,布尔型;被校验表和校验表中的字段可以选择为整表字段、一个字段或者多个字段,通过设置校验表和被校验表的字段之间的对应关系,可以使得一被校验表对应多个校验表或者多个被校验表对应一个校验表。
[0099] 参考图3,图3中显示了由被校验表C、被校验表B、被校验表A组成的被校验表列队,其中,在配置文件中,被校验表C对应了校验表D和校验表E、被校验表B对应了校验表C、被校验表A对应了校验表A和校验表B。
[0100] 此外,配置文件还包括定时任务配置信息。通过定时任务配置可以使得Spark任务按照分钟/小时/天/周/月来执行。
[0101] S24、判断校验表和被检验表的数据来源,按照与不同类型的数据源对应的加载方式加载校验表和被校验表的字段数据。
[0102] 本方案中,由于校验表和被检验表中的数据可能源自单一数据源或者多个数据源,当数据来自多个数据源时,不同类型的数据源配置不同,因此同样的加载方式势必满足不了多源数据的加载要求,进而也无法实现多源数据的校验。
[0103] 基于上述问题,本方案将按照与不同类型的数据源对应的加载方式来实现校验表和被校验表的字段数据的加载。
[0104] 具体加载过程包括:
[0105] 若数据源为非关系型数据库,根据校验表和被校验表在非关系型数据库中的存储分布情况,加载对应存储区域的字段数据。
[0106] 其中,非关系型数据库通常为一些小型化数据库,其数据量较小,因此可以根据表的存储分布情况对数据进行直接加载。
[0107] 示例性的,若非关系型数据库为Hive(Hive是基于Hadoop的数据仓库工具),Hive表分布式存储在各个片区,因此,根据Hive表在Hadoop分布式文件系统上存储的分区可直接加载得到表数据。
[0108] 若数据源为关系型数据库,对字段数据进行分页处理并根据预创建的多个分片分别加载与分片相对应的分页的数据。
[0109] 具体的,关系型数据库的数据加载过程包括如下步骤:
[0110] a、分别计算校验表的字段数据和被校验表的字段数据的数据量;
[0111] b、将字段数据进行分页处理;
[0112] c、创建包括至少两个分片的弹性分布式数据集;
[0113] d、将获取到的连接信息进行封装并广播至各个分片;
[0114] e、根据连接信息,在分片中加载对应分页的数据。
[0115] 以Mysql数据库(关系型数据库)为例进一步解释说明如何进行数据加载:
[0116] 计算要加载的数据总量,将字段数据进行分页处理;创建包括多个分片的RDD(弹性分布式数据集);将Mysql连接信息封装成对象实现序列化并广播到各个分片;在每个分片中根据连接信息,使用jdbc加载对应分页的数据。
[0117] 其中,连接信息包括url、用户名和密码,此外,在使用jdbc进行数据加载时,其fetchSize的值应设为整形。对于其他类型的关系型数据库,如:Oracle、DB2或PostgreSql,在进行数据加载时,其fetchSize的值应设为正整数。由于数据库对于连接数和读取数据量有瓶颈,如果不设置fetchSize,则会导致数据库超载,当进行数据质量完整性、一致性校验时,其他需要连接数据库的业务都要卡顿甚至停止,因此,需要针对不同的数据源设置不同的fetchSize。
[0118] 在现有技术中,通过Spark自带的API直接加载关系型数据库数据时,通常只创建一个分片的RDD,因此当数据量很大时,必然导致内存溢出现象,而本方案通过创建包括多个分片的RDD来对关系型数据库的数据进行分页处理,既可以实现对关系型数据库的数据加载,又可以克服当加载的数据量较大时,出现内存溢出等问题。
[0119] 此外,在数据加载过程中,为了节省计算量、降低内存占用,可以按照定时任务配置情况对数据进行全量或者增量加载。
[0120] 具体的,若加载后的数据用于完整性校验,可以按照下列步骤加载数据:
[0121] a、按照与不同类型的数据源对应的加载方式全量加载被校验表的字段数据;
[0122] b、若为首次加载或者修改后首次加载,按照与不同类型的数据源对应的加载方式定时全量加载校验表的字段数据;若为非首次加载,按照与不同类型的数据源对应的加载方式定时增量加载校验表的字段数据。
[0123] 其中,首次加载/修改后首次加载/非首次加载可以通过判断Spark任务的执行情况来确定;当Spark任务为首次执行时,对应的加载为首次加载,当Spark任务为修改后首次执行时,对应的加载为修改后首次加载,当Spark任务为非首次执行时,对应的加载为非首次加载。
[0124] 此外,示例性的,定时全量加载校验表的字段数据可为本次定时任务之前的校验表的字段数据;定时增量加载校验表的字段数据可为本次定时任务之前、上次定时任务之后的字段数据。通过定时任务配置,取增量方式获取数据,每次只需保存和更新中间结果,大大降低了计算量和计算时间。
[0125] 若加载后的数据用于一致性校验,可以按照下列步骤加载数据:
[0126] a、按照与不同类型的数据源对应的加载方式全量加载校验表的字段数据和被校验表的字段数据。
[0127] S26、对加载后的字段数据进行校验。
[0128] 具体的,数据校验包括完整性校验和一致性校验;
[0129] 其中,完整性校验包括:
[0130] 当校验表的字段数据为定时全量加载,则:
[0131] a、根据加载得到的校验表的字段数据计算与校验表对应的被校验表的字段数据的缺失值;
[0132] 其中,加载得到的校验表的字段数据为定时任务之前的全量数据。
[0133] b、对缺失值进行去重以完成对被校验表的字段数据的完整性校验。
[0134] 当校验表的字段数据为定时增量加载,则:
[0135] a、获取前次校验结果表;
[0136] 其中,前次校验结果表用于存放前次校验得到的中间结果数据,如:被校验表名、缺失值、缺失值数量、前次校验的定时任务时间等。
[0137] b、将加载得到的校验表的字段数据与前次校验结果表的数据进行合并;
[0138] 其中,加载得到的校验表的字段数据为本次定时任务之前、上次定时任务之后的数据。
[0139] c、根据合并后得到的数据计算与校验表对应的被校验表的字段数据的缺失值并将缺失值存入当前校验结果表;
[0140] d、对缺失值进行去重以完成对被校验表的字段数据的完整性校验。
[0141] 示例性的,当校验表的字段数据为定时增量加载时,以图3为例,进一步进行完整性校验说明,具体包括:
[0142] 将加载到的被校验表A、B、C和校验表A、B、C、D、E的字段数据在各个分片中使用RDD的distinct算子去重;取被校验表C,创建RDD数据集RC,同时取与被校验表C对应的校验表D、校验表E;将校验表D的字段数据与前次校验结果表的数据合并;根据合并后得到的数据,使用RDD中except算子求出被校验表C的缺失值1并将缺失值1存于RC,同时将Spark任务ID、被校验表名、缺失值、缺失值数量、当前定时任务时间等信息存入当前校验结果表;将校验表E与当前校验结果表合并;根据合并后得到的数据,使用RDD中except算子求出被校验表C的缺失值2并将缺失值2存于RC,同时将Spark任务ID、被校验表名、缺失值、缺失值数量、当前定时任务时间等信息存入当前校验结果表;将RC中的数据进行去重。此时,被校验表C完整性校验结束。按照同样的方式可实现被校验表B、被校验表A的完整性校验,此处不再赘述。
[0143] 此外,对加载后的字段数据进行一致性校验具体包括:
[0144] a、将加载后的所有校验表的字段数据进行整合,生成参照集;
[0145] b、将加载后的所有被校验表的字段数据进行整合,生成全量数据集;
[0146] c、根据参照集对全量数据集进行过滤以得到与参照集一致的数据子集;
[0147] d、根据数据子集和全量数据集,得到不一致数据。
[0148] 本发明为不同的数据源设计了不同的数据加载方式,从而加载得到不同类型的数据源的数据,进而可以实现复杂数据源、复杂数据源中复杂数据类型的数据质量完整性、一致性校验,打破了不同类型的数据源之间数据校验的壁垒;并且,本发明采用分片限流的方法解决了当大数据量读取关系型数据库时造成的内存溢出、数据库抽数压力大的问题;此外,进一步地,本发明通过配置定时任务对复杂数据源的的校验表的字段数据进行增量方式加载,从而实现完整性校验,大大降低了计算量和计算时间、减少了计算机内存占用。
[0149] 实施例二
[0150] 对应上述实施例一的方法,本发明实施例二提供一种数据质量校验装置,如图4所示,装置包括:
[0151] 获取模块42,用于获取数据库中预保存的配置文件;其中,配置文件包括校验表、被校验表、校验表和被校验表中字段之间的对应关系;
[0152] 加载模块44,用于判断校验表和被检验表的数据来源,按照与不同类型的数据源对应的加载方式加载校验表和被校验表的字段数据;
[0153] 校验模块46,用于对加载后的字段数据进行校验。
[0154] 优选的,上述加载模块44包括:
[0155] 第一加载子模块442,用于若数据源为关系型数据库,对校验表和被校验表的字段数据进行分页处理并根据预创建的多个分片分别加载与分片相对应的分页的数据。
[0156] 优选的,上述第一加载子模块442具体用于:
[0157] 分别计算校验表的字段数据和被校验表的字段数据的数据量;
[0158] 将字段数据进行分页处理;
[0159] 创建包括至少两个分片的弹性分布式数据集;
[0160] 将获取到的连接信息进行封装并广播至各个分片;
[0161] 根据连接信息,在分片中加载对应分页的数据。
[0162] 优选的,上述校验为完整性校验;上述配置文件还包括定时任务配置信息;上述加载模块44具体用于:
[0163] 按照与不同类型的数据源对应的加载方式全量加载被校验表的字段数据;
[0164] 若为首次加载或者修改后首次加载,按照与不同类型的数据源对应的加载方式定时全量加载校验表的字段数据;
[0165] 若为非首次加载,按照与不同类型的数据源对应的加载方式定时增量加载校验表的字段数据。
[0166] 优选的,上述校验模块46包括:
[0167] 完整性校验模块462,用于若校验表的字段数据为定时全量加载,则:
[0168] 根据加载得到的校验表的字段数据计算与校验表对应的被校验表的字段数据的缺失值;
[0169] 对缺失值进行去重以完成对被校验表的字段数据的完整性校验;
[0170] 若校验表的字段数据为定时增量加载,则:
[0171] 获取前次校验结果表;
[0172] 将加载得到的校验表的字段数据与前次校验结果表的数据进行合并;
[0173] 根据合并后得到的数据计算与校验表对应的被校验表的字段数据的缺失值并将缺失值存入当前校验结果表;
[0174] 对缺失值进行去重以完成对被校验表的字段数据的完整性校验。
[0175] 优选的,上述校验为一致性校验;上述加载模块44还用于:
[0176] 按照与不同类型的数据源对应的加载方式全量加载校验表的字段数据和被校验表的字段数据。
[0177] 优选的,上述校验模块46还包括:
[0178] 一致性校验模块464,用于将加载后的校验表的字段数据进行整合,生成参照集;
[0179] 将加载后的被校验表的字段数据进行整合,生成全量数据集;
[0180] 根据参照集对全量数据集进行过滤以得到与参照集一致的数据子集;
[0181] 根据数据子集和全量数据集,得到不一致数据。
[0182] 优选的,上述加载模块44还包括:
[0183] 第二加载子模块444,用于若数据源为非关系型数据库,根据校验表和被校验表在非关系型数据库中的存储分布情况,加载对应存储区域的字段数据。
[0184] 实施例三
[0185] 对应上述方法和装置,本申请实施例三提供一种计算机系统,包括:
[0186] 一个或多个处理器;以及
[0187] 与一个或多个处理器关联的存储器,存储器用于存储程序指令,程序指令在被一个或多个处理器读取执行时,执行如下操作:
[0188] 获取数据库中预保存的配置文件;其中,配置文件包括校验表、被校验表、校验表和被校验表的字段之间的对应关系;
[0189] 判断校验表和被检验表的数据来源,按照与不同类型的数据源对应的加载方式加载校验表和被校验表的字段数据;
[0190] 对加载后的字段数据进行校验。
[0191] 其中,图5示例性的展示出了计算机系统的架构,具体可以包括处理器52,视频显示适配器54,磁盘驱动器56,输入/输出接口58,网络接口510,以及存储器512。上述处理器52、视频显示适配器54、磁盘驱动器56、输入/输出接口58、网络接口510,与存储器512之间可以通过通信总线514进行通信连接。
[0192] 其中,处理器52可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
[0193] 存储器512可以采用ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器512可以存储用于控制计算机系统50运行的操作系统516,用于控制计算机系统的低级别操作的基本输入输出系统(BIOS)518。另外,还可以存储网页浏览器520,数据存储管理系统522等等。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器512中,并由处理器52来调用执行。
[0194] 输入/输出接口58用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘鼠标触摸屏、麦克、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0195] 网络接口510用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
[0196] 通信总线514包括一通路,在设备的各个组件(例如处理器52、视频显示适配器54、磁盘驱动器56、输入/输出接口58、网络接口510,与存储器512之间传输信息。
[0197] 另外,该计算机系统还可以从虚拟资源对象领取条件信息数据库中获得具体领取条件的信息,以用于进行条件判断,等等。
[0198] 需要说明的是,尽管上述设备仅示出了处理器52、视频显示适配器54、磁盘驱动器56、输入/输出接口58、网络接口510,存储器512,通信总线514等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
[0199] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
[0200] 尽管已描述了本发明实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例中范围的所有变更和修改。另外,上述实施例提供的数据质量校验装置、计算机系统与数据质量校验方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0201] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈