[发明专利]一种数据库表比对方法及装置在审
申请号: | 202110845737.3 | 申请日: | 2021-07-26 |
公开(公告)号: | CN113590621A | 公开(公告)日: | 2021-11-02 |
发明(设计)人: | 孙鸿亮;高志会;陈勇铨;胡军擎 | 申请(专利权)人: | 上海英方软件股份有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455;G06F16/27;G06F9/48 |
代理公司: | 上海国智知识产权代理事务所(普通合伙) 31274 | 代理人: | 潘建玲 |
地址: | 200011 上海市黄*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 方法 装置 | ||
1.一种数据库表比对方法,包括如下步骤:
步骤S1,分别对源端和目标端的数据库表的数据进行任务拆分,将数据库表分成若干分片,并记录源端和目标端的任务分片数量;
步骤S2,分别利用若干导出线程从源端和目标端的数据库表中按分片抽取数据记录,并分别实时记录双方导出记录的总数,根据双方导出记录的总数出导出速度快的一方,并计算双方导出记录数量总和的差值,当双方导出记录数量总和的差值达到门限值时,令导出速度快的一方暂时休眠预设时间再执行导出线程;
步骤S3,执行对比线程对导入内存中的数据进行源端与目标端的数据库表数据比对。
2.如权利要求1所述的一种数据库表比对方法,其特征在于:所述门限值的初始值在数据库表对比开始之前根据抽取线程数量、抽取速度、内存中可存放的记录总数进行计算并配置。
3.如权利要求2所述的一种数据库表比对方法,其特征在于:所述门限值在b*v2*t到50万之间取值,其中,b为慢的一方的导出线程个数,v2为慢的一方平均每个线程的导出速度,t为快的一方的线程每次休眠时间。
4.如权利要求2所述的一种数据库表比对方法,其特征在于:于步骤S2中,在各导出线程导出数据记录的过程中,分别统计源端与目标端导出时的各自休眠次数,根据源端与目标端的休眠次数调节门限值。
5.如权利要求4所述的一种数据库表比对方法,其特征在于:如果记录的源端与目标端的休眠次数都不为0,则调大所述门限值,并返回步骤S1或将本次表对比执行完毕后再返回步骤S1。
6.如权利要求2所述的一种数据库表比对方法,其特征在于:当源端和目标端中有一方的记录导出完毕,则剩余的一方不再进行双方导出记录数量总和的差值与门限值的判断,也不再休眠。
7.如权利要求6所述的一种数据库表比对方法,其特征在于:在源端与目标端各导出线程执行各自任务分片导出时,每当一个任务分片导出完毕,则使相应端的任务分片数量减一,若某方的任务分片数量减为0,则判断该端的整个数据库表导出完毕。
8.如权利要求1所述的一种数据库表比对方法,其特征在于:于步骤S3中,当源端与目标端导出到内存的数据数量到达预设阈值时,执行对比线程对导入内存中的源端和目标端的数据进行对比消重,若经对比消重后内存的数据仍超过限制,将内存中的数据存入磁盘。
9.如权利要求8所述的一种数据库表比对方法,其特征在于:当源端与目标端的数据记录均导出完毕,将存入磁盘的数据导入内存,执行对比线程对内存的数据进行对比。
10.一种数据库表比对装置,包括:
任务拆分模组,用于分别利用第一任务拆分单元、第二任务拆分单元分别对源端和目标端的数据库表的数据进行任务拆分,将数据库表分成若干分片,并记录源端和目标端的任务分片数量;
导出模组,包括源端导出模组及目标端导出模组,分别利用若干导出线程从源端和目标端的数据库表中按分片抽取数据记录,并分别实时记录双方导出记录的总数,根据双方导出记录的总数判断己方的导出速度是否比对方快,当己方的导出速度比对方快且己方导出记录数量总和与对方的导出记录数量总和的差值达到门限值,则让己方导出线程暂时休眠预设时间再进行导出;
对比模组,用于执行对比线程对导入内存中的数据进行源端与目标端的数据库表数据比对。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海英方软件股份有限公司,未经上海英方软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110845737.3/1.html,转载请声明来源钻瓜专利网。