一种数据一致性比对系统技术方案

技术编号:34698447 阅读:3 留言:0更新日期:2022-08-27 16:34
本发明专利技术公开的属于数据对比技术领域,具体为一种数据一致性比对系统,先配置要进行数据库比对的数据源,用于比对不同类型的数据库;再比对源端与目的端的数据的2张表,进行总行数计算;再比对源端与目的端数据的2张表,进行哈希计算,哈希计算是使用JAVA内置函数hashCode(),将表中每行的数据取出,并将所用列的字符拼接,通过hashCode()为每行数据生成唯一的哈希值,本发明专利技术的有益效果是:数据比对期间,不需要停止应用对数据变更,不影响业务的运行;自定义数据比对的粒度,按用户,按多表,按列进行数据比对;数据比对结果可视化,生成的对比报告可知道表中哪些数据不一致;对存在差异的数据库,可通过页面手工对不一致的行数据库进行同步。数据库进行同步。数据库进行同步。

【技术实现步骤摘要】
一种数据一致性比对系统


[0001]本专利技术涉及数据对比
,具体为一种数据一致性比对系统。

技术介绍

[0002]目前企业内部使用多个厂商的数据库,有商用的,开源的等。因业务发展需要,需同步各个数据库之间的数据,随着数据量的增长,使得数据比对、校验的工作变得越来越困难,同时复制两端数据不一致而又很难及时发现,这些不一致既影响业务系统运行,又影响数据备份、恢复等连锁问题。

技术实现思路

