CN112765265A - 数据同步方法、装置、计算机设备和可读存储介质 - Google Patents
数据同步方法、装置、计算机设备和可读存储介质 Download PDFInfo
- Publication number
- CN112765265A CN112765265A CN202011610559.8A CN202011610559A CN112765265A CN 112765265 A CN112765265 A CN 112765265A CN 202011610559 A CN202011610559 A CN 202011610559A CN 112765265 A CN112765265 A CN 112765265A
- Authority
- CN
- China
- Prior art keywords
- synchronous
- task
- target
- synchronization
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000001360 synchronised effect Effects 0.000 claims abstract description 464
- 238000012545 processing Methods 0.000 claims abstract description 232
- 238000005520 cutting process Methods 0.000 claims description 50
- 230000002159 abnormal effect Effects 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 12
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本申请涉及一种数据同步方法、装置、计算机设备和可读存储介质,其中,该数据同步方法包括:获取同步任务执行指令,并基于同步任务执行指令获取同步任务信息,同步任务信息包括同步任务时间信息和同步任务配置信息;基于同步任务信息确定目标节点信息,目标节点信息包括多个目标分布式处理节点以及每一目标分布式处理节点的节点名称;将同步任务信息和目标节点信息发送至多个目标分布式处理节点,以使多个目标分布式处理节点获取增量数据,并将增量数据同步存储至目标数据库中。通过本申请,解决了相关技术中无法高效地实现数据增量同步的问题。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据同步方法、装置、计算机设备和可读存储介质。
背景技术
用户使用APP的过程中,会产生大量的用户日志数据,例如用户下单数据、用户浏览数据以及用户的个人信息等。后台系统通常需要对这些用户日志数据进行收集及分析,以实现对APP的优化,从而为用户提供更优质的服务。后台系统可以直接拉取用户使用APP的过程中产生的日志数据,以实现对用户使用环境的分析优化。但是,当后台系统拉取频率过高的情况下,容易对用户使用环境造成影响。
在相关技术中,在只进行增量数据同步的情况下,可以降低日志数据拉取对用户使用环境的影响。然而,现有的异构数据源离线同步工具datax本身无法实现数据的增量同步,且只有单机版,只能通过单台设备进行数据同步处理,从而导致数据同步效率低,无法满足大批量的用户使用数据的同步处理需求。
目前针对相关技术中,无法高效地实现数据增量同步的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据同步方法、装置、计算机设备和可读存储介质,以至少解决相关技术中无法高效地实现数据增量同步的问题。
第一方面,本申请实施例提供了一种数据同步方法,所述方法包括:
获取同步任务执行指令,并基于所述同步任务执行指令获取同步任务信息,所述同步任务信息包括同步任务时间信息和同步任务配置信息;
基于所述同步任务信息确定目标节点信息,所述目标节点信息包括多个目标分布式处理节点以及每一所述目标分布式处理节点的节点名称;
将所述同步任务信息和所述目标节点信息发送至多个所述目标分布式处理节点,以使多个所述目标分布式处理节点获取增量数据,并将所述增量数据同步存储至目标数据库中。
在其中一些实施例中,所述将所述同步任务信息和所述目标节点信息发送至多个所述目标分布式处理节点,以使多个所述目标分布式处理节点获取增量数据,并将所述增量数据同步存储至目标数据库中包括:
将所述同步任务信息和所述目标节点信息发送至多个所述目标分布式处理节点,以使每一所述目标分布式处理节点获取对应的目标同步标识值子区间,基于所述目标同步标识值子区间从源数据库中获取目标增量数据,并将所述目标增量数据同步存储至所述目标数据库中。
在其中一些实施例中,所述目标同步标识值子区间基于所述目标分布式处理节点对同步任务对应的同步标识值区间进行切割处理得到,所述同步标识值区间包括初始同步标识值和最大同步标识值。
在其中一些实施例中,所述方法还包括:
获取每一所述目标分布式处理节点对应的同步任务执行状态;
若所有所述目标分布式处理节点对应的同步任务执行状态均为已完成,则获取本次同步任务对应的预选同步标识值;
将所述预选同步标识值作为本次同步任务对应的终止同步标识值,所述预选同步标识值表示本次同步任务对应的最大同步标识值;
将本次同步任务对应的终止同步标识值存储为下次同步任务对应的初始同步标识值。
在其中一些实施例中,所述方法还包括:
获取所述目标分布式处理节点的异常执行状态信息,所述异常执行状态信息包括所述目标分布式处理节点在执行同步任务时中断通信的信息;
基于所述异常执行状态信息将所述目标分布式处理节点对应的同步任务标记为禁用同步任务;
基于所述禁用同步任务对应的同步任务信息确定替补节点信息,所述替补节点信息包括多个替补分布式处理节点以及每一所述替补分布式处理节点的节点名称;
将所述禁用同步任务重新标记为重启同步任务,并将所述替补节点信息发送至多个所述替补分布式处理节点,以使多个所述替补分布式处理节点执行所述重启同步任务。
第二方面,本申请实施例提供了另一种数据同步方法,所述方法包括:
获取目标节点信息和同步任务信息,所述目标节点信息包括多个目标分布式处理节点以及每一所述目标分布式处理节点的节点名称,所述目标分布式处理节点表示执行同步任务的分布式处理节点;所述同步任务信息包括同步任务时间信息和同步任务配置信息;
基于所述目标节点信息和所述同步任务信息获取增量数据,并将所述增量数据同步存储至目标数据库中。
在其中一些实施例中,所述获取目标节点信息和同步任务信息包括:
获取目标节点信息和本地节点名称,并判断所述本地节点名称是否在所述目标节点信息中;
若所述本地节点名称在所述目标节点信息中,则获取同步任务名称,并基于所述同步任务名称创建同步任务线程;
基于所述同步任务线程从所述处理器中获取所述同步任务时间信息,并基于所述同步任务时间信息和所述同步任务名称,从所述处理器中获取同步任务配置信息。
在其中一些实施例中,所述基于所述目标节点信息和所述同步任务信息获取增量数据,并将所述增量数据同步存储至目标数据库中包括:
获取本次同步任务对应的同步标识值区间,所述同步标识值区间包括初始同步标识值和最大同步标识值;
基于所述目标节点信息和预设数据切割规则对所述同步标识值区间进行切割处理,得到本次同步任务对应的同步标识值切割信息,所述同步标识值切割信息包括每一所述目标分布式处理节点对应的同步标识值子区间;
将所述同步标识值切割信息存储至所述处理器,并将所述最大同步标识值作为本次同步任务对应的预选同步标识值临时存储至所述处理器中;
获取本地节点名称,并基于所述本地节点名称从所述处理器中获取目标同步标识值子区间;
基于所述目标同步标识值子区间和所述同步任务配置信息从源数据库获取目标增量数据,并将所述目标增量数据同步存储至目标数据库中。
在其中一些实施例中,所述获取本次同步任务对应的同步标识值区间包括:
基于所述同步任务名称生成本地同步锁,并判断所述处理器中是否加载有其他同步锁,所述本地同步锁用于指示本地分布式处理节点正在执行同步标识值切割任务;
若所述处理器中不存在所述其他同步锁,则将所述本地同步锁加载至所述处理器中,并获取本次同步任务对应的初始同步标识值;
基于所述同步任务配置信息链接至源数据库,并从所述源数据库中获取大于所述初始同步标识值的多个同步标识值;
获取多个同步标识值中的最大同步标识值,并基于所述初始同步标识值和所述最大同步标识值获取本次同步任务对应的同步标识值区间。
在其中一些实施例中,所述获取本次同步任务对应的初始同步标识值包括:
若本次同步任务是首次同步任务,则设置本次同步任务对应的初始同步标识值为零;
若本次同步任务不是首次同步任务,则获取上次同步任务对应的终止同步标识值,并将上次同步任务对应的终止同步标识值作为本次同步任务对应的初始同步标识值。
第三方面,本申请实施例提供了一种数据同步装置,所述装置包括:
执行指令获取模块,用于获取同步任务执行指令,并基于所述同步任务执行指令获取同步任务信息,所述同步任务信息包括同步任务时间信息和同步任务配置信息;
目标节点确定模块,用于基于所述同步任务信息确定目标节点信息,所述目标节点信息包括多个目标分布式处理节点以及每一所述目标分布式处理节点的节点名称;
增量同步控制模块,用于将所述同步任务信息和所述目标节点信息发送至多个所述目标分布式处理节点,以使多个所述目标分布式处理节点获取增量数据,并将所述增量数据同步存储至目标数据库中。
第四方面,本申请实施例提供了另一种数据同步装置,所述装置包括:
同步任务获取模块,用于获取目标节点信息和同步任务信息,所述目标节点信息包括多个目标分布式处理节点以及每一所述目标分布式处理节点的节点名称,所述目标分布式处理节点表示执行同步任务的分布式处理节点;所述同步任务信息包括同步任务时间信息和同步任务配置信息;
增量同步处理模块,用于基于所述目标节点信息和所述同步任务信息获取增量数据,并将所述增量数据同步存储至目标数据库中。
第五方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面以及第二方面所述的数据同步方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面以及第二方面所述的数据同步方法。
相比于相关技术,本申请实施例提供的数据同步方法、装置、计算机设备和可读存储介质,通过获取同步任务执行指令,并基于同步任务执行指令获取同步任务信息,同步任务信息包括同步任务时间信息和同步任务配置信息;基于同步任务信息确定目标节点信息,目标节点信息包括多个目标分布式处理节点以及每一目标分布式处理节点的节点名称;将同步任务信息和目标节点信息发送至多个目标分布式处理节点,以使多个目标分布式处理节点获取增量数据,并将增量数据同步存储至目标数据库中,本申请通过将同步任务信息和目标节点信息发送至多个目标分布式处理节点,以使多个目标分布式处理节点同时进行数据增量同步处理,有效提高了增量数据的同步效率,解决了相关技术中无法高效地实现数据增量同步的问题。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例的一种数据同步方法的流程图;
图2为本申请实施例中确定本次同步任务对应的终止同步标识值的流程图;
图3为本申请实施例中基于异常执行状态信息确定替补节点信息的流程图;
图4为本申请实施例的另一种数据同步方法的流程图;
图5为本申请实施例中获取目标节点信息和同步任务信息的流程图;
图6为本申请实施例中基于目标节点信息和同步任务信息同步存储增量数据的流程图;
图7为本申请实施例中获取本次同步任务对应的同步标识值区间的流程图;
图8为本申请具体实施例的数据同步方法的应用场景示意图;
图9为本申请实施例的一种数据同步装置的结构框图;
图10为本申请实施例的另一种数据同步装置的结构框图;
图11为本申请实施例的数据同步设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请所描述的各种技术,可以但不仅限于应用于各种数据处理平台、系统以及设备。
图1为本申请实施例的一种数据同步方法的流程图,如图1所示,该流程包括如下步骤:
步骤S110,获取同步任务执行指令,并基于同步任务执行指令获取同步任务信息,同步任务信息包括同步任务时间信息和同步任务配置信息。
同步任务执行指令可以是用户在客户端输入的同步任务指令,也可以是预先存储的定时同步任务指令,本实施例不作限制。同步任务时间信息表示执行同步任务的时间信息。同步任务配置信息至少包括同步任务对应的配置参数、任务名称以及待同步数据的存储信息。
步骤S120,基于同步任务信息确定目标节点信息,目标节点信息包括多个目标分布式处理节点以及每一目标分布式处理节点的节点名称。
目标分布式处理节点表示执行同步任务信息对应同步任务的分布式处理节点。例如,分布式处理系统包括10个分布式处理节点,选取5个分布式处理节点作为目标分布式处理节点执行同步任务。
步骤S130,将同步任务信息和目标节点信息发送至多个目标分布式处理节点,以使多个目标分布式处理节点获取增量数据,并将增量数据同步存储至目标数据库中。
增量数据表示新增的用户使用日志数据,可以是用户使用APP的过程中产生的一切日志数据,例如,用户下单记录、用户购买记录、用户浏览记录以及用户钱包数据等。
通过上述步骤S110至步骤S130,获取同步任务执行指令,并基于同步任务执行指令获取同步任务信息,同步任务信息包括同步任务时间信息和同步任务配置信息;基于同步任务信息确定目标节点信息,目标节点信息包括多个目标分布式处理节点以及每一目标分布式处理节点的节点名称;将同步任务信息和目标节点信息发送至多个目标分布式处理节点,以使多个目标分布式处理节点获取增量数据,并将增量数据同步存储至目标数据库中。本申请通过将同步任务信息和目标节点信息发送至多个目标分布式处理节点,以使多个目标分布式处理节点同时进行数据增量同步处理,可以避免只能通过单台设备进行数据同步处理时数据同步效率低的问题,从而有效提高了增量数据的同步效率,解决了相关技术中无法高效地实现数据增量同步的问题。
在其中一些实施例中,将同步任务信息和目标节点信息发送至多个目标分布式处理节点,以使每一目标分布式处理节点获取对应的目标同步标识值子区间,基于目标同步标识值子区间从源数据库中获取目标增量数据,并将目标增量数据同步存储至目标数据库中。
进一步地,目标同步标识值子区间基于目标分布式处理节点对同步任务对应的同步标识值区间进行切割处理得到,同步标识值区间包括初始同步标识值和最大同步标识值。
需要说明的是,同步标识值子区间表示待同步增量数据对应的总标识值区间,用于标识待同步增量数据的数据总条数、初始同步标识值以及最大同步标识值等信息。目标同步标识值子区间表示某一个目标分布式处理节点需要同步的增量数据对应的同步标识值子区间。
例如,待同步增量数据的数量为100条,同步标识值区间为[0,100],也就是说,待同步增量数据的数据总条数为100条,初始同步标识值为0,最大同步标识值为100。第一个目标分布式处理节点对应的目标同步标识值子区间为[0,50],第二个目标分布式处理节点对应的目标同步标识值子区间为[51,100],也就是说,第一个目标分布式处理节点需要同步的数据为前50条增量数据,第二个目标分布式处理节点需要同步的数据为后50条增量数据。
本实施例通过将同步任务信息和目标节点信息发送至多个目标分布式处理节点,以使每一目标分布式处理节点获取对应的目标同步标识值子区间,并基于目标同步标识值子区间非常方便地从源数据库中获取需要本地同步处理的目标增量数据,进而将目标增量数据同步存储至目标数据库中,实现了多个分布式处理节点进行增量数据的同步处理流程,显著提高了增量数据同步的同步效率。
在其中一些实施例中,图2为本申请实施例中确定本次同步任务对应的终止同步标识值的流程图,如图2所示,该流程包括如下步骤:
步骤S210,获取每一目标分布式处理节点对应的同步任务执行状态。
同步任务执行状态至少包括正在执行、已完成以及执行失败。
步骤S220,若所有目标分布式处理节点对应的同步任务执行状态均为已完成,则获取本次同步任务对应的预选同步标识值。
步骤S230,将预选同步标识值作为本次同步任务对应的终止同步标识值,预选同步标识值表示本次同步任务对应的最大同步标识值。
其中,预选同步标识值表示预选出来的本次同步任务对应的终止同步标识值。若已完成本次同步任务,则将预选同步标识值标记为本次同步任务对应的终止同步标识值并进行存储;若尚未完成本次同步任务,则继续等待,直至完成本次同步任务,再将该预选同步标识值标记为本次同步任务对应的终止同步标识值并进行存储。
步骤S240,将本次同步任务对应的终止同步标识值存储为下次同步任务对应的初始同步标识值。
在其中一些实施例中,图3为本申请实施例中基于异常执行状态信息确定替补节点信息的流程图,如图3所示,该流程包括如下步骤:
步骤S310,获取目标分布式处理节点的异常执行状态信息,异常执行状态信息包括目标分布式处理节点在执行同步任务时中断通信的信息。
步骤S320,基于异常执行状态信息将目标分布式处理节点对应的同步任务标记为禁用同步任务。
目标分布式处理节点在执行同步任务时每隔一段时间会发送通信信号至处理器,若处理器在一段时间内一直未收到目标分布式处理节点发送的通信信号,则可以判定该目标分布式处理节点的执行状态异常,并将存在异常执行状态的目标分布式处理节点对应的同步任务标记为禁用同步任务。
步骤S330,基于禁用同步任务对应的同步任务信息确定替补节点信息,替补节点信息包括多个替补分布式处理节点以及每一替补分布式处理节点的节点名称。
步骤S340,将禁用同步任务重新标记为重启同步任务,并将替补节点信息发送至多个替补分布式处理节点,以使多个替补分布式处理节点执行重启同步任务。
当某一同步任务被标记为禁用同步任务后,其他目标分布式处理节点也无法继续执行这一同步任务。此时,处理器会重新分配分布式处理节点来执行这一同步任务,即确定执行这一同步任务的替补分布式处理节点,并将禁用同步任务重新标记为重启同步任务,以使多个替补分布式处理节点重新执行这一同步任务。
通过上述步骤S310至步骤S340,获取目标分布式处理节点的异常执行状态信息,异常执行状态信息包括目标分布式处理节点在执行同步任务时中断通信的信息;基于异常执行状态信息将目标分布式处理节点对应的同步任务标记为禁用同步任务;将禁用同步任务重新标记为重启同步任务,并将替补节点信息发送至多个替补分布式处理节点,以使多个替补分布式处理节点执行重启同步任务;将禁用同步任务重新标记为重启同步任务,并将替补节点信息发送至多个替补分布式处理节点,以使多个替补分布式处理节点执行重启同步任务。本实施例提供了一种应对异常执行状态的处理策略,通过在目标分布式处理节点存在异常执行状态时,将该目标分布式处理节点对应的同步任务标记为禁用同步任务,并重新分配替补分布式处理节点来执行这一同步任务,非常方便的实现了异常同步任务的重新分配,从而可以进一步提高增量数据的同步效率。
图4为本申请实施例的另一种数据同步方法的流程图,如图4所示,该流程包括如下步骤:
步骤S410,获取目标节点信息和同步任务信息,目标节点信息包括多个目标分布式处理节点以及每一目标分布式处理节点的节点名称,目标分布式处理节点表示执行同步任务的分布式处理节点;同步任务信息包括同步任务时间信息和同步任务配置信息。
步骤S420,基于目标节点信息和同步任务信息获取增量数据,并将增量数据同步存储至目标数据库中。
通过上述步骤S410至步骤S420,获取目标节点信息和同步任务信息,目标节点信息包括多个目标分布式处理节点以及每一目标分布式处理节点的节点名称,目标分布式处理节点表示执行同步任务的分布式处理节点;同步任务信息包括同步任务时间信息和同步任务配置信息;基于目标节点信息和同步任务信息获取增量数据,并将增量数据同步存储至目标数据库中。本申请通过将同步任务信息和目标节点信息发送至多个目标分布式处理节点,以使多个目标分布式处理节点同时进行数据增量同步处理,可以避免只能通过单台设备进行数据同步处理时数据同步效率低的问题,从而有效提高了增量数据的同步效率,解决了相关技术中无法高效地实现数据增量同步的问题。
进一步地,同步任务时间信息包括预设时间间隔表达式或者预设同步任务执行时间。
需要说明的是,若同步任务为定时同步任务,则同步任务时间信息包括预设时间间隔表达式,通过对预设时间间隔表达式进行解析可以得到定时同步任务执行的时间间隔和每一次执行同步任务的时间。若同步任务为非定时同步任务,则同步任务时间信息包括预设同步任务执行时间,即该非定时同步任务只执行一次。
在其中一些实施例中,图5为本申请实施例中获取目标节点信息和同步任务信息的流程图,如图5所示,该流程包括如下步骤:
步骤S510,获取目标节点信息和本地节点名称,并判断本地节点名称是否在目标节点信息中。
步骤S520,若本地节点名称在目标节点信息中,则获取同步任务名称,并基于同步任务名称创建同步任务线程。
需要说明的是,每一个分布式处理节点获取到目标节点信息后,会将本地节点名称与目标节点信息中目标分布式处理节点的节点名称进行比较,以判断本地节点名称是否在目标节点信息中,若本地节点名称在目标节点信息中,则判定自身为目标分布式处理节点,从而基于同步任务名称创建同步任务线程;若本地节点名称不在目标节点信息中,则判定自身不是目标分布式处理节点,不需要执行这一同步任务。
步骤S530,基于同步任务线程从处理器中获取同步任务时间信息,并基于同步任务时间信息和同步任务名称,从处理器中获取同步任务配置信息。
进一步地,基于同步任务时间信息获取本次同步任务执行时间,并基于本次同步任务执行时间和同步任务名称,从处理器中获取同步任务配置信息。
需要说明的是,当基于同步任务时间信息获取本次同步任务执行时间后进行等待,直至当前时间为本次同步任务执行时间,基于同步任务名称从处理器中获取同步任务配置信息。
例如,当本次同步任务为定时同步任务时,同步任务时间信息包括预设时间间隔表达式,通过对预设时间间隔表达式进行解析,可以得到本次同步任务执行时间。
在其中一些实施例中,图6为本申请实施例中基于目标节点信息和同步任务信息同步存储增量数据的流程图,如图6所示,该流程包括如下步骤:
步骤S610,获取本次同步任务对应的同步标识值区间,同步标识值区间包括初始同步标识值和最大同步标识值。
初始同步标识值表示本次同步任务需要同步的增量数据的起点标识,例如,初始同步标识值为0,若初始同步标识值对应第1条增量数据,则本次同步任务从第1条增量数据开始同步。
最大同步标识值表示本次同步任务需要同步的增量数据的最大标识。例如,最大同步标识值为100,若最大同步标识值对应第100条增量数据,则同步至第100条增量数据时停止同步,后续没有其他增量数据需要同步了。
步骤S620,基于目标节点信息和预设数据切割规则对同步标识值区间进行切割处理,得到本次同步任务对应的同步标识值切割信息,同步标识值切割信息包括每一目标分布式处理节点对应的同步标识值子区间。
预设数据切割规则可以是平均数据切割规则,可以是随机数据切割规则,也可以是其他数据切割规则,本实施例不作限制。
例如,待同步增量数据的数量为100条,同步标识值区间为[0,100],预设数据切割规则为平均数据切割规则。目标节点信息包括5个目标分布式处理节点,分别为目标分布式处理节点A、目标分布式处理节点B、目标分布式处理节点C、目标分布式处理节点D和目标分布式处理节点E。将同步标识值子区间平均切割为5份,则目标分布式处理节点A对应的目标同步标识值子区间为[0,20],目标分布式处理节点B对应的目标同步标识值子区间为[21,40],目标分布式处理节点C对应的目标同步标识值子区间为[41,60],目标分布式处理节点D对应的目标同步标识值子区间为[61,80],目标分布式处理节点E对应的目标同步标识值子区间为[81,100]。
步骤S630,将同步标识值切割信息存储至处理器,并将最大同步标识值作为本次同步任务对应的预选同步标识值临时存储至处理器中。
步骤S640,获取本地节点名称,并基于本地节点名称从处理器中获取目标同步标识值子区间。
步骤S650,基于目标同步标识值子区间和同步任务配置信息从源数据库获取目标增量数据,并将目标增量数据同步存储至目标数据库中。
同步任务配置信息包括源数据库的第一地址信息和目标数据库的第二地址信息。
例如,目标分布式处理节点A对应的目标同步标识值子区间为[0,20],目标分布式处理节点A可以基于对应的目标同步标识值子区间从源数据库获取前20条增量数据,从而将前20条增量数据同步存储至目标数据库中。
在其中一些实施例中,图7为本申请实施例中获取本次同步任务对应的同步标识值区间的流程图,如图7所示,该流程包括如下步骤:
步骤S710,基于同步任务名称生成本地同步锁,并判断处理器中是否加载有其他同步锁,本地同步锁用于指示本地分布式处理节点正在执行同步标识值切割任务。
步骤S720,若处理器中不存在其他同步锁,则将本地同步锁加载至处理器中,并获取本次同步任务对应的初始同步标识值。
步骤S730,基于同步任务配置信息链接至源数据库,并从源数据库中获取大于初始同步标识值的多个同步标识值。
同步任务配置信息还包括待同步增量数据的数据信息。具体地,基于同步任务配置信息中第一地址信息链接至源数据库,基于待同步增量数据的数据信息在源数据库中查找到待同步增量数据所在的位置,并根据待同步增量数据所在的位置从处理器调取大于初始同步标识值的多个同步标识值。
需要说明的是,同步标识值存储在处理器中,并且与存储在源数据库中的增量数据一一对应。由于同步标识值与增量数据之间的对应关系是预先定义好的,因此,只要能够获取到待同步增量数据的数据信息,就能相对地查找到待同步增量数据对应的同步标识值。
步骤S740,获取多个同步标识值中的最大同步标识值,并基于初始同步标识值和最大同步标识值获取本次同步任务对应的同步标识值区间。
例如,初始同步标识值为0,最大同步标识值为100,则确定本次同步任务对应的同步标识值区间为[0,100]。
在其中一些实施例中,若本次同步任务是首次同步任务,则设置本次同步任务对应的初始同步标识值为零;若本次同步任务不是首次同步任务,则获取上次同步任务对应的终止同步标识值,并将上次同步任务对应的终止同步标识值作为本次同步任务对应的初始同步标识值。
进一步地,本申请提供的数据同步方法可以支持多种编程语言的同步任务,具有广泛的应用前景。例如,Java、Php、HTTP以及Python等。
下面通过两个具体实施例对本申请实施例的数据同步方法作进一步描述和说明。
在具体实施例一中,(1)获取目标节点信息和同步任务信息,目标节点信息包括多个目标分布式处理节点以及每一目标分布式处理节点的节点名称,目标分布式处理节点表示执行同步任务的分布式处理节点;同步任务信息包括同步任务时间信息和同步任务配置信息。
(2)获取本次同步任务对应的同步标识值区间,同步标识值区间包括初始同步标识值和最大同步标识值;基于目标节点信息和预设数据切割规则对同步标识值区间进行切割处理,得到本次同步任务对应的同步标识值切割信息,同步标识值切割信息包括每一目标分布式处理节点对应的同步标识值子区间。
(4)将同步标识值切割信息存储至处理器,并将最大同步标识值作为本次同步任务对应的预选同步标识值临时存储至处理器中。
(5)获取本地节点名称,并基于本地节点名称从处理器中获取目标同步标识值子区间;基于目标同步标识值子区间和同步任务配置信息从源数据库获取目标增量数据,并将目标增量数据同步存储至目标数据库中。
在具体实施例二中,(1)获取目标节点信息和本地节点名称,并判断本地节点名称是否在目标节点信息中,目标节点信息包括多个目标分布式处理节点以及每一目标分布式处理节点的节点名称,目标分布式处理节点表示执行同步任务的分布式处理节点。
(2)若本地节点名称在目标节点信息中,则获取同步任务名称,并基于同步任务名称创建同步任务线程;基于同步任务线程从处理器中获取同步任务时间信息,并基于同步任务时间信息和同步任务名称,从处理器中获取同步任务配置信息。
(3)基于同步任务名称生成本地同步锁,并判断处理器中是否加载有其他同步锁,本地同步锁用于指示本地分布式处理节点正在执行同步标识值切割任务;若处理器中不存在其他同步锁,则将本地同步锁加载至处理器中,并获取本次同步任务对应的初始同步标识值。
(4)基于同步任务配置信息链接至源数据库,并从源数据库中获取大于初始同步标识值的多个同步标识值;获取多个同步标识值中的最大同步标识值,并基于初始同步标识值和最大同步标识值获取本次同步任务对应的同步标识值区间。
(5)基于目标节点信息和预设数据切割规则对同步标识值区间进行切割处理,得到本次同步任务对应的同步标识值切割信息,同步标识值切割信息包括每一目标分布式处理节点对应的同步标识值子区间;将同步标识值切割信息存储至处理器,并将最大同步标识值作为本次同步任务对应的预选同步标识值临时存储至处理器中。
(6)获取本地节点名称,并基于本地节点名称从处理器中获取目标同步标识值子区间;基于目标同步标识值子区间和同步任务配置信息从源数据库获取目标增量数据,并将目标增量数据同步存储至目标数据库中。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
进一步地,本实施例中的处理器可以是一个集成的同时具备分布式管理功能与控制功能的处理器或者处理设备,也可以将处理器划分为具有分布式管理功能的分布式管理系统和具有控制功能的控制中心,本申请不作限制。
其中,分布式管理系统可以是ZooKeeper,也可以是其他分布式管理系统,本申请实施例不作限制。ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
基于此,本申请提供一个具体实施例对非集成处理器的功能进行详细说明,图8为本申请具体实施例的数据同步方法的应用场景示意图,如图8所示,该数据同步方法包括:
(1)后台810获取用户输入的同步任务执行指令,并将同步任务执行指令发送至控制中心820。控制中心820接收同步任务执行指令,基于同步任务执行指令获取同步任务信息和目标节点信息,并将同步任务信息和目标节点信息发送至分布式管理系统830,同步任务信息包括同步任务时间信息和同步任务配置信息,目标节点信息包括多个目标分布式处理节点840以及每一目标分布式处理节点840的节点名称,目标分布式处理节点840表示执行同步任务的分布式处理节点。
(2)目标分布式处理节点840获取目标节点信息、本地节点名称和同步任务名称,基于目标节点信息和同步任务名称创建同步任务线程,基于同步任务线程从分布式管理系统830中获取同步任务时间信息,并基于同步任务时间信息和同步任务名称,从分布式管理系统830中获取同步任务配置信息;基于本地节点名称从分布式管理系统830中获取目标同步标识值子区间;基于目标同步标识值子区间和同步任务配置信息从源数据库获取目标增量数据,并将目标增量数据同步存储至目标数据库中。
(3)分布式管理系统830还用于获取每一目标分布式处理节点840对应的同步任务执行状态;若所有目标分布式处理节点840对应的同步任务执行状态均为已完成,则获取本次同步任务对应的预选同步标识值;将预选同步标识值作为本次同步任务对应的终止同步标识值,预选同步标识值表示本次同步任务对应的最大同步标识值;将本次同步任务对应的终止同步标识值存储为下次同步任务对应的初始同步标识值。
(4)控制中心820还用于获取目标分布式处理节点840的异常执行状态信息,异常执行状态信息包括目标分布式处理节点840在执行同步任务时与分布式管理系统830中断通信的信息;基于异常执行状态信息将目标分布式处理节点840对应的同步任务标记为禁用同步任务;基于禁用同步任务对应的同步任务信息确定替补节点信息,替补节点信息包括多个替补分布式处理节点以及每一替补分布式处理节点的节点名称;将禁用同步任务重新标记为重启同步任务,并将替补节点信息发送至多个替补分布式处理节点,以使多个替补分布式处理节点执行重启同步任务。
需要说明的是,分布式任务需要一种机制保证正常给各个分布式处理节点准确及时地分派同步任务,并减少各个分布式处理节点之间竞争。最简单的思路是,控制中心向分布式管理系统索要当前可以执行的分布式处理节点,然后分派同步任务,当完成同步任务后需要将任务状态汇报给分布式管理系统,并筹划这一次同步任务的执行时间。实际上,对于分布式管理系统而言,只是进行同步任务的长久序列化,对于如何提取同步任务以及如何确定同步任务的执行状态(即完成,失败或者重试),都由分布式处理节点自行决定。由此可见,本申请提供的数据同步方法可以准确及时地给各个分布式处理节点分派同步任务,还减少各个分布式处理节点之间竞争,能够最大程度的节约时间,提高数据同步效率。
另外,每一个目标分布式处理节点可以唤醒DataX任务,从而实现各种异构数据源之间稳定高效的数据同步功能。
DataX是一个异构数据源离线同步工具,其致力于实现包括关系型数据库,例如,MySQL、Oracle、HDFS、Hive、ODPS、HBase、FTP等。DataX可以实现各种异构数据源之间稳定高效的数据同步功能,通过将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源,从而可以解决异构数据源同步问题。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。
本实施例还提供了一种数据同步装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图9为本申请实施例的一种数据同步装置的结构框图,如图9所示,该装置包括:
执行指令获取模块910,用于获取同步任务执行指令,并基于同步任务执行指令获取同步任务信息,同步任务信息包括同步任务时间信息和同步任务配置信息。
目标节点确定模块920,用于基于同步任务信息确定目标节点信息,目标节点信息包括多个目标分布式处理节点以及每一目标分布式处理节点的节点名称。
增量同步控制模块930,用于将同步任务信息和目标节点信息发送至多个目标分布式处理节点,以使多个目标分布式处理节点获取增量数据,并将增量数据同步存储至目标数据库中。
在其中一些实施例中,增量同步控制模块930,还用于将同步任务信息和目标节点信息发送至多个目标分布式处理节点,以使每一目标分布式处理节点获取对应的目标同步标识值子区间,基于目标同步标识值子区间从源数据库中获取目标增量数据,并将目标增量数据同步存储至目标数据库中。
在其中一些实施例中,目标同步标识值子区间基于目标分布式处理节点对同步任务对应的同步标识值区间进行切割处理得到,同步标识值区间包括初始同步标识值和最大同步标识值。
在其中一些实施例中,数据同步装置还包括同步标识值刷新模块,同步标识值刷新模块包括同步状态获取单元、预选标识值获取单元、终止标识值确定单元和同步标识值刷新单元,
其中:
同步状态获取单元,用于获取每一目标分布式处理节点对应的同步任务执行状态。
预选标识值获取单元,用于若所有目标分布式处理节点对应的同步任务执行状态均为已完成,则获取本次同步任务对应的预选同步标识值。
终止标识值确定单元,用于将预选同步标识值作为本次同步任务对应的终止同步标识值,预选同步标识值表示本次同步任务对应的最大同步标识值。
同步标识值刷新单元,用于将本次同步任务对应的终止同步标识值存储为下次同步任务对应的初始同步标识值。
在其中一些实施例中,数据同步装置还包括同步任务重启模块,同步任务重启模块包括异常状态监控单元、禁用任务标记单元、替补节点确定单元和同步任务重启单元,其中:
异常状态监控单元,用于获取目标分布式处理节点的异常执行状态信息,异常执行状态信息包括目标分布式处理节点在执行同步任务时中断通信的信息。
禁用任务标记单元,用于基于异常执行状态信息将目标分布式处理节点对应的同步任务标记为禁用同步任务。
替补节点确定单元,用于基于禁用同步任务对应的同步任务信息确定替补节点信息,替补节点信息包括多个替补分布式处理节点以及每一替补分布式处理节点的节点名称。
同步任务重启单元,用于将禁用同步任务重新标记为重启同步任务,并将替补节点信息发送至多个替补分布式处理节点,以使多个替补分布式处理节点执行重启同步任务。
图10为本申请实施例的另一种数据同步装置的结构框图,如图10所示,该装置包括:
同步任务获取模块1010,用于获取目标节点信息和同步任务信息,目标节点信息包括多个目标分布式处理节点以及每一目标分布式处理节点的节点名称,目标分布式处理节点表示执行同步任务的分布式处理节点;同步任务信息包括同步任务时间信息和同步任务配置信息。
增量同步处理模块1020,用于基于目标节点信息和同步任务信息获取增量数据,并将增量数据同步存储至目标数据库中。
在其中一些实施例中,同步任务获取模块1010包括本地节点判断单元、任务线程创建单元和同步信息获取单元,其中:
本地节点判断单元,用于获取目标节点信息和本地节点名称,并判断本地节点名称是否在目标节点信息中。
任务线程创建单元,用于若本地节点名称在目标节点信息中,则获取同步任务名称,并基于同步任务名称创建同步任务线程。
同步信息获取单元,用于基于同步任务线程从处理器中获取同步任务时间信息,并基于同步任务时间信息和同步任务名称,从处理器中获取同步任务配置信息。
在其中一些实施例中,增量同步处理模块1020包括标识值区间获取单元、标识值区间切割单元、切割信息存储单元、目标标识值获取单元和目标增量数据同步单元,其中:
标识值区间获取单元,用于获取本次同步任务对应的同步标识值区间,同步标识值区间包括初始同步标识值和最大同步标识值。
标识值区间切割单元,用于基于目标节点信息和预设数据切割规则对同步标识值区间进行切割处理,得到本次同步任务对应的同步标识值切割信息,同步标识值切割信息包括每一目标分布式处理节点对应的同步标识值子区间。
切割信息存储单元,用于将同步标识值切割信息存储至处理器,并将最大同步标识值作为本次同步任务对应的预选同步标识值临时存储至处理器中。
目标标识值获取单元,用于获取本地节点名称,并基于本地节点名称从处理器中获取目标同步标识值子区间。
目标增量数据同步单元,用于基于目标同步标识值子区间和同步任务配置信息从源数据库获取目标增量数据,并将目标增量数据同步存储至目标数据库中。
在其中一些实施例中,标识值区间获取单元包括同步锁判断子单元、同步锁加载子单元、源数据库链接子单元和标识值区间子单元,其中:
同步锁判断子单元,用于基于同步任务名称生成本地同步锁,并判断处理器中是否加载有其他同步锁,本地同步锁用于指示本地分布式处理节点正在执行同步标识值切割任务。
同步锁加载子单元,用于若处理器中不存在其他同步锁,则将本地同步锁加载至处理器中,并获取本次同步任务对应的初始同步标识值。
源数据库链接子单元,用于基于同步任务配置信息链接至源数据库,并从源数据库中获取大于初始同步标识值的多个同步标识值。
标识值区间子单元,用于获取多个同步标识值中的最大同步标识值,并基于初始同步标识值和最大同步标识值获取本次同步任务对应的同步标识值区间。
在其中一些实施例中,同步锁加载子单元还用于若本次同步任务是首次同步任务,则设置本次同步任务对应的初始同步标识值为零;若本次同步任务不是首次同步任务,则获取上次同步任务对应的终止同步标识值,并将上次同步任务对应的终止同步标识值作为本次同步任务对应的初始同步标识值。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
另外,结合图1描述的本申请实施例数据同步方法可以由数据同步设备来实现。图11为本申请实施例的数据同步设备的硬件结构示意图。
数据同步设备可以包括处理器111以及存储有计算机程序指令的存储器112。
具体地,上述处理器111可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器112可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器112可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(Solid State Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerial Bus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器112可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器112可在数据处理装置的内部或外部。在特定实施例中,存储器112是非易失性(Non-Volatile)存储器。在特定实施例中,存储器112包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(Random Access Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(ErasableProgrammable Read-Only Memory,简称为EPROM)、电可擦除PROM(Electrically ErasableProgrammable Read-Only Memory,简称为EEPROM)、电可改写ROM(ElectricallyAlterable Read-Only Memory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-AccessMemory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode DynamicRandom Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDate Out Dynamic Random Access Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器112可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器111所执行的可能的计算机程序指令。
处理器111通过读取并执行存储器112中存储的计算机程序指令,以实现上述实施例中的任意一种数据同步方法。
在其中一些实施例中,数据同步设备还可包括通信接口113和总线110。其中,如图11所示,处理器111、存储器112、通信接口113通过总线110连接并完成相互间的通信。
通信接口113用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信接口113还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线110包括硬件、软件或两者,将数据同步设备的部件彼此耦接在一起。总线110包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(Control Bus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线110可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(Front Side Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线110可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该数据同步设备可以基于获取到的同步任务执行指令,执行本申请实施例中的数据同步方法,从而实现结合图1描述的数据同步方法。
另外,结合上述实施例中的数据同步方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种数据同步方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种数据同步方法,其特征在于,所述方法包括:
获取同步任务执行指令,并基于所述同步任务执行指令获取同步任务信息,所述同步任务信息包括同步任务时间信息和同步任务配置信息;
基于所述同步任务信息确定目标节点信息,所述目标节点信息包括多个目标分布式处理节点以及每一所述目标分布式处理节点的节点名称;
将所述同步任务信息和所述目标节点信息发送至多个所述目标分布式处理节点,以使多个所述目标分布式处理节点获取增量数据,并将所述增量数据同步存储至目标数据库中。
2.根据权利要求1所述的方法,其特征在于,所述将所述同步任务信息和所述目标节点信息发送至多个所述目标分布式处理节点,以使多个所述目标分布式处理节点获取增量数据,并将所述增量数据同步存储至目标数据库中包括:
将所述同步任务信息和所述目标节点信息发送至多个所述目标分布式处理节点,以使每一所述目标分布式处理节点获取对应的目标同步标识值子区间,基于所述目标同步标识值子区间从源数据库中获取目标增量数据,并将所述目标增量数据同步存储至所述目标数据库中。
3.根据权利要求2所述的方法,其特征在于,所述目标同步标识值子区间基于所述目标分布式处理节点对同步任务对应的同步标识值区间进行切割处理得到,所述同步标识值区间包括初始同步标识值和最大同步标识值。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取每一所述目标分布式处理节点对应的同步任务执行状态;
若所有所述目标分布式处理节点对应的同步任务执行状态均为已完成,则获取本次同步任务对应的预选同步标识值;
将所述预选同步标识值作为本次同步任务对应的终止同步标识值,所述预选同步标识值表示本次同步任务对应的最大同步标识值;
将本次同步任务对应的终止同步标识值存储为下次同步任务对应的初始同步标识值。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述目标分布式处理节点的异常执行状态信息,所述异常执行状态信息包括所述目标分布式处理节点在执行同步任务时中断通信的信息;
基于所述异常执行状态信息将所述目标分布式处理节点对应的同步任务标记为禁用同步任务;
基于所述禁用同步任务对应的同步任务信息确定替补节点信息,所述替补节点信息包括多个替补分布式处理节点以及每一所述替补分布式处理节点的节点名称;
将所述禁用同步任务重新标记为重启同步任务,并将所述替补节点信息发送至多个所述替补分布式处理节点,以使多个所述替补分布式处理节点执行所述重启同步任务。
6.一种数据同步方法,其特征在于,所述方法包括:
获取目标节点信息和同步任务信息,所述目标节点信息包括多个目标分布式处理节点以及每一所述目标分布式处理节点的节点名称,所述目标分布式处理节点表示执行同步任务的分布式处理节点;所述同步任务信息包括同步任务时间信息和同步任务配置信息;
基于所述目标节点信息和所述同步任务信息获取增量数据,并将所述增量数据同步存储至目标数据库中。
7.根据权利要求6所述的方法,其特征在于,所述获取目标节点信息和同步任务信息包括:
获取目标节点信息和本地节点名称,并判断所述本地节点名称是否在所述目标节点信息中;
若所述本地节点名称在所述目标节点信息中,则获取同步任务名称,并基于所述同步任务名称创建同步任务线程;
基于所述同步任务线程从所述处理器中获取所述同步任务时间信息,并基于所述同步任务时间信息和所述同步任务名称,从所述处理器中获取同步任务配置信息。
8.根据权利要求6所述的方法,其特征在于,所述基于所述目标节点信息和所述同步任务信息获取增量数据,并将所述增量数据同步存储至目标数据库中包括:
获取本次同步任务对应的同步标识值区间,所述同步标识值区间包括初始同步标识值和最大同步标识值;
基于所述目标节点信息和预设数据切割规则对所述同步标识值区间进行切割处理,得到本次同步任务对应的同步标识值切割信息,所述同步标识值切割信息包括每一所述目标分布式处理节点对应的同步标识值子区间;
将所述同步标识值切割信息存储至所述处理器,并将所述最大同步标识值作为本次同步任务对应的预选同步标识值临时存储至所述处理器中;
获取本地节点名称,并基于所述本地节点名称从所述处理器中获取目标同步标识值子区间;
基于所述目标同步标识值子区间和所述同步任务配置信息从源数据库获取目标增量数据,并将所述目标增量数据同步存储至目标数据库中。
9.根据权利要求8所述的方法,其特征在于,所述获取本次同步任务对应的同步标识值区间包括:
基于所述同步任务名称生成本地同步锁,并判断所述处理器中是否加载有其他同步锁,所述本地同步锁用于指示本地分布式处理节点正在执行同步标识值切割任务;
若所述处理器中不存在所述其他同步锁,则将所述本地同步锁加载至所述处理器中,并获取本次同步任务对应的初始同步标识值;
基于所述同步任务配置信息链接至源数据库,并从所述源数据库中获取大于所述初始同步标识值的多个同步标识值;
获取多个同步标识值中的最大同步标识值,并基于所述初始同步标识值和所述最大同步标识值获取本次同步任务对应的同步标识值区间。
10.根据权利要求9所述的方法,其特征在于,所述获取本次同步任务对应的初始同步标识值包括:
若本次同步任务是首次同步任务,则设置本次同步任务对应的初始同步标识值为零;
若本次同步任务不是首次同步任务,则获取上次同步任务对应的终止同步标识值,并将上次同步任务对应的终止同步标识值作为本次同步任务对应的初始同步标识值。
11.一种数据同步装置,其特征在于,所述装置包括:
执行指令获取模块,用于获取同步任务执行指令,并基于所述同步任务执行指令获取同步任务信息,所述同步任务信息包括同步任务时间信息和同步任务配置信息;
目标节点确定模块,用于基于所述同步任务信息确定目标节点信息,所述目标节点信息包括多个目标分布式处理节点以及每一所述目标分布式处理节点的节点名称;
增量同步控制模块,用于将所述同步任务信息和所述目标节点信息发送至多个所述目标分布式处理节点,以使多个所述目标分布式处理节点获取增量数据,并将所述增量数据同步存储至目标数据库中。
12.一种数据同步装置,其特征在于,所述装置包括:
同步任务获取模块,用于获取目标节点信息和同步任务信息,所述目标节点信息包括多个目标分布式处理节点以及每一所述目标分布式处理节点的节点名称,所述目标分布式处理节点表示执行同步任务的分布式处理节点;所述同步任务信息包括同步任务时间信息和同步任务配置信息;
增量同步处理模块,用于基于所述目标节点信息和所述同步任务信息获取增量数据,并将所述增量数据同步存储至目标数据库中。
13.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至10中任一项所述的数据同步方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至10中任一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011610559.8A CN112765265A (zh) | 2020-12-30 | 2020-12-30 | 数据同步方法、装置、计算机设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011610559.8A CN112765265A (zh) | 2020-12-30 | 2020-12-30 | 数据同步方法、装置、计算机设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112765265A true CN112765265A (zh) | 2021-05-07 |
Family
ID=75695945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011610559.8A Pending CN112765265A (zh) | 2020-12-30 | 2020-12-30 | 数据同步方法、装置、计算机设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112765265A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360060A (zh) * | 2021-05-21 | 2021-09-07 | 维沃移动通信有限公司 | 任务实现方法、装置和电子设备 |
CN117874134A (zh) * | 2023-12-23 | 2024-04-12 | 曙光云计算集团股份有限公司 | 数据的同步方法、装置、计算机设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304473A (zh) * | 2017-12-28 | 2018-07-20 | 石化盈科信息技术有限责任公司 | 数据源之间的数据传输方法和系统 |
CN109213817A (zh) * | 2018-08-10 | 2019-01-15 | 杭州数梦工场科技有限公司 | 增量数据抽取方法、装置及服务器 |
CN109271450A (zh) * | 2018-10-10 | 2019-01-25 | 北京百度网讯科技有限公司 | 数据库同步方法、装置、服务器和存储介质 |
CN109388671A (zh) * | 2018-10-10 | 2019-02-26 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
WO2019047479A1 (zh) * | 2017-09-08 | 2019-03-14 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步系统 |
CN110175209A (zh) * | 2019-04-12 | 2019-08-27 | 中国人民财产保险股份有限公司 | 增量数据同步方法、系统、设备及存储介质 |
CN110222115A (zh) * | 2019-04-30 | 2019-09-10 | 武汉达梦数据库有限公司 | 基于表初始化分组装载的数据库同步方法及设备 |
-
2020
- 2020-12-30 CN CN202011610559.8A patent/CN112765265A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019047479A1 (zh) * | 2017-09-08 | 2019-03-14 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步系统 |
CN108304473A (zh) * | 2017-12-28 | 2018-07-20 | 石化盈科信息技术有限责任公司 | 数据源之间的数据传输方法和系统 |
CN109213817A (zh) * | 2018-08-10 | 2019-01-15 | 杭州数梦工场科技有限公司 | 增量数据抽取方法、装置及服务器 |
CN109271450A (zh) * | 2018-10-10 | 2019-01-25 | 北京百度网讯科技有限公司 | 数据库同步方法、装置、服务器和存储介质 |
CN109388671A (zh) * | 2018-10-10 | 2019-02-26 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
CN110175209A (zh) * | 2019-04-12 | 2019-08-27 | 中国人民财产保险股份有限公司 | 增量数据同步方法、系统、设备及存储介质 |
CN110222115A (zh) * | 2019-04-30 | 2019-09-10 | 武汉达梦数据库有限公司 | 基于表初始化分组装载的数据库同步方法及设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360060A (zh) * | 2021-05-21 | 2021-09-07 | 维沃移动通信有限公司 | 任务实现方法、装置和电子设备 |
WO2022242641A1 (zh) * | 2021-05-21 | 2022-11-24 | 维沃移动通信有限公司 | 任务实现方法、装置和电子设备 |
CN113360060B (zh) * | 2021-05-21 | 2024-03-05 | 维沃移动通信有限公司 | 任务实现方法、装置和电子设备 |
CN117874134A (zh) * | 2023-12-23 | 2024-04-12 | 曙光云计算集团股份有限公司 | 数据的同步方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108108463B (zh) | 基于时间片调度的同步任务处理方法及装置 | |
CN104881494B (zh) | 与Redis服务器进行数据同步的方法、装置和系统 | |
CN105653630B (zh) | 分布式数据库的数据迁移方法与装置 | |
CN111258722B (zh) | 一种集群的日志采集方法、系统、设备以及介质 | |
CN109032796B (zh) | 一种数据处理方法和装置 | |
CN108776897B (zh) | 数据处理方法、装置、服务器及计算机可读存储介质 | |
CN112765265A (zh) | 数据同步方法、装置、计算机设备和可读存储介质 | |
CN110572464A (zh) | 底层资源状态同步方法、装置、云平台系统及存储介质 | |
CN108572876B (zh) | 一种读写锁的实现方法及装置 | |
CN105468718B (zh) | 数据一致性处理方法、装置和系统 | |
CN109787884B (zh) | 一种消息推送方法和装置 | |
CN112650478A (zh) | 一种嵌入式软件开发平台动态构建方法、系统及设备 | |
CN111193622B (zh) | 一种非对称配置的管理方法、装置、设备及可读存储介质 | |
CN113656503A (zh) | 数据同步方法、装置、系统及计算机可读存储介质 | |
CN105893087A (zh) | 一种应用程序启动的方法以及装置 | |
CN111901405A (zh) | 一种多节点监控方法、装置、电子设备及存储介质 | |
CN109389306B (zh) | 一种用户订单的同步方法和装置 | |
CN113783916B (zh) | 信息同步方法及装置 | |
CN110308914B (zh) | 升级处理方法、装置、设备、系统及计算机可读存储介质 | |
CN112486468A (zh) | 基于spark内核的任务执行方法、系统和计算机设备 | |
CN112035418A (zh) | 多机房同步方法、计算设备及计算机存储介质 | |
CN111652465A (zh) | 调度处理的方法、装置、系统、计算机设备及存储介质 | |
CN113504979B (zh) | 定时器实现方法、装置、实时操作系统及存储介质 | |
CN114675954A (zh) | 任务调度方法及装置 | |
CN111447267B (zh) | 信息同步方法、装置、计算机可读存储介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210507 |
|
RJ01 | Rejection of invention patent application after publication |