一种面向异构数据源的数据一致性校验方法及装置制造方法及图纸

技术编号:37641073 阅读:9 留言:0更新日期:2023-05-25 10:08
本发明专利技术提供一种面向异构数据源的数据一致性校验方法及装置,方法包括:从源端数据库获取源数据库表中待校验的第一数据,从目标端数据库获取目标数据库表中待校验的第二数据,分别计算所第一数据的第一行数和第一校验和,以及第二数据的第二行数和第二校验和;将第一行数与第二行数进行比对,并将第一校验和与第二校验和进行比对,以得到比对结果;根据比对结果,确定第一数据和第二数据是否通过一致性校验。由此,通过对源数据库表和目标数据库表中的第一数据和第二数据的行数及校验和这两个参数分别进行比对,可进一步提高数据一致性校验的准确性,从而保障在数据迁徙或数据同步后,源端和目标端的数据的一致性。源端和目标端的数据的一致性。源端和目标端的数据的一致性。

【技术实现步骤摘要】
一种面向异构数据源的数据一致性校验方法及装置


[0001]本专利技术实施例涉及数据库
,尤其涉及一种面向异构数据源的数据一致性校验方法及装置。

技术介绍

[0002]数据一致性校验是任何涉及到数据同步或者迁移工具的必备功能。数据一致性校验可分为同构数据源的一致性校验和异构数据源的一致性校验。同构数据源由于上下游表结构和SQL的语法规则基本相同,因此可使用业界的开源工具来进行数据一致性校验,如MySQL

>MySQL校验工具pt

table

checksums,MySQL

>TiDB校验工具sync_diff_inspector。异构数据源由于上下游表结构和SQL语法规则等不同,如:在对TiDB

>ClickHouse数据同步做一致性校验时,无法使用上述的校验工具。例如:若使用PingCAP的sync

diff

inspector进行异构数据源的一致性校验,会直接因表结构不一致而退出,无法进行数据层面的校验。
[0003]因此,在对异构数据源进行数据一致性校验时,现有技术中还缺乏可独立使用的校验工具。如何对异构数据源进行数据层面的校验,成为亟待解决的技术问题。

技术实现思路

