数据质量校验方法、设备及计算机可读存储介质与流程

文档序号:29411237发布日期:2022-03-26 11:51阅读:214来源:国知局
数据质量校验方法、设备及计算机可读存储介质与流程

1.本发明涉及金融科技(fintech)技术领域,尤其涉及一种数据质量校验方法、设备及计算机可读存储介质。


背景技术:

2.随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,但由于金融行业的安全性、实时性要求,也对数据处理技术提出了更高的要求。
3.在日常的数据处理过程中,通常都需要对采集到的数据进行质量校验,而由于需要检验的数据量通常会比较大,因此会将海量数据存储于hive库(基于hadoop的一个数据仓库工具,hadoop是一种分布式系统基础架构,可进行海量数据的高速运算和存储)中,然后基于hive所具备的功能将数据的校验规则转换为sql语句,最后针对库中数据执行这些校验规则语句,以将采集数据中的异常数据筛选出来。但在传统的校验方式中,都是人工根据字段的逻辑配置校验规则,并且需要人工编写sql语句,当面对大量需要校验的数据时,通过这一方式来进行数据校验显然十分低效。


技术实现要素:

4.本发明的主要目的在于提出一种数据质量校验方法、设备及计算机可读存储介质,旨在解决现有的基于人工的数据质量校验方式的效率低下的技术问题。
5.为实现上述目的,本发明提供一种数据质量校验方法,所述数据质量校验方法包括:
6.获取输入参数,并从预配置的规则信息定义表中查询出与所述输入参数相关的规则配置信息,其中,所述规则信息定义表与各数据表的描述信息相适配,且底层封装有若干校验规则表达式的校验逻辑;
7.将所述规则配置信息转化为第一键值对集合,并根据所述输入参数获取到待校验数据表,以将所述待校验数据表转化为第二键值对集合;
8.将所述第一键值对集合与所述第二键值对集合进行匹配,以匹配得到所述待校验数据表中各字段对应的目标校验表达式;
9.按照所述目标校验表达式对所述待校验数据表中的各字段进行数据校验,以得到校验结果。
10.可选地,所述规则信息定义表包括基础信息表和校验规则定义表,
11.所述获取输入参数,并从预配置的规则信息定义表中查询出与所述输入参数相关的规则配置信息的步骤包括:
12.在接收到数据校验指令时,从所述数据校验指令中获取数据库名与数据表名,以作为所述输入参数;
13.从预配置的基础信息表与校验规则定义表中查询到与所述数据库名和数据表名
相关的规则配置信息,其中,所述基础信息表与所述校验规则定义表中均定义有数据库名参数和数据表名参数。
14.可选地,所述将所述规则配置信息转化为第一键值对集合的步骤包括:
15.将所述规则配置信息转化为若干第一键值对,其中,所述第一键值对中的关键字为所述校验规则定义表中所定义的一字段名称,所述第一键值对中的值为所述字段名称分别对应在所述基础信息表和校验规则定义表中的基础信息和校验规则信息;
16.将若干所述第一键值对汇总为所述第一键值对集合。
17.可选地,所述将所述第一键值对集合与所述第二键值对集合进行匹配,以匹配得到所述待校验数据表中各字段对应的目标校验表达式的步骤包括:
18.将所述第二键值对集合中每一所述第二键值对的关键字与所述第一键值对集合中每一所述第一键值对的关键字进行匹配;
19.基于匹配成功的第一键值对中的基础信息和校验规则信息生成相应的校验规则表达式,作为匹配成功的第二键值对所对应字段的目标校验表达式。
20.可选地,所述根据所述输入参数获取到待校验数据表,以将所述待校验数据表转化为第二键值对集合的步骤包括:
21.根据所述输入参数生成数据查询sql语句,使用所述sql语句语句查询到所述待校验数据表;
22.通过分布式计算引擎将所述待校验数据表加载至弹性分布式数据集中;
23.对所述弹性分布式数据集中的所有分区并行遍历,以将所述所有分区中的每行数据转换成一第二键值对,其中,所述第二键值对的关键字为所述待校验数据表中的实际字段名称,所述第二键值对中的值为所述实际字段名称对应的字段值;
24.将所述所有分区中的第二键值对汇总为所述第二键值对集合。
25.可选地,所述按照所述目标校验表达式对所述待校验数据表中的各字段进行数据校验,以得到校验结果的步骤包括:
26.确定所述待校验数据表中各字段所匹配到的目标校验表达式之间的依赖关系;
27.按照所述依赖关系先后对各所述字段执行匹配到的目标校验表达式,以对各所述字段进行数据校验,并得到所述各字段分别对应的校验结果。
28.可选地,所述按照所述目标校验表达式对所述待校验数据表中的各字段进行数据校验,以得到校验结果的步骤之后,还包括:
29.若所述校验结果为异常校验结果,则根据所述异常校验结果生成数据异常提示信息,并确定所述提示信息的告警级别;
30.将所述待校验数据表中各字段的数据异常提示信息以及告警级别汇总为异常数据汇总表,并将所述异常数据汇总表推送至相关处理人员。
31.可选地,所述按照所述目标校验表达式对所述待校验数据表中的各字段进行数据校验,以得到校验结果的步骤之后,还包括:
32.配置数据表字段的基础信息以及校验规则,以生成初始规则信息定义表;
33.基于前端获取到自定义校验规则的类和/或函数时,将所述自定义校验规则的类和/或函数整合进所述初始规则信息定义表中,得到所述规则信息定义表。
34.此外,为实现上述目的,本发明还提供一种数据质量校验系统,所述数据质量校验
系统包括:
35.规则配置查询模块,用于获取输入参数,并从预配置的规则信息定义表中查询出与所述输入参数相关的规则配置信息,其中,所述规则信息定义表与各数据表的描述信息相适配,且底层封装有若干校验规则表达式的校验逻辑;
36.键值对集合转化模块,用于将所述规则配置信息转化为第一键值对集合,并根据所述输入参数获取到待校验数据表,以将所述待校验数据表转化为第二键值对集合;
37.目标规则匹配模块,用于将所述第一键值对集合与所述第二键值对集合进行匹配,以匹配得到所述待校验数据表中各字段对应的目标校验表达式;
38.目标字段校验模块,用于按照所述目标校验表达式对所述待校验数据表中的各字段进行数据校验,以得到校验结果。
39.此外,为实现上述目的,本发明还提供一种数据质量校验设备,所述数据质量校验设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据质量校验程序,所述数据质量校验程序被所述处理器执行时实现如上所述的数据质量校验方法的步骤。
40.此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据质量校验程序,所述数据质量校验程序被处理器执行时实现如上所述的数据质量校验方法的步骤。
41.此外,为实现上述目的,本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的数据质量校验方法的步骤。
42.本发明通过先在底层封装好校验数据表中各字段所需的规则表达式的校验逻辑,然后基于此配置出适配于数据表字段的描述信息的规则信息定义表,使得在用户存在数据校验需求时,只需给出用于描述数据表的相关参数,系统即可自动根据输入参数加载出相应的规则配置以及待校验数据表的自身数据,然后通过规则匹配自动生成数据表中各字段校验所需的规则表达式,最后按照相应的规则表达式对各字段进行校验,即可得到校验结果,整个过程中无需人工来进行配置以及编写sql语句,因此校验人员无需学习校验规则表达式的编写,降低了校验人员的专业要求,同时无需将每个规则解析成sql,再进行执行,使得字段校验的配置更为方便快捷,从而提高了数据质量校验的效率,解决了现有的基于人工的数据质量校验方式的效率低下的技术问题。
附图说明
43.图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
44.图2为本发明数据质量校验方法第一实施例的流程示意图;
45.图3为本发明数据质量校验方法第三实施例中一具体实施例的数据校验的整体流程图;
46.图4为本发明数据质量校验系统的功能模块示意图。
47.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
48.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
49.在日常的数据处理过程中,通常都需要对采集到的数据进行质量校验,而由于需要检验的数据量通常会比较大,因此会将海量数据存储于hive库(基于hadoop的一个数据仓库工具,hadoop是一种分布式系统基础架构,可进行海量数据的高速运算和存储)中,然后基于hive所具备的功能将数据的校验规则转换为sql语句,最后针对库中数据执行这些校验规则语句,以将采集数据中的异常数据筛选出来。但在传统的校验方式中,都是人工根据字段的逻辑配置校验规则,并且需要人工编写sql语句,当面对大量需要校验的数据时,通过这一方式来进行数据校验显然十分低效。
50.为解决上述问题,本发明提供一种数据质量校验方法,即通过先在底层已封装好校验数据表中各字段所需的规则表达式的校验逻辑,然后基于此配置出适配于数据表字段的描述信息的规则信息定义表,使得在用户存在数据校验需求时,只需给出用于描述数据表的相关参数,系统即可自动根据输入参数加载出相应的规则配置以及待校验数据表的自身数据,然后通过规则匹配自动生成数据表中各字段校验所需的规则表达式,最后按照相应的规则表达式对各字段进行校验,即可得到校验结果,整个过程中无需人工来进行配置以及编写sql语句,因此校验人员无需学习校验规则表达式的编写,降低了校验人员的专业要求,同时无需将每个规则解析成sql,再进行执行,使得字段校验的配置更为方便快捷,从而提高了数据质量校验的效率,解决了现有的基于人工的数据质量校验方式的效率低下的技术问题。
51.如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
52.如图1所示,该数据质量校验系统可以包括:处理器1001,例如cpu,用户接口1003,网络接口1004,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
53.本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
54.如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据质量校验程序。
55.在图1所示的设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(程序员端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的数据质量校验程序,并执行下述数据质量校验方法中的操作。
56.基于上述硬件结构,提出本发明数据质量校验方法实施例。
57.参照图2,图2为本发明数据质量校验方法第一实施例的流程示意图。所述数据质量校验方法包括;
58.步骤s10,获取输入参数,并从预配置的规则信息定义表中查询出与所述输入参数相关的规则配置信息,其中,所述规则信息定义表与各数据表的描述信息相适配,且底层封装有若干校验规则表达式的校验逻辑;
59.在本实施例中,本发明应用于终端设备。待校验数据表指的是数据库中需要进行校验的数据,在数据库中以表为组织单位存储数据。输入参数用于对数据表进行描述,描述的内容具体可包括待校验数据表所在的数据库名、待校验数据表的表名。数据日期等等。规则信息定义表指的是预先已配置了表字段基础信息和表字段校验规则的定义表,且这些表字段基础信息和表字段校验规则是针对需要校验的数据表中的所有字段进行定义的,因此能够适配于这些数据表。即使是存在一些比较特殊的数据表,也能通过在定义表中自行添加相应定义来使其适配于这些数据表,从而具备高可扩展性。另外,对于这些校验规则,底层都已封装好了校验逻辑,因此用户无需关心校验规则表达式本身的编写方法。规则配置信息指的是规则信息定义表中适用于当前待校验数据表的一些规则配置。
60.具体地,用户当前若是存在数据校验的需求,可以在终端上指定需要校验的数据所在的数据库、数据表名称、以及需要对哪些项目进行校验等等,终端在接收到用户指定的内容后,将其作为上述输入参数,然后按照这些输入参数从预配置的规则信息定义表中找到当前待校验的数据表所适用的规则配置信息。
61.步骤s20,将所述规则配置信息转化为第一键值对集合,并根据所述输入参数获取到待校验数据表,以将所述待校验数据表转化为第二键值对集合;
62.在本实施例中,第一键值对集合指的是若干第一键值对所组成的集合,第一键值对指的是由规则配置信息所转化的键值对。第二键值对集合指的是若干第二键值对所组成的集合,第二键值对指的是由待校验数据表所转化的键值对。
63.具体地,输入参数至少包括数据库名和数据表名。终端将规则配置信息中的每条信息转化为关键字-值的形式,得到若干第一键值对,然后将其汇总为第一键值对集合。终端根据输入参数中数据库名和数据表名的指示从相应数据库中获取到待校验数据表,然后将表中每一行记录转化为一第二键值对,得到若干第二键值对,然后将其汇总为第二键值对集合。需要说明的是,规则配置信息转化步骤和待校验数据表的获取以及转化步骤可以同时进行,也可以先后进行,可根据实际情况灵活设置,本实施例不做具体限定。
64.步骤s30,将所述第一键值对集合与所述第二键值对集合进行匹配,以匹配得到所述待校验数据表中各字段对应的目标校验表达式;
65.步骤s40,按照所述目标校验表达式对所述待校验数据表中的各字段进行数据校验,以得到校验结果。
66.在本实施例中,匹配方式包括将两类键值对逐一进行关键字匹配,若存在一致关系、从属关系或是关联关系等,则可视为这一第一键值对与这一第二键值对匹配。目标校验表达式指的是适用于待校验数据表中各字段所对应的校验表达式,不同字段所对应的目标表达式可能相同也可能不同。
67.具体地,终端将第一键值对集合中的各第一键值对与第二键值对集合中的各第二键值对进行关键字匹配,得到匹配结果,然后基于这些匹配结果获取到数据表中各字段(等同于各第二键值对)所对应的目标校验表达式。终端按照各字段对应的目标校验表达式对各字段执行数据校验逻辑,如果符合该表达式的逻辑,则校验通过,如果不符合,则校验不通过,说明该数据值异常。因此,校验结果可能为正常校验结果,也可能为异常校验结果。
68.需要说明的是,校验表达式可以是在步骤s10之前就已生成,然后与相应的规则配置进行关联,最后根据匹配结果进行分配;也可以是并未预先生成,待到确定出待校验数据
表适用的规则配置信息后,基于底层已封装的校验逻辑生成规则配置信息相应的校验表达式,然后根据匹配结果将这些校验表达式分配到相应字段。
69.本实施例提供一种数据质量校验方法。所述数据质量校验方法通过先在底层已封装好校验数据表中各字段所需的规则表达式的校验逻辑,然后基于此配置出适配于数据表字段的描述信息的规则信息定义表,使得在用户存在数据校验需求时,只需给出用于描述数据表的相关参数,系统即可自动根据输入参数加载出相应的规则配置以及待校验数据表的自身数据,然后通过规则匹配自动生成数据表中各字段校验所需的规则表达式,最后按照相应的规则表达式对各字段进行校验,即可得到校验结果,整个过程中无需人工来进行配置以及编写sql语句,因此校验人员无需学习校验规则表达式的编写,降低了校验人员的专业要求,同时无需将每个规则解析成sql,再进行执行,使得字段校验的配置更为方便快捷,从而提高了数据质量校验的效率,解决了现有的基于人工的数据质量校验方式的效率低下的技术问题。
70.进一步地,基于上述图2所示的第一实施例,提出本发明数据质量校验方法的第二实施例。在本实施例中,所述规则信息定义表包括基础信息表和校验规则定义表,步骤s10包括:
71.步骤s11,在接收到数据校验指令时,从所述数据校验指令中获取数据库名与数据表名,以作为所述输入参数;
72.步骤s12,从预配置的基础信息表与校验规则定义表中查询到与所述数据库名和数据表名相关的规则配置信息,其中,所述基础信息表与所述校验规则定义表中均定义有数据库名参数和数据表名参数。
73.在本实施例中,基础信息表为定义了表字段各种属性参数(例如库名、表名、字段名、校验格式等)的表格,校验规则定义表为定义了校验规则格式(例如库名、表名、字段名、规则名称、规则类型等)的表格。
74.当存在数据校验需求时,用户可向终端输入指定的数据库名和数据表名,还可以输入数据日期以及其他已定义的参数,终端将用户输入的这些信息作为上述输入参数;或是用户在终端上开启相应的描述信息选择界面,在界面中选择相应的数据库名和数据表名,还可以选择其他参数信息,终端在用户所选择的这些信息作为上述输入参数。在确定库名和表名后,终端使用该库名和表名,到预配置的基础信息表和校验规则定义表中查询出相关的规则配置信息。
75.作为一具体实施例,基础信息表如下表所示。
[0076][0077]
表中定义有表字段的基础信息包括:库名称、表名称、字段名、字段中文名、字段类型、字段长度、是否可为空、是否为主键、是否定长、数值精度、数值范围、默认值以及校验格式。其中,校验格式简化定义如下:
[0078][0079][0080]
校验规则定义表则如下表所示:
[0081][0082]
其中,规则类型需要参照预定义的规则类型表,规则类型表涵盖了各种常规的校验规则类型,可根据实际需求进行定义。
[0083]
本实施例通过预先配置好校验时需要使用的表字段的基础信息和校验规则,使得用户只需要指明字段的各类描述信息,系统按照这些描述信息就可基于预配置的信息自动转换成对应的校验规则表达式,用户只需要对要校验的表中字段进行各个维度信息选择,因此配置起来会更加方便,从而提升了配置效率。
[0084]
进一步地,步骤s20中将所述规则配置信息转化为第一键值对集合的步骤包括:
[0085]
步骤s21,将所述规则配置信息转化为若干第一键值对,其中,所述第一键值对中的关键字为所述校验规则定义表中所定义的一字段名称,所述第一键值对中的值为所述字段名称分别对应在所述基础信息表和校验规则定义表中的基础信息和校验规则信息;
[0086]
步骤s22,将若干所述第一键值对汇总为所述第一键值对集合。
[0087]
在本实施例中,由于基础信息表和校验规则定义表中均定义有字段名称,因此终端可将规则配置信息转化为键值对形式,按照字段名称的不同,将每一字段名称作为一关键字key,而与此字段名称对应在基础信息表的基础信息,以及对应在校验规则定义表中的校验规则作为此关键字的值value,组成一组第一键值对。以此类推,将所有组成的第一键值对汇总为第一键值对集合。
[0088]
本实施例通过将规则配置信息转化为键值对形式,从而便于后续与待校验的字段进行匹配,进而提升了待校验字段所对应校验规则的匹配效率。
[0089]
进一步地,步骤s30包括:
[0090]
步骤s31,将所述第二键值对集合中每一所述第二键值对的关键字与所述第一键值对集合中每一所述第一键值对的关键字进行匹配;
[0091]
步骤s32,基于匹配成功的第一键值对中的基础信息和校验规则信息生成相应的校验规则表达式,作为匹配成功的第二键值对所对应字段的目标校验表达式。
[0092]
在本实施例中,终端将第二键值对集合中的各个第二键值对和第一键值对集合中的各第一键值对进行关键字匹配,匹配到表中各字段对应的基础信息和规则信息,然后基于此匹配到的基础信息和规则信息生成各字段对应的目标校验表达式,或是直接从预先生成的校验表达式结合中获取与匹配到的基础信息和规则信息关联的表达式作为目标校验表达式。
[0093]
本实施例通过将待校验数据表也转化为键值对形式,从而使得待校验数据表与规则配置信息能够通过形式转化直接进行匹配,进而提升了字段对应校验规则的匹配效率。
[0094]
进一步地,步骤s20中根据所述输入参数获取到待校验数据表,以将所述待校验数据表转化为第二键值对集合的步骤包括:
[0095]
步骤s23,根据所述输入参数生成数据查询sql语句,使用所述sql语句语句查询到所述待校验数据表;
[0096]
步骤s24,通过分布式计算引擎将所述待校验数据表加载至弹性分布式数据集中;
[0097]
步骤s25,对所述弹性分布式数据集中的所有分区并行遍历,以将所述所有分区中的每行数据转换成一第二键值对,其中,所述第二键值对的关键字为所述待校验数据表中的实际字段名称,所述第二键值对中的值为所述实际字段名称对应的字段值;
[0098]
步骤s26,将所述所有分区中的第二键值对汇总为所述第二键值对集合。
[0099]
在本实施例中,具体地,终端通过输入参数中的库名、表名以及数据日期生成对应的数据查询sql语句,执行该语句以查询到待校验数据表;然后使用分布式计算引擎spark,将待校验数据表的数据加载到弹性分布式数据集rdd中;对一个rdd里所有分区并行遍历,每个分区生成一个任务task以并行执行各分区的task;每个task对分配的分区中的所有数据进行遍历扫描;将分区中每行数据转换成一第二键值对,每一第二键值对中的关键字key为该行的字段名称(即上述实际字段名称),该关键字对应的值value为该行的字段值。终端将所有生成的第二键值对汇总为第二键值对集合。
[0100]
现有方式中每一条校验规则都需要转换出一条对应的sql语句然后执行,而在本实施例中,由于引入了分布式计算引擎spark,并结合spark+使用表达式,只需要全表扫描一次,即可对表中的所有字段进行校验,消耗资源少,校验速度快,执行比传统方式高效。并且就算现有技术中使用spark去执行这些sql,也可能会存在性能问题,而本实施例由于不需要编写并执行sql语句,因此也不会出现性能问题。
[0101]
进一步地,基于上述图2所示的第一实施例,提出本发明数据质量校验方法的第三实施例。在本实施例中,步骤s40包括:
[0102]
步骤s41,确定所述待校验数据表中各字段所匹配到的目标校验表达式之间的依赖关系;
[0103]
步骤s42,按照所述依赖关系先后对各所述字段执行匹配到的目标校验表达式,以对各所述字段进行数据校验,并得到所述各字段分别对应的校验结果。
[0104]
在本实施例中,遍历待校验数据表中的所有字段,按照各自匹配到的校验规则,对规则按照依赖关系(上述规则信息定义表中已定义)将每行数据的每一列的值进行先后顺序执行,执行的内容为各自匹配的目标校验表达式,参数为字段的值,执行结果(即上述校验结果)可能为真(true),也可能为假(false),若结果为false,说明规则与数据不匹配,数据不符合校验逻辑。
[0105]
本实施例进一步通过按照各规则之间的依赖关系顺序执行数据校验,避免了因未考虑到依赖关系就直接执行数据校验,而可能导致的校验失败的情况,从而提高了整体的校验效率。
[0106]
进一步地,步骤s40之后,还包括:
[0107]
步骤s50,若所述校验结果为异常校验结果,则根据所述异常校验结果生成数据异常提示信息,并确定所述提示信息的告警级别;
[0108]
步骤s60,将所述待校验数据表中各字段的数据异常提示信息以及告警级别汇总为异常数据汇总表,并将所述异常数据汇总表推送至相关处理人员。
[0109]
在本实施例中,可预先定义好数据异常的输出格式。终端若得到异常校验结果(即结果为false),则说明该字段值为异常数据。终端将异常校验结果按照规则定义的错误提示信息的格式以及告警级别输出到异常数据结果表中,并将该行数据的所有执行异常规则的告警级别中最高的告警级别作为该行数据的异常告警级别,当表中所有数据校验结束后,将异常结果表中的数据汇总,将汇总信息以邮件或其他形式发送给对应的库表负责人。
[0110]
作为一具体实施方式,预先定义的数据异常输出格式如下表:
[0111]
数据日期哪个数据日期的数据校验出错库名校验的hive库名表名校验的数据表名主键列名数据表的主键列,来源于1中字段基础信息定义的主键字段主键列值具体哪行主键数据出错校验类别规则类型定义告警类别取该行数据中所有执行异常规则的告警级别中最高的告警级别
[0112]
本实施例进一步通过设置告警流程,使得能够在校验结束后及时将数据异常情况通知到对应负责人,以便对应负责人及时处理这些异常数据,从而增加了负责人获知异常情况的便捷性。
[0113]
进一步地,步骤s10之前,还包括:
[0114]
步骤s01,配置数据表字段的基础信息以及校验规则,以生成初始规则信息定义表;
[0115]
步骤s02,基于前端获取到自定义校验规则的类和/或函数时,将所述自定义校验规则的类和/或函数整合进所述初始规则信息定义表中,得到所述规则信息定义表。
[0116]
在本实施例中,终端预先配置需要校验的库表信息,包括库名、表名。负责人等,以及对hive表数据进行基础信息描述,定义好要校验的表字段的基础信息,具体可参照上述的基础信息表;还需要对表字段规则进行格式定义,具体可参照上述的规则定义表。
[0117]
另外,对于具体的规则类型,还需要针对要校验的表中的所有字段进行规则定义,具体的规则类型表如下表所示:
[0118]
[0119][0120]
其中,对于逻辑条件校验类型,aviator是一种高性能、轻量级的java语言实现的表达式求值引擎,由于可以使用所有aviator表达式的内置函数以及自定义的加载的java类/方法,以及使用一些逻辑符号来组合出各类复杂的校验逻辑,因此在当用户根据实际校验需求自定义了java类/方法时,就可以将其按照上述方式整合进表中,以组合出行数据的校验逻辑,从而实现了逻辑条件配置的高扩展性。另外,aviator表达式可以用el表达式或者drools表达式进行替换。
[0121]
现有方式中校验规则转换称sql语句的方式只适用于简单的校验逻辑,若是遇到复杂的校验逻辑,则需要人工编写复杂的sql语句来实现,从而反映出现有的数据质量校验方式的具有较大的局限性。而本实施例则通过将各种校验类型的逻辑预先进行封装,并且提供自定义规则的添加途径,使得用户能够按照实际的校验需求组合出更为复杂的校验逻
辑,且无需自行编写sql语句,从而实现了本发明的高可扩展性。
[0122]
作为一具体实施例,如图3所示,图3为数据校验的整体流程图。首先为规则配置阶段,在此阶段中终端需要完成表字段基础信息配置以及表字段规则配置,具体的配置定义方式如上所述,在此不做赘述;在配置完成后,进入规则匹配阶段,若当前存在数据校验需求时,需要加载待校验的数据,并按照待校验数据的表字段和预配置的规则定义从预配置的校验规则中匹配出适配于待校验数据的目标规则表达式;在匹配完成后,进入规则执行阶段,在此阶段中,终端会按照各字段所匹配的规则所定义的依赖关系先后执行各自对应的规则表达式,以进行数据校验;在规则执行完毕后,即可进入最终的结果处理阶段,在此阶段中,终端对将异常结果汇总输出,并根据实际的告警等级对相关负责人进行告警提醒。
[0123]
如图4所示,本发明还提供一种数据质量校验系统,所述数据质量校验系统包括:
[0124]
规则配置查询模块10,用于获取输入参数,并从预配置的规则信息定义表中查询出与所述输入参数相关的规则配置信息,其中,所述规则信息定义表与各数据表的描述信息相适配,且底层封装有若干校验规则表达式的校验逻辑;
[0125]
键值对集合转化模块20,用于将所述规则配置信息转化为第一键值对集合,并根据所述输入参数获取到待校验数据表,以将所述待校验数据表转化为第二键值对集合;
[0126]
目标规则匹配模块30,用于将所述第一键值对集合与所述第二键值对集合进行匹配,以匹配得到所述待校验数据表中各字段对应的目标校验表达式;
[0127]
目标字段校验模块40,用于按照所述目标校验表达式对所述待校验数据表中的各字段进行数据校验,以得到校验结果。
[0128]
可选地,所述规则配置查询模块10包括:
[0129]
输入参数获取单元,用于在接收到数据校验指令时,从所述数据校验指令中获取数据库名与数据表名,以作为所述输入参数;
[0130]
相关信息查询单元,用于从预配置的基础信息表与校验规则定义表中查询到与所述数据库名和数据表名相关的规则配置信息,其中,所述基础信息表与所述校验规则定义表中均定义有数据库名参数和数据表名参数。
[0131]
可选地,所述键值对集合转化模块20包括:
[0132]
第一键值对转化单元,用于将所述规则配置信息转化为若干第一键值对,其中,所述第一键值对中的关键字为所述校验规则定义表中所定义的一字段名称,所述第一键值对中的值为所述字段名称分别对应在所述基础信息表和校验规则定义表中的基础信息和校验规则信息;
[0133]
第一键值对汇总单元,用于将若干所述第一键值对汇总为所述第一键值对集合。
[0134]
可选地,所述目标规则匹配模块30包括:
[0135]
关键字匹配单元,用于将所述第二键值对集合中每一所述第二键值对的关键字与所述第一键值对集合中每一所述第一键值对的关键字进行匹配;
[0136]
目标表达式生成单元,用于基于匹配成功的第一键值对中的基础信息和校验规则信息生成相应的校验规则表达式,作为匹配成功的第二键值对所对应字段的目标校验表达式。
[0137]
可选地,所述键值对集合转化模块20包括:
[0138]
查询语句使用单元,用于根据所述输入参数生成数据查询sql语句,使用所述sql
语句语句查询到所述待校验数据表;
[0139]
计算引擎加载单元,用于通过分布式计算引擎将所述待校验数据表加载至弹性分布式数据集中;
[0140]
第二键值对转化单元,用于对所述弹性分布式数据集中的所有分区并行遍历,以将所述所有分区中的每行数据转换成一第二键值对,其中,所述第二键值对的关键字为所述待校验数据表中的实际字段名称,所述第二键值对中的值为所述实际字段名称对应的字段值;
[0141]
第二键值对汇总单元,用于将所述所有分区中的第二键值对汇总为所述第二键值对集合。
[0142]
可选地,所述目标字段校验模块40包括:
[0143]
依赖关系确定单元,用于确定所述待校验数据表中各字段所匹配到的目标校验表达式之间的依赖关系;
[0144]
校验结果生成单元,用于按照所述依赖关系先后对各所述字段执行匹配到的目标校验表达式,以对各所述字段进行数据校验,并得到所述各字段分别对应的校验结果。
[0145]
可选地,所述数据质量校验系统还包括:
[0146]
异常信息生成模块,用于若所述校验结果为异常校验结果,则根据所述异常校验结果生成数据异常提示信息,并确定所述提示信息的告警级别;
[0147]
异常数据推送模块,用于将所述待校验数据表中各字段的数据异常提示信息以及告警级别汇总为异常数据汇总表,并将所述异常数据汇总表推送至相关处理人员。
[0148]
可选地,所述数据质量校验系统还包括:
[0149]
初始定义生成模块,用于配置数据表字段的基础信息以及校验规则,以生成初始规则信息定义表;
[0150]
自定规则整合模块,用于基于前端获取到自定义校验规则的类和/或函数时,将所述自定义校验规则的类和/或函数整合进所述初始规则信息定义表中,得到所述规则信息定义表。
[0151]
本发明还提供一种数据质量校验设备。
[0152]
所述数据质量校验设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的数据质量校验程序,其中所述数据质量校验程序被所述处理器执行时,实现如上所述的数据质量校验方法的步骤。
[0153]
其中,所述数据质量校验程序被执行时所实现的方法可参照本发明数据质量校验方法的各个实施例,此处不再赘述。
[0154]
本发明还提供一种计算机可读存储介质。
[0155]
本发明计算机可读存储介质上存储有数据质量校验程序,所述数据质量校验程序被处理器执行时实现如上所述的数据质量校验方法的步骤。
[0156]
其中,所述数据质量校验程序被执行时所实现的方法可参照本发明数据质量校验方法各个实施例,此处不再赘述。
[0157]
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的数据质量校验方法的步骤。
[0158]
其中,所述计算机程序被执行时所实现的方法可参照本发明数据质量校验方法各
个实施例,此处不再赘述。
[0159]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0160]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0161]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0162]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1