本发明涉及数据处理,特别是涉及一种数据校验方法、装置、设备以及存储介质。
背景技术:
1、异构数据库是指不同类型的数据库,如关系型数据库与非关系型数据库为异构数据库。其中,数据存储在关系型数据库中是为了持久化数据,存储在非关系型数据库中是为了加速查询时间。
2、随着业务选型的数据库产品越来越多,同一份数据可能需要分别写入到关系型数据库和非关系型数据库中,此时,需要确认写入不同类型的数据库中的数据是否一致。
3、由于异构数据库支持的数据格式不一致,导致现有的校验工具无法对异构数据库中的数据进行校验,因此,如何对异构数据库中数据进行一致性校验,成为亟需解决的技术问题。
技术实现思路
1、本发明实施例的目的在于提供一种数据校验方法、装置、设备以及存储介质,以实现对异构数据库中数据进行一致性校验。具体技术方案如下:
2、第一方面,本发明实施例提供了一种数据校验方法,所述方法包括:
3、响应于接收到待校验任务,判断所述待校验任务所指示的两个待校验数据库是否为异构数据库;
4、若是,针对所述待校验数据库中的关系型数据库中的每一行数据,调用目标配置文件将该行数据转换为目标数据格式,得到第一数据;其中,所述目标数据格式为所述待校验数据库中的非关系型数据库支持的数据格式;所述目标配置文件为:预先设置的多个配置文件中、配置有所述关系型数据库支持的数据格式转换至所述目标数据格式之间的转化规则的配置文件;
5、从所述非关系型数据库中查询与所述第一数据相对应的第二数据,并比较所述第一数据和所述第二数据,得到表示所述第一数据和所述第二数据是否相同的校验结果。
6、可选地,所述方法还包括:
7、若所述待校验任务所指示的两个待校验数据库不为异构数据库,则针对所述待校验数据库中的任一数据库中的每一第一数据元组,获取该第一数据元组中指定字段的字段值;其中,所述指定字段为作为主键或唯一键的字段;
8、从另一数据库中查询包含所述指定字段的字段值的数据元组,并将所查找到的数据元组与该第一数据元组进行比较,得到表示所查找到的数据元组与该第一数据元组是否相同的校验结果。
9、可选地,所述目标数据格式为:由第一数据类型的键和第二数据类型的值构成的键值对的数据格式;
10、所述目标配置文件中配置的转化规则包括:将所述关系型数据库中一行数据中预定字段的字段值转化为所述第一数据类型的第一转化规则,以及将所述关系型数据库中一行数据转化为所述第二数据类型的第二转化规则;其中,所述预定字段与所述非关系型数据库中作为主键或唯一键的字段对应;
11、针对所述待校验数据库中的关系型数据库中的每一行数据,调用目标配置文件将该行数据转换为目标数据格式,得到第一数据,包括:
12、针对所述待校验数据库中的关系型数据库中的每一行数据,调用所述目标配置文件中的第一转化规则,将该行数据中预定字段的字段值转化为所述第一数据类型,得到作为所述第一数据的键值对中的键;
13、调用所述目标配置文件中的第二转化规则,将该行数据转化为所述第二数据类型,得到作为所述第一数据的键值对中的值。
14、可选地,所述第一转化规则包括默认转化规则,所述默认转化规则包括:将所述关系数据库中作为主键的字段转化为所述第一数据类型的转化规则;
15、针对所述待校验数据库中的关系型数据库中的每一行数据,调用所述目标配置文件中的第一转化规则,将该行数据中的预定字段的数据类型转化为所述第一数据类型,得到作为所述第一数据的键值对中的键,包括:
16、针对所述待校验数据库中的关系型数据库中的每一行数据,调用所述目标配置文件中的默认转化规则,将该行数据中的作为主键的字段的字段值,转化为所述第一数据类型,得到作为所述第一数据的键值对中的键。
17、可选地,所述预定字段为与所述非关系型数据库中作为主键的字段对应的多个目标字段,或者,与所述非关系型数据库中作为唯一键的字段对应的多个目标字段;所述第一转化规则还包括自定义转化规则,所述自定义转化规则包括:将所述关系型数据库中的多个目标字段的字段值按照预定顺序以及预定分隔符进行拼接,并转化为所述第一数据类型的转化规则;
18、在针对所述待校验数据库中的关系型数据库中的每一行数据,调用所述目标配置文件中的默认转化规则,将该行数据中的作为单一主键的字段的字段值,转化为所述第一数据类型,得到作为所述第一数据的键值对中的键之前,所述方法还包括:
19、识别所述目标配置文件中是否包含自定义转化规则;
20、若所述目标配置文件中包含所述自定义转化规则,则针对所述待校验数据库中的关系型数据库中的每一行数据,调用所述自定义转化规则,将该行数据中的多个目标字段的字段值转化为所述第一数据类型,得到作为所述第一数据的键值对中的键;
21、针对所述待校验数据库中的关系型数据库中的每一行数据,调用所述目标配置文件中的默认转化规则,将该行数据中的作为单一主键的字段的字段值,转化为所述第一数据类型,得到作为所述第一数据的键值对中的键,包括:
22、若所述目标配置文件中不包含所述自定义转化规则,则针对所述待校验数据库中的关系型数据库中的每一行数据,调用所述目标配置文件中的默认转化规则,将该行数据中的作为主键的字段的字段值,转化为所述第一数据类型,得到作为所述第一数据的键值对中的键。
23、可选地,从所述非关系型数据库中查询与所述第一数据相对应的第二数据,包括:
24、从所述非关系型数据库中查询所述第一数据中的键,并将所查询到的键所属的数据元组确定为与所述第一数据相对应的第二数据。
25、可选地,所述基于所述第一数据,从所述非关系型数据库中查询与所述第一数据相对应的第二数据,并比较所述第一数据和所述第二数据,得到表示所述第一数据和所述第二数据是否相同的校验结果,包括:
26、调用第一指定类,以执行从所述非关系型数据库中查询与所述第一数据相对应的第二数据,并比较所述第一数据和所述第二数据的步骤,得到表示所述第一数据和所述第二数据是否相同的校验结果;
27、其中,所述第一指定类为第二指定类的多个子类中、所述目标数据格式对应的子类;所述第二指定类中设置有预定查询方法和预定校验方法,所述第一指定类继承所述第二指定类中的方法,所述预定查询方法用于从所述非关系型数据库中查询包含任一数据格式的键值对中的键的数据元组,所述预定校验方法用于比较所查询到的数据元组与任一数据格式的键值对中的值是否相同。
28、第二方面,本发明实施例提供了一种数据校验装置,所述装置包括:
29、判断模块,用于响应于接收到待校验任务,判断所述待校验任务所指示的两个待校验数据库是否为异构数据库;
30、调用模块,用于若是,针对所述待校验数据库中的关系型数据库中的每一行数据,调用目标配置文件将该行数据转换为目标数据格式,得到第一数据;其中,所述目标数据格式为所述待校验数据库中的非关系型数据库支持的数据格式;所述目标配置文件为:预先设置的多个配置文件中、配置有所述关系型数据库支持的数据格式转换至所述目标数据格式之间的转化规则的配置文件;
31、比较模块,用于从所述非关系型数据库中查询与所述第一数据相对应的第二数据,并比较所述第一数据和所述第二数据,得到表示所述第一数据和所述第二数据是否相同的校验结果。
32、可选地,所述装置还包括:
33、获取模块,用于若所述待校验任务所指示的两个待校验数据库不为异构数据库,则针对所述待校验数据库中的任一数据库中的每一第一数据元组,获取该第一数据元组中指定字段的字段值;其中,所述指定字段为作为主键或唯一键的字段;
34、查询模块,用于从另一数据库中查询包含所述指定字段的字段值的数据元组,并将所查找到的数据元组与该第一数据元组进行比较,得到表示所查找到的数据元组与该第一数据元组是否相同的校验结果。
35、可选地,所述目标数据格式为:由第一数据类型的键和第二数据类型的值构成的键值对的数据格式;
36、所述目标配置文件中配置的转化规则包括:将所述关系型数据库中一行数据中预定字段的字段值转化为所述第一数据类型的第一转化规则,以及将所述关系型数据库中一行数据转化为所述第二数据类型的第二转化规则;其中,所述预定字段与所述非关系型数据库中作为主键或唯一键的字段对应;
37、所述调用模块,包括:
38、第一调用子模块,用于针对所述待校验数据库中的关系型数据库中的每一行数据,调用所述目标配置文件中的第一转化规则,将该行数据中预定字段的字段值转化为所述第一数据类型,得到作为所述第一数据的键值对中的键;
39、第二调用子模块,用于调用所述目标配置文件中的第二转化规则,将该行数据转化为所述第二数据类型,得到作为所述第一数据的键值对中的值。
40、可选地,所述第一转化规则包括默认转化规则,所述默认转化规则包括:将所述关系数据库中作为主键的字段转化为所述第一数据类型的转化规则;
41、所述第一调用子模块,具体用于:
42、针对所述待校验数据库中的关系型数据库中的每一行数据,调用所述目标配置文件中的默认转化规则,将该行数据中的作为主键的字段的字段值,转化为所述第一数据类型,得到作为所述第一数据的键值对中的键。
43、可选地,所述预定字段为与所述非关系型数据库中作为主键的字段对应的多个目标字段,或者,与所述非关系型数据库中作为唯一键的字段对应的多个目标字段;所述第一转化规则还包括自定义转化规则,所述自定义转化规则包括:将所述关系型数据库中的多个目标字段的字段值按照预定顺序以及预定分隔符进行拼接,并转化为所述第一数据类型的转化规则;
44、所述装置还包括:
45、识别模块,用于在所述第一调用子模块执行针对所述待校验数据库中的关系型数据库中的每一行数据,调用所述目标配置文件中的默认转化规则,将该行数据中的作为单一主键的字段的字段值,转化为所述第一数据类型,得到作为所述第一数据的键值对中的键之前,识别所述目标配置文件中是否包含自定义转化规则;
46、转化模块,用于若所述目标配置文件中包含所述自定义转化规则,则针对所述待校验数据库中的关系型数据库中的每一行数据,调用所述自定义转化规则,将该行数据中的多个目标字段的字段值转化为所述第一数据类型,得到作为所述第一数据的键值对中的键;
47、所述第一调用子模块,具体用于:
48、若所述目标配置文件中不包含所述自定义转化规则,则针对所述待校验数据库中的关系型数据库中的每一行数据,调用所述目标配置文件中的默认转化规则,将该行数据中的作为主键的字段的字段值,转化为所述第一数据类型,得到作为所述第一数据的键值对中的键。
49、可选地,所述比较模块从所述非关系型数据库中查询与所述第一数据相对应的第二数据,包括:
50、从所述非关系型数据库中查询所述第一数据中的键,并将所查询到的键所属的数据元组确定为与所述第一数据相对应的第二数据。
51、可选地,所述比较模块,具体用于:
52、调用第一指定类,以执行从所述非关系型数据库中查询与所述第一数据相对应的第二数据,并比较所述第一数据和所述第二数据的步骤,得到表示所述第一数据和所述第二数据是否相同的校验结果;
53、其中,所述第一指定类为第二指定类的多个子类中、所述目标数据格式对应的子类;所述第二指定类中设置有预定查询方法和预定校验方法,所述第一指定类继承所述第二指定类中的方法,所述预定查询方法用于从所述非关系型数据库中查询包含任一数据格式的键值对中的键的数据元组,所述预定校验方法用于比较所查询到的数据元组与任一数据格式的键值对中的值是否相同。
54、第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
55、存储器,用于存放计算机程序;
56、处理器,用于执行存储器上所存放的程序时,实现上述的数据校验方法的步骤。
57、第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据校验方法的步骤。
58、本发明实施例提供的方案,由于目标配置文件为配置有该关系型数据库支持的数据格式转换至该目标数据格式之间的转化规则的配置文件,因此若待校验任务所指示的两个待校验数据库为异构数据库,针对待校验数据库中的关系型数据库中的每一行数据,可以调用目标配置文件将该行数据转换为目标数据格式,得到第一数据。然后,根据该第一数据可以从非关系型数据库中查询与第一数据相对应的第二数据,并比较第一数据和第二数据,得到表示第一数据和第二数据是否相同的校验结果。可见,通过本方案,能够自动化的对异构数据库中数据进行一致性校验,提高数据校验效率。
1.一种数据校验方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1或2所述的方法,其特征在于,所述目标数据格式为:由第一数据类型的键和第二数据类型的值构成的键值对的数据格式;
4.根据权利要求3所述的方法,其特征在于,所述第一转化规则包括默认转化规则,所述默认转化规则包括:将所述关系数据库中作为主键的字段转化为所述第一数据类型的转化规则;
5.根据权利要求4所述的方法,其特征在于,所述预定字段为与所述非关系型数据库中作为主键的字段对应的多个目标字段,或者,与所述非关系型数据库中作为唯一键的字段对应的多个目标字段;所述第一转化规则还包括自定义转化规则,所述自定义转化规则包括:将所述关系型数据库中的多个目标字段的字段值按照预定顺序以及预定分隔符进行拼接,并转化为所述第一数据类型的转化规则;
6.根据权利要求3所述的方法,其特征在于,从所述非关系型数据库中查询与所述第一数据相对应的第二数据,包括:
7.根据权利要求1或2所述的方法,其特征在于,所述基于所述第一数据,从所述非关系型数据库中查询与所述第一数据相对应的第二数据,并比较所述第一数据和所述第二数据,得到表示所述第一数据和所述第二数据是否相同的校验结果,包括:
8.一种数据校验装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法。