[0004]本专利技术实施例提供一种面向异构数据源的数据一致性校验方法及装置,以解决相关技术中,sync_diff_inspector等校验工具无法对异构数据源进行数据层面的校验的问题。
[0005]第一方面,本专利技术实施例提供了一种面向异构数据源的数据一致性校验方法,所述方法包括:从源端数据库获取源数据库表中待校验的第一数据,从目标端数据库获取目标数据库表中待校验的第二数据,其中,所述第一数据和所述第二数据具备对应关系;分别计算所第一数据的第一行数和第一校验和,以及所述第二数据的第二行数和第二校验和;将所述第一行数与所述第二行数进行比对,并将所述第一校验和与所述第二校验和进行比对,以得到比对结果;根据所述比对结果,确定所述第一数据和所述第二数据是否通过一致性校验。
[0006]优选地,根据所述比对结果,确定所述第一数据和所述第二数据是否通过一致性校验包括:若所述比对结果为:所述第一行数与所述第二行数一致,且所述第一校验和与所述第二校验和一致,则确定所述第一数据和所述第二数据通过一致性校验;若所述第一行数与所述第二行数不一致,且所述第一校验和与所述第二校验和不一致,则确定所述第一数据和所述第二数据未通过一致性校验;若所述第一行数与所述第二行数不一致,且所述第一校验和与所述第二校验和一
致,则确定所述第一数据和所述第二数据未通过一致性校验;若所述第一行数与所述第二行数一致,且所述第一校验和与所述第二校验和不一致,则确定所述第一数据和所述第二数据未通过一致性校验。
[0007]优选地,在将所述第一行数与所述第二行数进行比对,并将所述第一校验和与所述第二校验和进行比对,以得到比对结果之后,所述方法还包括:根据所述比对结果,生成校验报告;其中,所述校验报告包括以下至少一项:所述比对结果、所述源数据库表的参数、所述目标数据库表的参数、所述第一行数、所述第二行数。
[0008]优选地,从源端数据库获取源数据库表中待校验的第一数据,从目标端数据库获取目标数据库表中待校验的第二数据之前,所述方法还包括:确定校验模式,其中,所述校验模式包括以下至少一项:全量校验模式、全量数据抽样校验模式、最新数据抽样校验模式;根据所述校验模式,确定所述第一数据和所述第二数据。
[0009]优选地,根据所述校验模式,确定所述第一数据和所述第二数据包括:在所述校验模式为全量校验模式时,确定所述第一数据为所述源数据库表的全量数据,确定所述第二数据为所述目标数据库表的全量数据;在所述校验模式为全量数据抽样校验模式时,确定所述第一数据为针对于所述源数据库表的全量数据的随机抽样数据,确定所述第二数据为针对于所述目标数据库表的全量数据的随机抽样数据;在所述校验模式为最新数据抽样校验模式时,确定所述第一数据为针对于所述源数据库表的最新数据的随机抽样数据,确定所述第二数据为针对于所述目标数据库表的最新数据的随机抽样数据。
[0010]优选地,从源端数据库获取源数据库表中待校验的第一数据,从目标端数据库获取目标数据库表中待校验的第二数据包括:利用SELECT语句分别查询所述源数据库表的全量数据和所述目标数据库表的全量数据的主键的最大值和最小值;以所述源数据库表的全量数据的主键的最大值和最小值为端点,构造第一主键区间,并以所述目标数据库表的全量数据的主键的最大值和最小值为端点,构造第二主键区间;对所述第一主键区间和所述第二主键区间分别进行分段处理,基于分段后的第一主键区间,获取所述第一数据;基于分段后的第二主键区间,获取所述第二数据。
[0011]优选地,在所述校验模式为全量校验模式时,对所述第一主键区间和所述第二主键区间分别进行分段处理,基于分段后的第一主键区间,获取所述第一数据;基于分段后的第二主键区间,获取所述第二数据包括:以预设分段长度值,从所述第一主键区间和所述第二主键区间中,分别确定第一预设数量的区间段,其中,每一区间段的长度均相等;将从所述第一主键区间中确定的第一预设数量的区间段作为第一数据;将从所述第二主键区间中确定的第一预设数量的区间段作为第二数据;分别计算所述第一数据的第一行数和第一校验和,以及所述第二数据的第二行数
和第二校验和包括:分别计算所述第一主键区间中,每一区间段的数据的第一行数和第一校验和;以及所述第二主键区间中,每一区间段的数据的第二行数和第二校验和。
[0012]优选地,在所述校验模式为全量数据抽样校验模式时,对所述第一主键区间和所述第二主键区间分别进行分段处理,基于分段后的第一主键区间,获取所述第一数据;基于分段后的第二主键区间,获取所述第二数据包括:以预设分段长度值和预设抽样率,从所述第一主键区间和所述第二主键区间中,分别抽样选取第二预设数量的区间段;将从所述第一主键区间中抽样选取的第二预设数量的区间段作为第一数据;将从所述第二主键区间中抽样选取的第二预设数量的区间段作为第二数据;分别计算所述源数据库表中的数据的第一行数和第一校验和,以及所述目标数据库表中的数据第二行数和第二校验和包括:分别计算所述第一主键区间中,每一区间段的数据的第一行数和第一校验和;以及所述第二主键区间中,每一区间段的数据的第二行数和第二校验和。
[0013]优选地,在所述校验模式为最新数据抽样校验模式时,对所述第一主键区间和所述第二主键区间分别进行分段处理,基于分段后的第一主键区间,获取所述第一数据;基于分段后的第二主键区间,获取所述第二数据包括:以预设分段长度值和预设抽样率,从所述源数据库表的最新数据和所述目标数据库表的最新数据中,分别抽样选取第三预设数量的区间段;将从所述源数据库表的最新数据中抽样选取的第三预设数量的区间段作为第一数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向异构数据源的数据一致性校验方法,其特征在于,所述方法包括:从源端数据库获取源数据库表中待校验的第一数据,从目标端数据库获取目标数据库表中待校验的第二数据,其中,所述第一数据和所述第二数据具备对应关系;分别计算所第一数据的第一行数和第一校验和,以及所述第二数据的第二行数和第二校验和;将所述第一行数与所述第二行数进行比对,并将所述第一校验和与所述第二校验和进行比对,以得到比对结果;根据所述比对结果,确定所述第一数据和所述第二数据是否通过一致性校验。2.根据权利要求1所述的方法,其特征在于,根据所述比对结果,确定所述第一数据和所述第二数据是否通过一致性校验包括:若所述比对结果为:所述第一行数与所述第二行数一致,且所述第一校验和与所述第二校验和一致,则确定所述第一数据和所述第二数据通过一致性校验;若所述第一行数与所述第二行数不一致,且所述第一校验和与所述第二校验和不一致,则确定所述第一数据和所述第二数据未通过一致性校验;若所述第一行数与所述第二行数不一致,且所述第一校验和与所述第二校验和一致,则确定所述第一数据和所述第二数据未通过一致性校验;若所述第一行数与所述第二行数一致,且所述第一校验和与所述第二校验和不一致,则确定所述第一数据和所述第二数据未通过一致性校验。3.根据权利要求1所述的方法,其特征在于,在将所述第一行数与所述第二行数进行比对,并将所述第一校验和与所述第二校验和进行比对,以得到比对结果之后,所述方法还包括:根据所述比对结果,生成校验报告;其中,所述校验报告包括以下至少一项:所述比对结果、所述源数据库表的参数、所述目标数据库表的参数、所述第一行数、所述第二行数。4.根据权利要求1所述的方法,其特征在于,从源端数据库获取源数据库表中待校验的第一数据,从目标端数据库获取目标数据库表中待校验的第二数据之前,所述方法还包括:确定校验模式,其中,所述校验模式包括以下至少一项:全量校验模式、全量数据抽样校验模式、最新数据抽样校验模式;根据所述校验模式,确定所述第一数据和所述第二数据。5.根据权利要求4所述的方法,其特征在于,根据所述校验模式,确定所述第一数据和所述第二数据,包括:在所述校验模式为全量校验模式时,确定所述第一数据为所述源数据库表的全量数据,确定所述第二数据为所述目标数据库表的全量数据;在所述校验模式为全量数据抽样校验模式时,确定所述第一数据为针对于所述源数据库表的全量数据的随机抽样数据,确定所述第二数据为针对于所述目标数据库表的全量数据的随机抽样数据;在所述校验模式为最新数据抽样校验模式时,确定所述第一数据为针对于所述源数据库表的最新数据的随机抽样数据,确定所述第二数据为针对于所述目标数据库表的最新数据的随机抽样数据。6.根据权利要求5所述的方法,其特征在于,从源端数据库获取源数据库表中待校验的
第一数据,从目标端数据库获取目标数据库表中待校验的第二数据包括:利用SELECT语句分别查询所述源数据库表的全量数据和所述目标数据库表的全量数据的主键的最大值和最小值;以所述源数据库表的全量数据的主键的最大值和最小值为端点,构造第一主键区间,并以所述目标数据库表的全量数据的主键的最大值和最小值为端点,构造第二主键区间;对所述第一主键区间和所述第二主键区间分别进行分段处理,基于分段后的第一主键区间,获取所述第一数据;基于分段后的第二主键区间,获取所述第二数据。7.根据权利要求6所述的方法,其特征在于,在所述校验模式为全量校验模式时,对所述第一主键区间和所述第二主键区间分别进行分段处理,基于分段后的第一主键区间,获取所述第一数据;基于分段后的第二主键区间,获取所述第二数据包括:以预设分段长度值,从所述第一主键区间和所述第二主键区间中,分别确定第一预设数量的区间段,其中,每一区间段的长度均相等;将从所述第一主键区间中确定的第一预设数量的区间段作为第一数据;将从所述第二主键区间中确定的第一预设数量的区间段作为第二数据;分别计算所述第一数据的第一行数和第一校验和,以及所述第二数据的第二行数和第二校验和包括:分别计算所述第一主键区间中,每一区间段的数据的第一行数和第一校验和;以及所述第二主键区间中,每一区间段的数据的第二行数和第二校验和。8.根据权利要求6所述的方法,其特征在于,在所述校验模式为全量数据抽样校验模式时,对所述第一主键...

【专利技术属性】
技术研发人员:孙浩李筱沛
申请(专利权)人:云账户技术天津有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1