一种数据校验方法及装置
文献发布时间:2023-06-19 09:44:49
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据校验方法及装置。
背景技术
随着各个企业对数据库性能、安全及成本等需求不断的提高,为了满足其他对数据库性能、安全及成本等需求,需要更换性能、安全及成本更好的数据库。
在更换数据库的过程中,需要将旧的数据库中的数据迁移至新的数据库。由于不同数据库存储数据的方式存在差异,因此在更换数据库的过程中,保证迁移前后数据的一致性尤为重要。目前,常通过人工筛查的方式来保证迁移前后数据的一致性,需要人工对迁移前旧数据库中的数据和迁移后新数据库中的数据进行比对。使得迁移前后数据比对需要耗费大量的时间和精力,且通过人工筛查的方式无法确保迁移前后数据的一致性。
发明内容
有鉴于此,本发明实施例提供一种数据校验方法及装置,以解决现有技术中存在的数据库迁移前后数据的一致性的问题。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面提供了一种数据校验方法,所述方法包括:
获取迁移前第一数据库的第一数据表和迁移后第二数据库中对应所述第一数据表的第二数据表;
对所述第一数据表进行处理,得到与DQL相关的第一特征矩阵和第一密码散列函数MD5特征值,以及确定所述第一数据表中的第一数据条数;
对所述第二数据表进行处理,得到与DQL相关的第二特征矩阵和第二MD5特征值,以及确定所述第二数据表中的第二数据条数;
对所述第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与所述第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值进行校验;
若校验通过,则确定所述第一数据库中的数据与所述第二数据库中的数据一致。
可选的,所述对所述第一数据表进行处理,确定所述第一数据表中的第一数据条数包括:
基于数据库查询语句查询所述第一数据表的数据条数,确定与所述第一数据表对应的第一数据条数;
相应的,所述对所述第二数据表进行处理,确定所述第二数据表中的第二数据条数,包括:
基于数据库查询语句查询所述第二数据表的数据条数,确定与所述第二数据表对应的第二数据条数。
可选的,所述对所述第一数据表进行处理,得到与DQL相关的第一特征矩阵,包括:
获取所述第一数据表中所有的特殊字段,所述特殊字段是预先设定的;
将所述所有的特殊字段进行分类计算,确定每一种特征字段的数量;
基于所述每一种特殊字段的数量,构建第一特征矩阵;
相应的,所述对所述第二数据表进行处理,得到与DQL相关的第二特征矩阵,包括:
获取所述第二数据表中所有的特殊字段,所述特殊字段是预先设定的;
将所述所有的特殊字段进行分类计算,确定每一种特征字段的数量;
基于所述每一种特殊字段的数量,构建第二特征矩阵。
可选的,所述对所述第一数据表进行处理,得到与DQL相关的第一密码散列函数MD5特征值,包括:
按照预先设置的分隔符将所述第一数据表导出为第一数据文件;
基于所述第一数据文件,生成与所述第一数据表对应的第一MD5特征值;
相应的,所述对所述第二数据表进行处理,得到与DQL相关的第二MD5特征值,包括:
按照预先设置的分隔符将所述第二数据表导出为第二数据文件;
基于所述第二数据文件,生成与所述数据表对应的第二MD5特征值。
可选的,所述对所述第一数据表的第一数据条数、第一特征矩阵与第一MD5特征值和所述第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值进行校验,包括:
判断所述第一数据表的第一数据条数和对应的第二数据表的第二数据条数是否一致,所述第一数据表的第一特征矩阵和对应的第二数据表的第二特征矩阵是否一致;
若两者中任一一种不一致,则确定所述第一数据库中的数据与所述第二数据库中的数据不一致;
若均一致,判断所述第一数据表的第一MD5特征值和对应的第二数据表的第二MD5特征值是否一致;
若一致,则执行确定所述第一数据库中的数据与所述第二数据库中的数据一致的步骤;
若不一致,则确定所述第一数据库中的数据与所述第二数据库中的数据不一致。
本发明实施例第二方面提供了一种数据校验装置,所述装置包括:
第一获取单元,用于获取迁移前第一数据库的第一数据表和迁移后第二数据库中对应所述第一数据表的第二数据表;
第一确定单元,用于对所述第一数据表进行处理,得到与DQL相关的第一特征矩阵和第一密码散列函数MD5特征值,以及确定所述第一数据表中的第一数据条数;
第二确定单元,用于对所述第二数据表进行处理,得到与DQL相关的第二特征矩阵和第二MD5特征值,以及确定所述第二数据表中的第二数据条数;
校验单元,用于对所述第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与所述第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值进行校验,若校验通过,则执行第三确定单元;
第三确定单元,用于确定所述第一数据库中的数据与所述第二数据库中的数据一致。
可选的,所述对所述第一数据表进行处理,确定所述第一数据表中的第一数据条数的第一确定单元,具体用于:基于数据库查询语句查询所述第一数据表的数据条数,确定与所述第一数据表对应的第一数据条数;
相应的,所述对所述第二数据表进行处理,确定所述第二数据表中的第二数据条数的第二确定单元,具体用于:基于数据库查询语句查询所述第二数据表的数据条数,确定与所述第二数据表对应的第二数据条数。
可选的,所述对所述第一数据表进行处理,得到与DQL相关的第一特征矩阵的第一确定单元,具体用于:获取所述第一数据表中所有的特殊字段,所述特殊字段是预先设定的;将所述所有的特殊字段进行分类计算,确定每一种特征字段的数量;基于所述每一种特殊字段的数量,构建第一特征矩阵;
相应的,所述对所述第二数据表进行处理,得到与DQL相关的第二特征矩阵的第二确定单元,具体用于:获取所述第二数据表中所有的特殊字段,所述特殊字段是预先设定的;将所述所有的特殊字段进行分类计算,确定每一种特征字段的数量;基于每一种特殊字段的数量,构建第二特征矩阵。
可选的,所述对所述第一数据表进行处理,得到与DQL相关的第一密码散列函数MD5特征值的第一确定单元,具体用于:按照预先设置的分隔符将所述第一数据表导出为第一数据文件;基于所述第一数据文件,生成与所述第一数据表对应的第一MD5特征值;
相应的,所述对所述第二数据表进行处理,得到与DQL相关的第二MD5特征值的第二确定单元,具体用于:按照预先设置的分隔符将所述第二数据表导出为第二数据文件;基于所述第二数据文件,生成与所述数据表对应的第二MD5特征值。
可选的,所述校验单元包括DQL数据校验模块和MD5模块;
所述数据校验模块,用于判断所述第一数据表的第一数据条数和对应的第二数据表的第二数据条数是否一致,所述第一数据表的第一特征矩阵和对应的第二数据表的第二特征矩阵是否一致;若两者中任一一种不一致,则确定所述第一数据库中的数据与所述第二数据库中的数据不一致;若均一致,则执行所述MD5模块;
所述MD5模块,用于判断所述第一数据表的第一MD5特征值和对应的第二数据表的第二MD5特征值是否一致;若不一致,则确定所述第一数据库中的数据与所述第二数据库中的数据不一致;若一致,则执行所述第三确定单元。
基于上述本发明实施例提供的一种数据校验方法及装置,该方法包括获取迁移前第一数据库的第一数据表和迁移后第二数据库中对应第一数据表的第二数据表;对第一数据表进行处理,得到与DQL相关的第一特征矩阵和第一密码散列函数MD5特征值,以及确定第一数据表中的第一数据条数;对第二数据表进行处理,得到与DQL相关的第二特征矩阵和第二MD5特征值,以及确定第二数据表中的第二数据条数;对第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值进行校验;若校验通过,则确定第一数据库中的数据与第二数据库中的数据一致。在本发明实施例中,不需要人工进行筛查,通过校验第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值,以确定第一数据库中的数据与第二数据库中的数据是否一致,在校验通过时,确定第一数据库中的数据与第二数据库中的数据一致,能够减少迁移前后数据比对的时间,以确保迁移前后数据的一致性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的第一数据库、数据校验装置和第二数据库的应用结构示意图;
图2为本发明实施例提供的一种数据校验方法的流程示意图;
图3为本发明实施例提供的另一种数据校验方法的流程示意图;
图4为本发明实施例提供的第一数据表和第二数据表的条数比对示意图;
图5为本发明实施例提供的第一数据文件和第二数据文件的示意图;
图6为本发明实施例提供的一种数据校验装置的结构示意图;
图7为本发明实施例提供的另一种数据校验装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本发明实施例中,不需要人工进行筛查,通过校验第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值,以确定第一数据库中的数据与第二数据库中的数据是否一致,在校验通过时,确定第一数据库中的数据与第二数据库中的数据一致,能够减少迁移前后数据比对的时间,以确保迁移前后数据的一致性。
参见图1,为本发明实施例示出的第一数据库10、数据校验装置20和第二数据库30的应用结构示意图。
第一数据库10和第二数据库30分别与数据校验装置20连接。
其中,第一数据库10用于指示数据迁移前的数据库。
第二数据库30用于指示数据库迁移后的数据库。
第一数据库10包括多个第一数据表100,具体的,多个第一数据表100包括第一数据表101、第一数据表102......第一数据表10N共N个第一数据表,该第一数据表用于存储迁移前第一数据库中的数据。
第二数据库30包括多个第二数据表300,具体的,多个第二数据表300包括第二数据表301、第二数据表302......第二数据表30M共M个第二数据表,该第二数据表用于存储迁移后第二数据库中的数据。
需要说明的是,第一数据库中的第一数据表与第二数据库中的第二数据表一一对应,也就是说,第一数据表101与第二数据表301对应,第一数据表102与第二数据表302对应,依次类推,第一数据表10N与第二数据表30M对应。
N和M的取值范围为大于等于1的正整数,且N等于M。
基于该应用结构实现针对数据校验的过程包括:
数据校验装置20获取第一数据库10的第一数据表,其中第一数据表的数量至少为一个。
数据校验装置20获取第二数据库30的第二数据表,第二数据表的数量与第一数据表的数量相同。
数据校验装置20对第一数据表进行处理,得到与DQL相关的第一特征矩阵和第一密码散列函数MD5特征值,以及确定每一第一数据表中的第一数据条数。同理,数据校验装置20也会对第二数据表进行处理,得到与DQL相关的第二特征矩阵和第二MD5特征值,以及确定第二数据表中的第二数据条数。
需要说明的是,每一个第一数据表均有一个与之对应的第一特征矩阵;每一个第一数据表也均有一个与之对应的第一MD5特征值。每一个第二数据表均有一个与之对应的第二特征矩阵;每一个第二数据表也均有一个与之对应的第二MD5特征。
数据校验装置20对第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值进行校验,在校验通过时,确定确定第一数据库10中的数据与第二数据库30中的数据一致。
在本发明实施例中,不需要人工进行筛查,通过校验第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值,以确定第一数据库中的数据与第二数据库中的数据是否一致,在校验通过时,确定第一数据库中的数据与第二数据库中的数据一致,能够减少迁移前后数据比对的时间,以确保迁移前后数据的一致性。
基于上述本发明实施例公开的处理架构,参见图2,为本发明实施例示出的一种数据校验方法的流程示意图,该方法适用于数据校验装置,该方法包括:
步骤S201:获取迁移前第一数据库的第一数据表和迁移后第二数据库中对应第一数据表的第二数据表。
在具体实现步骤S201的过程中,获取迁移前第一数据库,即原数据库中的第一数据表,以及数据迁移后第二数据库,即当前数据库中的第二数据表。
需要说明的是,第一数据表用于存储迁移前的数据,第二数据表用于存储迁移后的数据。
第一数据库和第二数据库均存储多个数据表,且第一数据库中的第一数据表与第二数据库中的第二数据表一一对应,也就是说第一数据库和第二数据库中表名相同的数据表相互对应。
步骤S202:对第一数据表进行处理,得到与DQL相关的第一特征矩阵和第一密码散列函数MD5特征值,以及确定第一数据表中的第一数据条数。
在具体实现步骤S202的过程中,首先分别查询第一数据库中的每一个第一数据表的第一数据条数;其次分别对第一数据库中的每一个第一数据表进行处理,得到每一数据表所对应的第一特征矩阵,以及每一数据表对应的第一密码散列函数MD5特征值。
需要说明的是,第一密码散列函数MD5特征值是一种根据第一数据表中的数据生成的128位的散列值。
步骤S203:对第二数据表进行处理,得到与DQL相关的第二特征矩阵和第二MD5特征值,以及确定第二数据表中的第二数据条数。
需要说明的是,步骤S203的具体实现过程与上述步骤S202的具体实现过程相同,可相互参见,对此本发明实施例不加以限制。
进一步,需要说明的是,步骤S202和步骤S203的执行顺序可以如上所示,也可以同时执行,或是先执行步骤S203,再执行步骤S202,对此本发明实施例不加以限制。
步骤S204:对第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值进行校验,若校验通过,执行步骤S205,若校验不通过,执行步骤S206。
在具体实现步骤S204的过程中,校验每个第一数据表的第一数据条数和对应的第二数据表的第二数据条数,校验每一第一数据表的第一特征矩阵和对应的第二数据表的第二特征矩阵,校验每一第一数据表的第一MD5特征值和对应的第二数据表的第二MD5特征值,若均校验通过,则执行步骤S205,若任意一个数据表的数据条数、特征矩阵或MD5特征值校验不通过时,执行步骤S206。
步骤S205:确定第一数据库中的数据与第二数据库中的数据一致。
在具体实现步骤S205的过程中,保证第一数据库迁移至第二数据库的数据的完整性。
步骤S206:确定第一数据库中的数据与第二数据库中的数据不一致。
在具体实现步骤S206的过程中,说明第一数据库迁移至第二数据库的数据的存在迁移纰漏。
可选的,基于上述示出的数据校验方法,在确定第一数据库中的数据与第二数据库中的数据不一致之后,还包括:
基于校验不通过的第一数据表和第二数据表所对应的表名,生成对应的提示信息,以便于技术人员提示信息快速、精准的确定数据库迁移出现的问题,进而提供相应的措施。
在本发明实施例中,不需要人工进行筛查,通过校验第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值,以确定第一数据库中的数据与第二数据库中的数据是否一致。若校验通过时,确定第一数据库中的数据与第二数据库中的数据一致;若校验不通过时,则说明第一数据库迁移至第二数据库的数据的存在迁移纰漏。能够减少迁移前后数据比对的时间,以确保迁移前后数据的一致性。
可选的,基于上述示出的数据校验方法,在执行步骤S202对第一数据表进行处理,得到与DQL相关的第一特征矩阵和第一密码散列函数MD5特征值,以及确定第一数据表中的第一数据条数的过程中,包括以下步骤:
步骤S11:基于数据库查询语句查询第一数据表的数据条数,确定与第一数据表对应的第一数据条数。
在具体实现步骤S11的过程中,利用数据库查询语句对第一数据库中的每一第一数据表的数据条数进行查询,得到与每一第一数据表对应的第一数据条数。
例如:第一数据表的表名为t,查询该第一数据表t所对应的第一数据条数具体为:利用关于DQL的数据库查询语句select count(*)from t,对第一数据表t对应的第一数据条数进行查询,得到与第一数据表t应的第一数据条数。
步骤S12:获取第一数据表中所有的特殊字段,再将所有的特殊字段进行分类计算确定每一种特征字段的数量,以基于每一种特殊字段的数量构建第一特征矩阵。
在步骤S12中,特殊字段是预先设定的。
在具体实现步骤S12的过程中,针对每一第一数据表,按照预先设置的特殊字段,查找第一数据表中所有的特殊字段,也就是说查找第一数据表中的特殊字段;并利用数据库查找语句对查找到的特殊字段的个数进行求和计算,得到每一特征字段的数量;最后再利用每一特征字段的数量构建第一数据表对应的第一特征矩阵。
需要说明的是,特殊字段是技术人员预先根据经验进行设置的,对比本发明实施例不加以限制。
第一特征矩阵的大小与预先设置的特殊字段的数量有关,比如当预先设置的特殊字段为6个时,第一特征矩阵可为一个2*3大小的矩阵或是一个3*2大小的矩阵。
例如:假设预先设置的特殊字段为a,b,c,f,x,y,第一特征矩阵为一个2*3大小的矩阵。查找第一数据库中的第一数据表t的特殊字段a,b,c,f,x,y得到所有的特殊字段为a,a,a,a,b,b,b,c,c,c,c,c,f,f,x,y,y,y,利用DQL语句select sum(a),sum(b)....sum(y)from table t,对查找到的特殊字段的个数进行求和计算,得到每一特征字段的数量,即a的数量为4,b的数量为3,c的数量为5,f的数量为2,x的数量为1,y的数量为3;最后再利用每一特征字段的数量构建第一数据表对应的第一特征矩阵为
步骤S13:按照预先设置的分隔符将第一数据表导出为第一数据文件,再基于第一数据文件,生成与第一数据表对应的第一MD5特征值。
在具体实现步骤S13的过程中,基于预先设置的分隔符,分别导出每一第一数据表的第一数据文件;根据每一第一数据文件生成,与每一第一数据表对应的128位的散列值。
需要说明的是,预先设置的分隔符是技术人员预先设置的,对比本发明实施例不加以限制,比如可设置为“,”。
步骤S11至步骤S13的执行顺序可以如上所述,也可以同时执行,或是先执行步骤S12,再执行步骤S11,然后再执行步骤S13。对此本申请不加以限制。
在本发明实施例中,通过数据库查询语句查询每一第一数据表的第一数据条数;并根据每一第一数据表的特殊字段,构建与第一数据表对应的第一特征矩阵;根据每一第一数据表对应的第一数据文件,生成与第一数据表对应的第一MD5值。以便于后续校验第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值,以确定第一数据库中的数据与第二数据库中的数据是否一致。若校验通过时,确定第一数据库中的数据与第二数据库中的数据一致。能够减少迁移前后数据比对的时间,以确保迁移前后数据的一致性。
可选的,基于上述示出的数据校验方法,在执行步骤203对第二数据表进行处理,得到与DQL相关的第二特征矩阵和第二MD5特征值,以及确定第二数据表中的第二数据条数的过程中,包括以下步骤:
步骤S21:基于数据库查询语句查询第二数据表的数据条数,确定与第二数据表对应的第二数据条数。
步骤S22:获取第二数据表中所有的特殊字段,将所有的特殊字段进行分类计算,确定每一种特征字段的数量;基于每一种特殊字段的数量,构建第二特征矩阵。
在步骤S22中,特殊字段是预先设定的。
步骤S23:按照预先设置的分隔符将第二数据表导出为第二数据文件,基于第二数据文件,生成与数据表对应的第二MD5特征值。
需要说明的是,步骤S21至步骤S23的具体实现内容与上述步骤S11至步骤S13的具体实现过程相同,可相互参见,对此本发明不加以限制。
同理,步骤S21至步骤S23的执行顺序也可以如上所述,或同时执行,或是先执行步骤S22,再执行步骤S21,然后再执行步骤S23。对此本申请不加以限制。
在本发明实施例中,通过数据库查询语句查询每一第二数据表的第二数据条数;并根据每一第二数据表的特殊字段,构建与第二数据表对应的第二特征矩阵;根据每一第二数据表对应的第一数据文件,生成与第二数据表对应的第二MD5值。以便于后续校验第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值,以确定第一数据库中的数据与第二数据库中的数据是否一致。若校验通过时,确定第一数据库中的数据与第二数据库中的数据一致。能够减少迁移前后数据比对的时间,以确保迁移前后数据的一致性。
基于上述本发明实施例示出的一种数据校验方法,结合图2,参见图3,本发明还示出了具体实现对第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值进行校验的过程,如图3所示。
步骤S301:获取迁移前第一数据库的第一数据表和迁移后第二数据库中对应第一数据表的第二数据表。
步骤S302:对第一数据表进行处理,得到与DQL相关的第一特征矩阵和第一密码散列函数MD5特征值,以及确定第一数据表中的第一数据条数。
步骤S303:对第二数据表进行处理,得到与DQL相关的第二特征矩阵和第二MD5特征值,以及确定第二数据表中的第二数据条数。
需要说明的是,步骤S301至步骤S303的具体实现过程与上述步骤示出的步骤S201至步骤S203的具体实现过程相同,可相互参见。
步骤S304:判断第一数据表的第一数据条数和对应的第二数据表的第二数据条数是否一致,第一数据表的第一特征矩阵和对应的第二数据表的第二特征矩阵是否一致,若两者中任一一种不一致,则执行步骤S307,若一致,则执行步骤S305。
在具体实现步骤S304的过程中,比对每一第一数据表的第一数据条数和与其相应的第二数据表的第二数据条数是否一致,若任意一个第一数据表的第一数据条数和与其相应的第二数据表的第二数据条数不一致时,直接执行步骤S307,若每一第一数据表的第一数据条数均与其相应的第二数据表的第二数据条数一致,则比对每一第一数据表的第一特征矩阵和与其相应的第二数据表的第二特征矩阵是否一致,若任意一个第一数据表的第一特征矩阵和与其相应的第二数据表的第二特征矩阵不一致时,直接执行步骤S307,若每一第一数据表的第二特征矩阵和与其相应的第二数据表的第二特征矩阵均一致时,说明DQL数据校验通过,此时执行步骤S305。
步骤S305:判断第一数据表的第一MD5特征值和对应的第二数据表的第二MD5特征值是否一致,若一致,则执行步骤S306,若不一致,则执行步骤S307。
在具体实现步骤S305的过程中,比对每一第一数据表的第一MD5特征值和与其相应的第一数据表的第二MD5特征值是否一致,若任意一个第一数据表的第一MD5特征值和与其相应的第二数据表的第二MD5特征值不一致时,则执行步骤S307,若每一第一数据表的第一MD5特征值和与其相应的第二数据表的第二MD5特征值均一致时,则执行步骤S306。
步骤S306:确定第一数据库中的数据与第二数据库中的数据一致。
步骤S307:确定第一数据库中的数据与第二数据库中的数据不一致。
需要说明的是,步骤S306和步骤S307的具体实现过程与上述本发明实施例示出的步骤S204至步骤S205的具体实现过程相同,可相互参见。
在本发明实施例中,不需要人工进行筛查,通过校验第一数据表的第一数据条数与第二数据表的第二数据条数是否一致,第一数据表的第一特征矩阵与第二数据表的第二特征矩阵是否一致,若均一致,则校验第一数据表的第一MD5特征值和第二数据表的第二MD5特征值是否一致,以确定第一数据库中的数据与第二数据库中的数据是否一致。能够减少迁移前后数据比对的时间,以确保迁移前后数据的一致性。
为了更好的理解上述示出的数据校验过程,下面结合图1示出的应用架构进行举例说明,具体内容详见以下过程。
数据校验装置20分别对第一数据库10中的第一数据表101、第一数据表102......第一数据表10N的数据条数进行查询处理,得到与每一第一数据表对应的第一数据条数,具体的,得到第一数据表101总条数,即第一数据表101的第一数据条数,第一数据表102总条数......第一数据表10N总条数。同理的,数据校验装置20分别对第二数据库30中的第二数据表301、第二数据表302......第二数据表30M的数据条数进行查询处理,得到与每一第二数据表对应的第二数据条数处理,具体的,得到第二数据表301总条数,即第二数据表301的第二数据条数,第二数据表302总条数......第二数据表30M总条数,如图4所示。
数据校验装置20将第一数据表101总条数和第二数据表301总条数进行条数比对,将第一数据表102总条数和第二数据表302总条数进行条数比对,直至将第一数据表10N总条数和第二数据表30M总条数进行条数比对。
若第一数据表101总条数和第二数据表301总条数一致,第一数据表102总条数和第二数据表302总条数一致,以此类推,第一数据表10N总条数和第二数据表30M总条数也一致时,按照预先设置的特殊字段,分别查找第一数据库10中的第一数据表101、第一数据表102......第一数据表10N的所有特殊字段,并利用数据库查找语句对每一第一数据表100中查找到的特殊字段的个数进行求和计算,得到每一特征字段的数量;最后再利用每一特征字段的数量构建与第一数据表100对应的第一特征矩阵,具体的,得到第一数据表101的第一特征矩阵,第一数据表102的第一特征矩阵......第一数据表10N的第一特征矩阵。同理,对第二数据表进行处理,得到第二数据表301的第二特征矩阵,第二数据表302的第二特征矩阵.....第二数据表30M的第二特征矩阵。
数据校验装置20将第一数据表101的第一特征矩阵和第二数据表301的第二特征矩阵进行矩阵比对,将第一数据表102的第一特征矩阵和第二数据表302的第二特征矩阵进行矩阵比对,直至将第一数据表10N的第一特征矩阵和第二数据表30M的第二特征矩阵进行矩阵比对。
若第一数据表101的第一特征矩阵和第二数据表301的第二特征矩阵一致,第一数据表102的第一特征矩阵和第二数据表302的第二特征矩阵一致,以此类推,第一数据表10N的第一特征矩阵和第二数据表30M的第二特征矩阵也一致时,基于预先设置的分隔符“,”,分别导出每一第一数据表的第一数据文件,具体的,第一数据表101的第一数据文件、第一数据表102的数据文件......第一数据表10N的第一数据文件,再根据第一数据表101的第一数据文件、第一数据表102的第一数据文件......第一数据表10N的第一数据文件生成,与第一数据表101的第一数据文件对应的第一MD5特征值,第一数据表102的第一数据文件对应的第一MD5特征值......第一数据表10N的第一数据文件对应的第一MD5特征值。同理,对每一第二数据表进行处理,得到与第二数据表301的第二数据文件对应的第二MD5特征值,第二数据表302的第二数据文件对应的第二MD5特征值......第二数据表30N的第二数据文件对应的第二MD5特征值,如图5所示。
数据校验装置20将第一数据表101的第一数据文件对应的第一MD5特征值和第二数据表301的第二数据文件对应的第二MD5特征值进行特征值比对,将第一数据表102的第一数据文件对应的第一MD5特征值和第二数据表302的第二数据文件对应的第二MD5特征值进行特征值比对,直至将第一数据表10N的第一数据文件对应的第一MD5特征值和第二数据表30N的第二数据文件对应的第二MD5特征值进行特征值比对。
若第一数据表101的第一数据文件对应的第一MD5特征值和第二数据表301的第二数据文件对应的第二MD5特征值一致,第一数据表102的第一数据文件对应的第一MD5特征值和第二数据表302的第二数据文件对应的第二MD5特征值一致,以此类推,第一数据表10N的第一数据文件对应的第一MD5特征值和第二数据表30N的第二数据文件对应的第二MD5特征值也一致时,确定第一数据库中的数据与第二数据库中的数据一致。
在本发明实施例中,不需要人工进行筛查,通过校验第一数据表的第一数据条数与第二数据表的第二数据条数是否一致,第一数据表的第一特征矩阵与第二数据表的第二特征矩阵是否一致,若均一致,则校验第一数据表的第一MD5特征值和第二数据表的第二MD5特征值是否一致,以确定第一数据库中的数据与第二数据库中的数据是否一致。能够减少迁移前后数据比对的时间,以确保迁移前后数据的一致性。
与上述本发明实施例公开的一种数据校验方法相对应,本发明实施例还对应公开了一种数据校验装置的结构示意图,如图6所示,该装置包括:
第一获取单元601,用于获取迁移前第一数据库的第一数据表和迁移后第二数据库中对应第一数据表的第二数据表。
第一确定单元602,用于对第一数据表进行处理,得到与DQL相关的第一特征矩阵和第一密码散列函数MD5特征值,以及确定第一数据表中的第一数据条数。
第二确定单元603,用于对第二数据表进行处理,得到与DQL相关的第二特征矩阵和第二MD5特征值,以及确定第二数据表中的第二数据条数。
校验单元604,用于对第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值和第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值进行校验,若校验通过,则执行第三确定单元605。
第三确定单元605,用于确定第一数据库中的数据与第二数据库中的数据一致。
需要说明的是,上述本申请实施例公开的数据校验装置中的各个单元具体的原理和执行过程,与上述本申请实施示出的数据校验方法相同,可参见上述本申请实施例公开的数据校验方法中相应的部分,这里不再进行赘述。
在本发明实施例中,不需要人工进行筛查,通过校验第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值,以确定第一数据库中的数据与第二数据库中的数据是否一致。若校验通过时,确定第一数据库中的数据与第二数据库中的数据一致;若校验不通过时,则说明第一数据库迁移至第二数据库的数据的存在迁移纰漏。能够减少迁移前后数据比对的时间,以确保迁移前后数据的一致性。
可选的,基于上述示出的数据校验装置,对第一数据表进行处理,确定第一数据表中的第一数据条数的第一确定单元602,具体用于:基于数据库查询语句查询第一数据表的数据条数,确定与第一数据表对应的第一数据条数;
相应的,对第二数据表进行处理,确定第二数据表中的第二数据条数的第二确定单元603,具体用于:基于数据库查询语句查询第二数据表的数据条数,确定与第二数据表对应的第二数据条数。
在本发明实施例中,通过数据库查询语句查询每一第一数据表的第一数据条数;同理根据数据库查询语句查询每一第二数据表的第二数据条数,以便于后续校验第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值,以确定第一数据库中的数据与第二数据库中的数据是否一致。若校验通过时,确定第一数据库中的数据与第二数据库中的数据一致。能够减少迁移前后数据比对的时间,以确保迁移前后数据的一致性。
可选的,基于上述示出的数据校验装置,对第一数据表进行处理,得到与DQL相关的第一特征矩阵的第一确定单元,具体用于:获取第一数据表中所有的特殊字段,特殊字段是预先设定的;将所有的特殊字段进行分类计算,确定每一种特征字段的数量;基于每一种特殊字段的数量,构建第一特征矩阵。
相应的,对第二数据表进行处理,得到与DQL相关的第二特征矩阵的第二确定单元,具体用于:获取第二数据表中所有的特殊字段,特殊字段是预先设定的;将所有的特殊字段进行分类计算,确定每一种特征字段的数量;基于每一种特殊字段的数量,构建第二特征矩阵。
在本发明实施例中,根据每一第一数据表的特殊字段,构建与第一数据表对应的第一特征矩阵,同理,根据每一第二数据表的特殊字段,构建与第二数据表对应的第二特征矩阵。以便于后续校验第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值,以确定第一数据库中的数据与第二数据库中的数据是否一致。若校验通过时,确定第一数据库中的数据与第二数据库中的数据一致。能够减少迁移前后数据比对的时间,以确保迁移前后数据的一致性。
可选的,基于上述示出的数据校验装置,对第一数据表进行处理,得到与DQL相关的第一密码散列函数MD5特征值的第一确定单元602,具体用于:按照预先设置的分隔符将第一数据表导出为第一数据文件;基于第一数据文件,生成与第一数据表对应的第一MD5特征值。
相应的,对第二数据表进行处理,得到与DQL相关的第二MD5特征值的第二确定单元603,具体用于:按照预先设置的分隔符将第二数据表导出为第二数据文件;基于第二数据文件,生成与数据表对应的第二MD5特征值。
在本发明实施例中,根据每一第一数据表对应的第一数据文件,生成与第一数据表对应的第一MD5值,同理,根据每一第二数据表对应的第二数据文件,生成与第二数据表对应的第一MD5值。以便于后续校验第一数据表的第一数据条数、第一特征矩阵和第一MD5特征值与第二数据表的第二数据条数、第二特征矩阵和第二MD5特征值,以确定第一数据库中的数据与第二数据库中的数据是否一致。若校验通过时,确定第一数据库中的数据与第二数据库中的数据一致。能够减少迁移前后数据比对的时间,以确保迁移前后数据的一致性。
可选的,基于上述示出的数据校验装置,结合图6,如图7所示,校验单元404包括DQL数据校验模块6041和MD5模块6042。
数据校验模块6041,用于判断第一数据表的第一数据条数和对应的第二数据表的第二数据条数是否一致,第一数据表的第一特征矩阵和对应的第二数据表的第二特征矩阵是否一致;若两者中任一一种不一致,则确定第一数据库中的数据与第二数据库中的数据不一致;若均一致,则执行MD5模块6042。
MD5模块6042,用于判断第一数据表的第一MD5特征值和对应的第二数据表的第二MD5特征值是否一致;若不一致,则确定第一数据库中的数据与第二数据库中的数据不一致;若一致,则执行第三确定单元。
在本发明实施例中,通过校验第一数据表的第一数据条数与第二数据表的第二数据条数是否一致,第一数据表的第一特征矩阵与第二数据表的第二特征矩阵是否一致,若均一致,则校验第一数据表的第一MD5特征值和第二数据表的第二MD5特征值是否一致,以确定第一数据库中的数据与第二数据库中的数据是否一致。能够减少迁移前后数据比对的时间,以确保迁移前后数据的一致性。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 一种数据校验方法、数据发送方法、相关装置及系统
- 一种大数据离线计算数据质量校验方法和装置