基于增量字段的数据库同步方法及同步装置与流程

文档序号:28624424发布日期:2022-01-22 13:50阅读:209来源:国知局
基于增量字段的数据库同步方法及同步装置与流程

1.本发明涉及数据库技术领域,尤其涉及一种基于增量字段的数据库同步方法及同步装置。


背景技术:

2.当前数据库同步中的数据初始化工作需要人为手动执行,使用数据库的备份工具将数据从源数据库导出成备份文件,然后再到目标数据库手动导入,接着进行增量同步,同样需要人为手动开启增量同步工具。整个过程中,需要大量的人为工作量,不断监控备份文件的导出以及导入的过程,较为繁琐,同时,针对一些大型数据库,一次初始化过程通常要持续3-4天,更有甚者持续长达数周,然而这期间的数据库事务日志可能因时间过长而被清理,从而导致增量同步工具无法正常工作。
3.相关技术中,采用日期时间戳等技术手段来采集或源表中的增量数据,该方式只能针对日期时间类型的数据进行增量提取,而且,当同步分为多次时,无法有效衔接至上次更新的内容。


技术实现要素:

4.本发明要解决的技术问题是如何提高数据库的同步的自动化和灵活性,本发明提出一种基于增量字段的数据库同步方法及同步装置。
5.根据本发明实施例的基于增量字段的数据库同步方法,包括:从源表中选取预设数据字段作为增量字段,设置第一端点值和第二端点值,其中,所述增量字段具有递增关系,所述第一端点值小于所述第二端点值;从所述增量字段筛选出处于第一端点和第二端点间的数据作为增量数据,并将所述增量数据同步到目标表中。
6.根据本发明的一些实施例,所述同步方法还包括:设置预设周期,按照所述预设周期自动从所述源表中获取所述增量数据。
7.在本发明的一些实施例中,在当前周期中未完成所述增量数据的全部同步时,停止启动下一所述预设周期的启动,并继续完成当前周期所述增量数据的同步工作。
8.根据本发明的一些实施例,接收数据同步启动配置时间,在达到所述数据同步启动配置时间时,自动从所述源表中获取所述增量数据。
9.在本发明的一些实施例中,所述增量字段的数据类型为数值型、时间日期类型和时间戳类型。
10.根据本发明实施例的基于增量字段的数据库同步装置,包括:配置模块,用于从源表中选取预设数据字段作为增量字段,设置第一端点值和第二端点值,其中,所述增量字段具有递增关系,所述第一端点值小于所述第二端点值;增量同步模块,用于从述增量字段筛选出处于第一端点和第二端点间的数据作为增量数据,并将所述增量数据同步到目标表中。
11.根据本发明的一些实施例,所述配置模块还用于设置预设周期,按照所述预设周期自动从所述源表中获取所述增量数据。
12.在本发明的一些实施例中,所述同步装置还包括:调度模块,用于在当前周期中未完成所述增量数据的全部同步时,停止启动下一所述预设周期的启动,并继续完成当前周期所述增量数据的同步工作。
13.根据本发明的一些实施例,所述配置模块还用于设置数据同步启动配置时间,在达到所述数据同步启动配置时间时,自动从所述源表中获取所述增量数据。
14.在本发明的一些实施例中,所述增量字段的数据类型为数值型、时间日期类型和时间戳类型。
15.本发明提出的基于增量字段的数据库同步方法及同步装置100具有如下优点:用户可通过可视化配置,指定增量字段以及初始值,支持数值型、时间日期型及时间戳类型。通过增量字段和初始值,自动构造出数据初始化脚本以及增量脚本,配置周期任务实现增量数据采集。相较于现有增量采集方法存在需要配置其他组件、实现复杂、出错率高、维护成本高的问题,本发明方案实现简易、易操作、易使用、可普及性强。
附图说明
16.图1为根据本发明实施例的基于增量字段的数据库同步方法流程图;图2为根据本发明实施例的基于增量字段的数据库同步方法局部流程图;图3为根据本发明实施例的基于增量字段的数据库同步装置的组成示意图。
17.附图标记:同步装置100,配置模块10,增量同步模块20,调度模块30。
具体实施方式
18.为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
19.本发明中说明书中对方法流程的描述及本发明说明书附图中流程图的步骤并非必须按步骤标号严格执行,方法步骤是可以改变执行顺序的。而且,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
20.如图1所示,根据本发明实施例的基于增量字段的数据库同步方法,包括:s100,从源表中选取预设数据字段作为增量字段,设置第一端点值和第二端点值,其中,增量字段具有递增关系,第一端点值小于第二端点值;例如,可以设置一个初始值作为第一端点值,或者,在不对第一初始值进行设置的情况下,数值型增量字段可以以0作为第一端点值,日期类型增量字段可以以当前时刻日期作为第一端点值,时间戳类型增量字段可以以当前时刻时间戳作为第一端点值。第二端点值默认取值可以为用户设定的同步任务的运行时刻,用户也可以设置一个延迟时间,那么实际的任务运行时刻应当为:设定的运行时刻+延迟时间。
21.例如,当需要分阶段进行数据同步时,可以根据待同步的数据范围将同步操作分为多个阶段,其中,为每个阶段设置用于终止的第二端点值。需要说明的是,当分阶段进行
数据同步时,下一阶段的第一端点值可以是程序自动记录的上次同步完成的第二端点值,以实现不同阶段数据同步时的良好衔接。
22.s200,从增量字段筛选出处于第一端点和第二端点间的数据作为增量数据,并将增量数据同步到目标表中。
23.根据本发明的一些实施例,同步方法还包括:设置预设周期,按照预设周期自动从源表中获取增量数据。
24.例如,本发明可以设置自动同步时刻,例如,可以设定每日的00:00时刻自动启动数据库的同步操作。当到达每日的00:00时刻时,自动根据第一端点值和第二端点值从数据库中采集出待同步的增量数据。可以理解的是,上述时刻仅是举例说明,本技术中可以根据用户需要设置任意时刻。
25.在本发明的一些实施例中,在当前周期中未完成增量数据的全部同步时,停止启动下一预设周期的启动,并继续完成当前周期增量数据的同步工作。
26.如上述示例中,若到达下一个00:00时刻时,未完成上一天的数据同步时,可以停止启动新的数据同步操作,并继续完成上一天的数据同步工作。
27.根据本发明的一些实施例,接收数据同步启动配置时间,在达到数据同步启动配置时间时,自动从源表中获取增量数据。
28.也就是说,用户可以自行设置自动同步的启动时间,如上述示例中,用户可以在原先设定的同步数据操作时间(如00:00时刻)的基础上,额外设置一个延期启动时间(如5分钟),那么该任务实际启动时间为00:05时刻,由此,可以避免每次均是在00:00时刻进行数据同步,可能导致00:00时刻附近产生的增量数据丢失,遗漏同步的问题。
29.在本发明的一些实施例中,增量字段的数据类型为数值型、时间日期类型和时间戳类型。需要说明的是,本发明提出的基于增量数据的数据库同步方法,可以实现对数据库中任一具有递增属性的数据类型的增量获取和同步更新。
30.根据本发明实施例的基于增量字段的数据库同步装置100,包括:配置模块10和增量同步模块20。
31.配置模块10用于从源表中选取预设数据字段作为增量字段,设置第一端点值和第二端点值,其中,增量字段具有递增关系,第一端点值小于第二端点值;例如,可以通过配置模块10设置一个初始值作为第一端点值,或者,在不对第一初始值进行设置的情况下,数值型增量字段可以以0作为第一端点值,日期类型增量字段可以以当前时刻日期作为第一端点值,时间戳类型增量字段可以以当前时刻时间戳作为第一端点值。第二端点值默认取值可以为用户设定的同步任务的运行时刻,用户也可以设置一个延迟时间,那么实际的任务运行时刻应当为:设定的运行时刻+延迟时间。
32.例如,当需要分阶段进行数据同步时,可以根据待同步的数据范围将同步操作分为多个阶段,其中,为每个阶段设置用于终止的第二端点值。需要说明的是,当分阶段进行数据同步时,下一阶段的第一端点值可以是程序自动记录的上次同步完成的第二端点值,以实现不同阶段数据同步时的良好衔接。
33.增量同步模块20用于从增量字段筛选出处于第一端点和第二端点间的数据作为增量数据,并将增量数据同步到目标表中。
34.根据本发明的一些实施例,配置模块10还用于设置预设周期,按照预设周期自动
从源表中获取增量数据。
35.例如,可以通过配置模块10设置自动同步时刻,例如,可以设定每日的00:00时刻自动启动数据库的同步操作。当到达每日的00:00时刻时,自动根据第一端点值和第二端点值从数据库中采集出待同步的增量数据。可以理解的是,上述时刻仅是举例说明,本技术中可以根据用户需要设置任意时刻。
36.在本发明的一些实施例中,同步装置100还包括:调度模块30,用于在当前周期中未完成增量数据的全部同步时,停止启动下一预设周期的启动,并继续完成当前周期增量数据的同步工作。
37.如上述示例中,若到达下一个00:00时刻时,未完成上一天的数据同步时,可以停止启动新的数据同步操作,并继续完成上一天的数据同步工作。
38.根据本发明的一些实施例,配置模块10还用于设置数据同步启动配置时间,在达到数据同步启动配置时间时,自动从源表中获取增量数据。
39.也就是说,用户可以自行设置自动同步的启动时间,如上述示例中,用户可以在原先设定的同步数据操作时间(如00:00时刻)的基础上,额外设置一个延期启动时间(如5分钟),那么该任务实际启动时间为00:05时刻,由此,可以避免每次均是在00:00时刻进行数据同步,可能导致00:00时刻附近产生的增量数据丢失,遗漏同步的问题。
40.在本发明的一些实施例中,增量字段的数据类型为数值型、时间日期类型和时间戳类型。需要说明的是,本发明提出的基于增量字段的数据库同步方法,可以实现对数据库中任一具有递增属性的数据类型的增量获取和同步更新。
41.综上所述,本发明提出的基于增量字段的数据库同步方法及同步装置100具有如下优点:用户可通过可视化配置,指定增量字段以及初始值,支持数值型、时间日期型及时间戳类型。通过增量字段和初始值,自动构造出数据初始化脚本以及增量脚本,配置周期任务实现增量数据采集。相较于现有增量采集方法存在需要配置其他组件、实现复杂、出错率高、维护成本高的问题,本发明方案实现简易、易操作、易使用、可普及性强。
42.下面参照附图详细描述根据本发明的基于增量字段的数据库同步方法及同步装置100。值得理解的是,下述描述仅是示例性描述,而不应理解为对本发明的具体限制。
43.本发明是解决如何在web系统中更便捷、更高效、更准确、自动化的完成异构数据源之间数据初始化及数据增量采集,减少人工干预。
44.本发明是基于传统etl的时间戳方式,通过在集成任务配置时指定增量字段,设置初始值,以增量字段小于初始值的数据作为数据初始化的内容,以增量字段大于及等于初始值的数据作为增量数据,从而达到异构数据源之间数据初始化及数据增量采集的目的。
45.通过本发明,不需要借助其它多余的数据采集组件,可以实现自动化的异构数据源之间的数据初始化及数据增量采集,从而减少人工操作,提升数据采集效率和性能。
46.1、任务配置过程:在配置任务时,首先需指定增量字段,增量字段为源端表中的某一个字段,字段类型可以为数值型或者日期型,指定好增量字段后,需要针对相应的增量字段设定初始值,若不设定初始值,系统会默认赋初始值,数值型为0,日期型为当前时间。
47.2、任务运行的详细过程:下面用一个具体的任务详细介绍整个过程,任务详情如下:
1.ꢀꢀꢀꢀꢀꢀꢀꢀ
数据源2.ꢀꢀꢀꢀꢀꢀꢀꢀ
mysql表,假设表名mysql_src3.ꢀꢀꢀꢀꢀꢀꢀꢀ
增量字段4.ꢀꢀꢀꢀꢀꢀꢀꢀ
updatetime5.ꢀꢀꢀꢀꢀꢀꢀꢀ
增量字段类型6.ꢀꢀꢀꢀꢀꢀꢀꢀ
日期型 1)构造数据初始化查询条件;如果是第一次运行任务,根据增量字段以及初始值构造查询sql,sql模板如下:select*frommysql_srcwhereupdatetime《${initial_value};2)构造数据增量查询条件;如果是第一次增量运行,根据增量字段以及初始值,加上当前的运行时间构造查询sql,sql模板如下:select*frommysql_srcwhereupdatetime》=${initial_value}andupdatetime《${executiontime_1};如果不是第一次增量运行,根据增量字段以及上一次的运行时间,加上当前的运行时间构造查询sql,sql模板如下:select*frommysql_srcwhereupdatetime》=${executiontime_1}andupdatetime《${executiontime_2};查询sql构造好了之后,就可以根据构造的sql语句去源端表中读取数据了。
48.3)运行时间的回写时机为了保证每次任务运行前构造的查询sql是准确的,需要严格控制记录运行任务时间(数据筛选范围的终止值)的时机,方案是在当前数据同步操作完成后,再记录本次任务运行时间,作为下一次数据同步的数据筛选的初始值。若数据同步任务运行失败,则不会回写本次任务运行时间,那么下次任务将重新构造新的查询sql。
49.3)周期调度保证增量数据按时采集;本发明可以采用配置周期调度策略,根据周期调度策略,定时的建立采集任务,无需多余的人工操作,减轻人工工作量,实现真正意义上的自动化数据采集。
50.本发明提出的基于增量字段的数据库同步方法及同步装置100具有如下优点:配置化:通过可视化配置,指定增量字段以及初始值,并且支持数值型以及日期型。
51.自动化:通过增量字段和初始值,自动构造出数据初始化脚本以及增量脚本,配置周期任务实现增量数据采集。
52.简易性:目前很多增量采集方法需要配置其他组件,实现复杂,出错率高,维护成本高,本文所述方案实现简易,易操作,易使用,可普及性强。
53.通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1