[0003]鉴于现有一种数据一致性比对系统中存在的问题,提出了本专利技术。
[0004]因此,本专利技术的目的是提供一种数据一致性比对系统,解决了目前企业内部使用多个厂商的数据库,有商用的,开源的等。因业务发展需要,需同步各个数据库之间的数据。随着数据量的增长,使得数据比对、校验的工作变得越来越困难。同时复制两端数据不一致而又很难及时发现,这些不一致既影响业务系统运行,又影响数据备份、恢复等连锁问题的问题。
[0005]为解决上述技术问题,根据本专利技术的一个方面,本专利技术提供了如下技术方案:
[0006]一种数据一致性比对系统,先配置要进行数据库比对的数据源,用于比对不同类型的数据库;再比对源端与目的端的数据的2张表,进行总行数计算;
[0007]再比对源端与目的端数据的2张表,进行哈希计算,哈希计算是使用JAVA内置函数hashCode(),将表中每行的数据取出,并将所用列的字符拼接,通过hashCode()为每行数据生成唯一的哈希值,生成的哈希值临时存放在指定的服务器上;<br/>[0008]再对于存在差异的数据,在比对报告展现数据的差异,唯一的哈希值的结果集存放在特定的服务器上,2张表的哈希结果集用nest loop的方式逐行进行对比,如果目的端的哈希值在源表中不存在,则对此行数据标记为不一致;
[0009]最后对于差异数据生成用于同步用途的更新SQL,并在页面快速完成差异化数据的同步,如数据一致,将源端的行数据取出,在程序将行中的所有数据取出,拼接为一条insert插入语句,先将目的端数据有差异的行删除,然后在目的端运行这条insert插入语句。
[0010]作为本专利技术所述的一种数据一致性比对系统的一种优选方案,其中:nest loop在进行比对前,需要先建立测试表,再进行测试。
[0011]作为本专利技术所述的一种数据一致性比对系统的一种优选方案,其中:在进行比对源端与目的端的数据的2张表,进行总行数计算前,先进行数据行数对比:用于对比数据的两个表的行数据是否一致。
[0012]作为本专利技术所述的一种数据一致性比对系统的一种优选方案,其中:所述比对源端与目的端数据的2张表并进行哈希计算前,需要先进行哈希值对比:对将要进行对比数据
的表数据进行排序,然后每一行数据生成哈希值,2个表的哈希值进行逐一对比。
[0013]作为本专利技术所述的一种数据一致性比对系统的一种优选方案,其中:还包括:数据检验结果功能:数据库校验后,将2个表之间不一致的数据进行展现,生成比对报告,可按要求对不同步的行进行同步。
[0014]作为本专利技术所述的一种数据一致性比对系统的一种优选方案,其中:还包括:数据比对功能设置:通过对数据库用户,表,字段进行比对设置。
[0015]作为本专利技术所述的一种数据一致性比对系统的一种优选方案,其中:生成的哈希值临时存放在指定的服务器上的作用是用于后期做数据差异性对比。
[0016]作为本专利技术所述的一种数据一致性比对系统的一种优选方案,其中:在目的端运行这条insert插入语句,达到数据手工同步的目的。
[0017]与现有技术相比:
[0018]1、数据比对期间,不需要停止应用对数据变更,不影响业务的运行;自定义数据比对的粒度,按用户,按多表,按列进行数据比对;
[0019]2、数据比对结果可视化,生成的对比报告可知道表中哪些数据不一致;对存在差异的数据库,可通过页面手工对不一致的行数据库进行同步;
[0020]3、解决了目前企业内部使用多个厂商的数据库,有商用的,开源的等。因业务发展需要,需同步各个数据库之间的数据,随着数据量的增长,使得数据比对、校验的工作变得越来越困难;同时复制两端数据不一致而又很难及时发现,这些不一致既影响业务系统运行,又影响数据备份、恢复等连锁问题;
[0021]4、配置要进行数据库比对的数据源,用于比对不同类型的数据库,比对源端与目的端的数据的2张表,进行总行数计算,要比对源端与目的端数据的2张表,进行哈希计算,哈希计算是使用JAVA内置函数hashCode(),将表中每行的数据取出,并将所用列的字符拼接,通过hashCode()为每行数据生成唯一的哈希值,生成的哈希值临时存放在指定的服务器上,用于后期做数据差异性对比,对于存在差异的数据,在比对报告展现数据的差异。唯一的哈希值的结果集存放在特定的服务器上,2张表的哈希结果集用nest loop的方式逐行进行对比,如果目的端的哈希值在源表中不存在,则对此行数据标记为不一致,对于差异数据生成用于同步用途的更新SQL,并在页面快速完成差异化数据的同步,如数据一致,将源端的行数据取出,在程序将行中的所有数据取出,拼接为一条insert插入语句,先将目的端数据有差异的行删除,然后在目的端运行这条insert插入语句,达到数据手工同步的目的。
附图说明
[0022]图1为本专利技术提供的hash函数的原理图。
具体实施方式
[0023]为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的实施方式做进一步的详细描述。
[0024]本专利技术提供一种数据一致性比对系统,请参阅图1,先配置要进行数据库比对的数据源,用于比对不同类型的数据库;再比对源端与目的端的数据的2张表,进行总行数计算;
[0025]再比对源端与目的端数据的2张表,进行哈希计算,哈希计算是使用JAVA内置函数
hashCode(),将表中每行的数据取出,并将所用列的字符拼接,通过hashCode()为每行数据生成唯一的哈希值,生成的哈希值临时存放在指定的服务器上;
[0026]再对于存在差异的数据,在比对报告展现数据的差异,唯一的哈希值的结果集存放在特定的服务器上,2张表的哈希结果集用nest loop的方式逐行进行对比,如果目的端的哈希值在源表中不存在,则对此行数据标记为不一致;
[0027]最后对于差异数据生成用于同步用途的更新SQL,并在页面快速完成差异化数据的同步,如数据一致,将源端的行数据取出,在程序将行中的所有数据取出,拼接为一条insert插入语句,先将目的端数据有差异的行删除,然后在目的端运行这条insert插入语句。
[0028]nest loop在进行比对前,需要先建立测试表,再进行测试;
[0029]建立测试表
[0030][0031][0032][0033]2.进行测试
[0034][0035][0036][0037]在进行比对源端与目的端的数据的2张表,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据一致性比对系统,其特征在于:先配置要进行数据库比对的数据源,用于比对不同类型的数据库;再比对源端与目的端的数据的2张表,进行总行数计算;再比对源端与目的端数据的2张表,进行哈希计算,哈希计算是使用JAVA内置函数hashCode(),将表中每行的数据取出,并将所用列的字符拼接,通过hashCode()为每行数据生成唯一的哈希值,生成的哈希值临时存放在指定的服务器上;再对于存在差异的数据,在比对报告展现数据的差异,唯一的哈希值的结果集存放在特定的服务器上,2张表的哈希结果集用nestloop的方式逐行进行对比,如果目的端的哈希值在源表中不存在,则对此行数据标记为不一致;最后对于差异数据生成用于同步用途的更新SQL,并在页面快速完成差异化数据的同步,如数据一致,将源端的行数据取出,在程序将行中的所有数据取出,拼接为一条insert插入语句,先将目的端数据有差异的行删除,然后在目的端运行这条insert插入语句。2.根据权利要求1所述的一种数据一致性比对系统,其特征在于,nest loop在进行比对前,需要先建立测试表,再进行测试。3.根...

【专利技术属性】
技术研发人员:黄志春张定国李韧卢小锋丁杰
申请(专利权)人:广州伟宏智能科技有限公司
类型:发明
国别省市:

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

1