《一种数据表同步方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种数据表同步方法及装置.pdf(11页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104182441A43申请公布日20141203CN104182441A21申请号201410070315322申请日20140227G06F17/3020060171申请人无锡天脉聚源传媒科技有限公司地址214000江苏省无锡市新区江苏软件外包产业园射手座A座5楼72发明人杨财智杨井李磊张志家王明五邹美亮吴操54发明名称一种数据表同步方法及装置57摘要本发明公开了一种数据表同步方法及装置。所述方法包括获取所述数据表的上一次同步时间;根据数据表中包含的每条数据的更新时间,查询从所述数据表的上一次同步时间到当前时间之间的数据,对查询到的数据进行同步;当同步完成后,更新所述数据。
2、表的上一次同步时间为当前时间。51INTCL权利要求书1页说明书6页附图3页19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书6页附图3页10申请公布号CN104182441ACN104182441A1/1页21一种数据表同步方法,其特征在于,所述数据表中包含每条数据的更新时间,所述方法包括获取所述数据表的上一次同步时间;根据数据表中包含的每条数据的更新时间,查询从所述数据表的上一次同步时间到当前时间之间的数据,对查询到的数据进行同步;当同步完成后,更新所述数据表的上一次同步时间为当前时间。2根据权利要求1所述的方法,其特征在于,所述数据表中还包括每条数据的序列号;对查询到的。
3、数据进行同步包括根据所述序列号对数据进行排序,根据排序结果对所述数据进行同步。3根据权利要求2所述的方法,其特征在于,根据排序结果对所述数据进行同步包括当查询到的数据个数超过预设的阈值时,根据所述预设的阈值对所述排序后的数据进行分页同步,每页的数据个数不超过所述预设的阈值。4根据权利要求1所述的方法,其特征在于,获取所述数据表的上一次同步时间包括从所述数据表的配置文件中获取所述数据表的上一次同步时间。5根据权利要求14任一项所述的方法,其特征在于,所述方法还包括在同步时,将同步的每条数据写入到同步日志中。6一种数据表同步装置,其特征在于,所述数据表中包含每条数据的更新时间,所述装置包括获取模块。
4、,用于获取所述数据表的上一次同步时间查询模块,用于根据数据表中包含的每条数据的更新时间,查询从所述数据表的上一次同步时间到当前时间之间的数据;同步模块,用于对查询到的数据进行同步;更新模块,用于当同步完成后,更新所述数据表的上一次同步时间为当前时间。7根据权利要求6所述的装置,其特征在于,所述数据表中还包括每条数据的序列号;所述装置还包括排序模块,用于根据所述序列号对数据进行排序;所述同步模块,用于根据排序结果对所述数据进行同步。8根据权利要求7所述的装置,其特征在于,所述同步模块,用于当查询到的数据个数超过预设的阈值时,根据所述预设的阈值对所述排序后的数据进行分页同步,每页的数据个数不超过所。
5、述预设的阈值。9根据权利要求6所述的装置,其特征在于,所述获取模块,用于从所述数据表的配置文件中获取所述数据表的上一次同步时间。10根据权利要求69任一项所述的装置,其特征在于,所述装置还包括日志存储模块,用于在同步时,将同步的每条数据写入到同步日志中。权利要求书CN104182441A1/6页3一种数据表同步方法及装置技术领域0001本发明涉及数据库管理技术领域,尤其涉及一种数据表同步方法及装置。背景技术0002目前,将关系数据表中的数据同步到其它表中,当关系数据表为动态表时,即表中的数据不断的添加,主要采用以下两种方式0003一、采用数据库代理,通过编写程序,定时查询动态表中最新添加的数据。
6、,然后更新数据。0004二、利用触发器实现,在动态表上新建触发器,触发器的实质就是个存储过程,只不过调用的时间是根据所建的动态表发生改变而执行。0005以上两种方式的缺陷在于00061、当数据同步发生错误时,无法自动重新同步,需要运维人员及时的根据日志来进行分析,手工控制数据同步的重新进行;00072、利用触发器,不容易记录下同步时的详细日志。发明内容0008本发明实施例提供一种数据表同步方法及装置,用于实现当同步失败时,不断循环同步,直至同步成功。0009一方面,本发明实施例提供一种数据表同步方法,所述数据表中包含每条数据的更新时间,所述方法包括0010获取所述数据表的上一次同步时间;001。
7、1根据数据表中包含的每条数据的更新时间,查询从所述数据表的上一次同步时间到当前时间之间的数据,对查询到的数据进行同步;0012当同步完成后,更新所述数据表的上一次同步时间为当前时间。0013本发明实施例的一些有益效果可以包括每次仅同步更新时间大于数据表上一次同步时间的数据,无需对所有数据都进行同步。这样,不仅减少了同步数据量及数据同步所花时间,提高了数据同步的效率和准确度,节约了系统资源;并且,无需运维人员手动控制数据同步的重新进行,减少了运维人员工作量,降低了人力成本。0014所述数据表中还包括每条数据的序列号;0015对查询到的数据进行同步包括0016根据所述序列号对数据进行排序,根据排序。
8、结果对所述数据进行同步。0017本发明实施例的一些有益效果可以包括按照一定顺序对数据进行同步,使得同步过程容易追溯和查询,当同步过程中出现错误时,可以很容易定位同步错误的数据,并发现还有哪些数据没有同步。这样,再次同步时,可以从出现错误的数据开始同步,而无需将已同步过的数据再次同步,大大提高了数据同步效率,减少了同步数据量及数据同步所花时间。说明书CN104182441A2/6页40018根据排序结果对所述数据进行同步包括0019当查询到的数据个数超过预设的阈值时,根据所述预设的阈值对所述排序后的数据进行分页同步,每页的数据个数不超过所述预设的阈值。0020本发明实施例的一些有益效果可以包括当。
9、需要同步的数据量很大时,分页同步使得同步过程容易追溯和查询,当同步过程中出现错误时,可以很容易定位同步错误数据所在的页,并发现还有哪些页的数据没有同步。这样,再次同步时,可以从出现错误的页开始同步,而无需将已同步过的页再次同步,大大提高了数据同步效率,减少了同步数据量及数据同步所花时间。0021获取所述数据表的上一次同步时间包括0022从所述数据表的配置文件中获取所述数据表的上一次同步时间。0023所述方法还包括在同步时,将同步的每条数据写入到同步日志中。0024本发明实施例的一些有益效果可以包括便于日后对数据表进行维护分析时使用,提高了数据同步维护的可行性和准确度。0025另一方面,本发明实。
10、施例还提供一种数据表同步装置,所述数据表中包含每条数据的更新时间,所述装置包括0026获取模块,用于获取所述数据表的上一次同步时间0027查询模块,用于根据数据表中包含的每条数据的更新时间,查询从所述数据表的上一次同步时间到当前时间之间的数据;0028同步模块,用于对查询到的数据进行同步;0029更新模块,用于当同步完成后,更新所述数据表的上一次同步时间为当前时间。0030所述数据表中还包括每条数据的序列号;所述装置还包括排序模块,用于根据所述序列号对数据进行排序;所述同步模块,用于根据排序结果对所述数据进行同步。0031所述同步模块,用于当查询到的数据个数超过预设的阈值时,根据所述预设的阈值。
11、对所述排序后的数据进行分页同步,每页的数据个数不超过所述预设的阈值。0032所述获取模块,用于从所述数据表的配置文件中获取所述数据表的上一次同步时间。0033所述装置还包括0034日志存储模块,用于在同步时,将同步的每条数据写入到同步日志中。0035本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。0036下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。附图说明0037附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本。
12、发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中0038图1为本发明实施例中数据表同步方法的示例性流程图;0039图2为本发明实施例中数据表同步方法的另一示例性流程图;0040图3为本发明实施例中数据表同步方法的再一示例性流程图;说明书CN104182441A3/6页50041图4为本发明实施例中数据表同步装置的示例性结构图。具体实施方式0042以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。0043如图1所示,本发明实施例提供一种数据表同步方法,数据表中包含每条数据的更新时间及数据表的上一次同步时间,该方法。
13、包括以下步骤0044步骤S101,获取数据表的上一次同步时间;0045步骤S102,根据数据表中包含的每条数据的更新时间,查询从数据表的上一次同步时间到当前时间之间的数据,对查询到的数据进行同步;0046步骤S103,当同步完成后,更新数据表的上一次同步时间为当前时间。0047例如,在MYSQL中,将源数据表A中的数据同步到目标数据表B中。源数据表A中包含存放每条数据的更新时间的字段,记作UPDATE_TIME;源数据表A的配置文件中存放数据表A的上一次同步时间的字段,记作LAST_UPDATETIME。其中UPDATE_TIME字段可以采用TIMESTAMP数据类型,并且设置默认值为CURR。
14、ENT_TIMESTAMP。0048同步开始时,首先从配置文件中读取LAST_UPDATETIME,用于作为同步的开始时间。0049从源数据表A中按时间范围获取一批数据,时间范围是从LAST_UPDATETIME开始,到当前时间结束。并且记录下当前时间到一个临时变量T中。0050在这一批数据全部同步完成以后,更新LAST_UPDATETIME为临时变量T的值。0051本发明实施例的一些有益效果可以包括每次仅同步更新时间大于数据表上一次同步时间的数据,无需对所有数据都进行同步;而且,当数据同步发生错误时,可以自动不断循环同步,直至同步成功。这样,不仅减少了同步数据量及数据同步所花时间,提高了数据。
15、同步的效率和准确度,节约了系统资源;并且,无需运维人员手动控制数据同步的重新进行,减少了运维人员工作量,降低了人力成本。0052本实施例中,数据表中还包括每条数据的序列号;0053对查询到的数据进行同步包括根据所述序列号对数据进行排序,根据排序结果对所述数据进行同步。0054例如,源数据表A中还包含存放每条数据的序列号的字段,记作ID,该ID字段为自动增长的主键字段。将查询到的数据按照ID的升序或降序进行排序之后,再进行顺序同步。0055或者,本实施例中,还可以根据数据的更新时间对数据进行排序,根据数据更新时间的升序或降序进行同步。0056按照一定顺序对数据进行同步,使得同步过程容易追溯和查询。
16、,当同步过程中出现错误时,可以很容易定位同步错误的数据,并发现还有哪些数据没有同步。这样,再次同步时,可以从出现错误的数据开始同步,而无需将已同步过的数据再次同步,大大提高了数据同步效率,减少了同步数据量及数据同步所花时间。0057本实施例中,根据排序结果对数据进行同步,进一步包括当查询到的数据个数超过预设的阈值时,根据预设的阈值对排序后的数据进行分页同步,每页的数据个数不超过说明书CN104182441A4/6页6所述预设的阈值。0058这是在需要同步的数据量很大时,可以进行分页同步。例如,本次需要同步的源数据表A中的数据ID为1500000,而设定的同步数据个数的阈值为100000,因此,。
17、可以将本次同步的数据分为5页,每页数据ID分别为1100000,100001200000,200001300000,300001400000,400001500000。之后,分别对该5页数据进行同步。0059当需要同步的数据量很大时,分页同步使得同步过程容易追溯和查询,当同步过程中出现错误时,可以很容易定位同步错误数据所在的页,并发现还有哪些页的数据没有同步。这样,再次同步时,可以从出现错误的页开始同步,而无需将已同步过的页再次同步,大大提高了数据同步效率,减少了同步数据量及数据同步所花时间。0060本实施例中,该方法还包括在同步时,将同步的每条数据写入到同步日志中。0061例如,在源数据表A。
18、的同步日志中,记录本次同步的ID为1500000的数据,以便于日后对数据表进行维护分析时使用,这样,提高了数据同步维护的可行性和准确度。0062如图2所示,对本发明实施例的数据表同步方法进行具体说明0063步骤S201,从配置文件中读取LAST_UPDATETIME0064步骤S202,从数据表中获取从LAST_UPDATETIME到当前时间之间的数据;0065步骤S203,将读取到的数据按ID升序排序;0066步骤S204,按顺序同步数据;0067步骤S205,判断同步是否完成,当同步完成时,执行步骤S206,当同步未完成时,返回步骤S204;0068步骤S206,更新LAST_UPDATE。
19、TIME为当前时间。0069本实施例的数据表同步方法,每次仅同步更新时间大于数据表上一次同步时间的数据,无需对所有数据都进行同步;而且,当数据同步发生错误时,可以自动不断循环同步,直至同步成功。这样,不仅减少了同步数据量及数据同步所花时间,提高了数据同步的效率和准确度,节约了系统资源;并且,无需运维人员手动控制数据同步的重新进行,减少了运维人员工作量,降低了人力成本。0070如图3所示,对本发明实施例的数据表同步方法进行具体说明0071步骤S301,从配置文件中读取LAST_UPDATETIME0072步骤S302,从数据表中获取从LAST_UPDATETIME到当前时间之间的数据;0073步。
20、骤S303,将读取到的数据按ID升序排序1200000;0074步骤S304,将数据按照ID的排列顺序划分为2页,第一页数据ID为1100000,第二页数据ID为100001200000;0075步骤S305,同步第一页数据;0076步骤S306,判断第一页数据是否同步完成,如果是,执行步骤步骤S307,如果否,返回步骤步骤S305;0077步骤S307,同步第二页数据;0078步骤S308,判断第二页数据是否同步完成,如果是,执行步骤步骤S309,如果否,返回步骤步骤S307;0079步骤S309,更新LAST_UPDATETIME为当前时间。0080当需要同步的数据量很大时,分页同步使得同。
21、步过程容易追溯和查询,当同步过说明书CN104182441A5/6页7程中出现错误时,可以很容易定位同步错误数据所在的页,并发现还有哪些页的数据没有同步。这样,再次同步时,可以从出现错误的页开始同步,而无需将已同步过的页再次同步,大大提高了数据同步效率,减少了同步数据量及数据同步所花时间。0081如图4所示,本发明实施例还提供一种数据表同步装置40,数据表中包含每条数据的更新时间,该装置40包括0082获取模块41,用于获取所述数据表的上一次同步时间0083查询模块42,用于根据数据表中包含的每条数据的更新时间,查询从所述数据表的上一次同步时间到当前时间之间的数据;0084同步模块43,用于对。
22、查询到的数据进行同步;0085更新模块44,用于当同步完成后,更新所述数据表的上一次同步时间为当前时间。0086本实施例中,数据表中还包括每条数据的序列号;该装置40还包括排序模块45,用于根据所述序列号对数据进行排序;所述同步模块43,用于根据排序结果对所述数据进行同步。0087同步模块43,用于当查询到的数据个数超过预设的阈值时,根据所述预设的阈值对所述排序后的数据进行分页同步,每页的数据个数不超过所述预设的阈值。0088获取模块41,用于从所述数据表的配置文件中获取所述数据表的上一次同步时间。0089该装置30还包括日志存储模块46,用于在同步时,将同步的每条数据写入到同步日志中。009。
23、0本实施例的数据表同步装置,每次仅同步更新时间大于数据表上一次同步时间的数据,无需对所有数据都进行同步;而且,当数据同步发生错误时,可以自动不断循环同步,直至同步成功。这样,不仅减少了同步数据量及数据同步所花时间,提高了数据同步的效率和准确度,节约了系统资源;并且,无需运维人员手动控制数据同步的重新进行,减少了运维人员工作量,降低了人力成本。0091本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括。
24、但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。0092本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和或方框图来描述的。应理解可由计算机程序指令实现流程图和或方框图中的每一流程和或方框、以及流程图和或方框图中的流程和或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和或方框图一个方框或多个方框中指定的功能的装置。0093这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备。
25、以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和或方框图一个方框或说明书CN104182441A6/6页8多个方框中指定的功能。0094这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和或方框图一个方框或多个方框中指定的功能的步骤。0095显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。说明书CN104182441A1/3页9图1说明书附图CN104182441A2/3页10图2图3说明书附图CN104182441A103/3页11图4说明书附图CN104182441A11。