数据同步方法技术

技术编号:39495760 阅读:5 留言:0更新日期:2023-11-24 11:22
本申请涉及大数据技术领域,特别是涉及一种数据同步方法

【技术实现步骤摘要】
数据同步方法、装置、计算机设备和存储介质


[0001]本申请涉及大数据
,特别是涉及一种数据同步方法

装置

计算机设备

存储介质和计算机程序产品


技术介绍

[0002]数据同步技术是指将一个数据库的数据同步到另一个数据库

传统的数据同步技术中,通常采用数据库产品提供的数据同步方案

例如
Oracle(
全球最大的信息管理软件及服务供应商
)

OGG(
一种基于日志的结构化数据复制软件
)

MySQL(
一种关系型数据库管理系统
)
的数据复制以及迪思杰提供的第三方数据同步方案,这些方案虽然在细节上有所不同,但是本质上都是通过数据库底层的数据日志文件进行数据同步

[0003]然而,通过数据日志文件进行数据同步必须按顺序执行,虽然能够保证时序性,但是,如果在短时间内产生大量的数据日志,就会出现同步时间过长,数据日志文件堆积的问题,进而导致同步延迟


技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种能够高并发的数据同步方法

装置

计算机设备

计算机可读存储介质和计算机程序产品

[0005]第一方面,本申请提供了一种数据同步方法

所述方法包括:<br/>[0006]获取目标消息队列中的待处理消息,所述待处理消息包括源数据库执行成功的目标操作的执行时间戳,以及与所述目标操作对应的至少一条操作记录;
[0007]对所述待处理消息进行解析,得到至少一条操作记录;
[0008]针对每条所述操作记录,确定所述操作记录对应的主题和目标执行时间戳;
[0009]根据所述主题和所述目标执行时间戳,对所述操作记录分组并按序存储;
[0010]在待同步数据库并行执行各分组中操作记录所对应的操作,更新所述待同步数据库

[0011]在其中一个实施例中,所述方法还包括:获取对所述源数据库的操作;当确定所述操作为被所述源数据库执行成功的目标操作时,确定所述目标操作的执行时间戳;将所述目标操作封装成待处理消息,根据所述待处理消息生成目标消息队列

[0012]在其中一个实施例中,所述获取对所述源数据库的操作,包括:通过预设的拦截器拦截对所述源数据库的操作

[0013]在其中一个实施例中,所述确定所述操作记录对应的主题和目标执行时间戳,包括:根据所述操作记录确定操作数据表的主键,将所述操作数据表的主键作为所述操作记录的主题;确定与所述操作记录对应的目标操作的执行时间戳,将所述目标操作的执行时间戳作为所述操作记录的目标执行时间戳

[0014]在其中一个实施例中,所述根据所述主题和所述目标执行时间戳,对所述操作记录分组并按序存储,包括:根据所述主题对所述操作记录进行分组,得到多个分组,每个所
述分组中包括至少一个操作记录;根据所述分组中至少一个操作记录分别对应的所述目标执行时间戳,对所述分组中的至少一个操作记录进行排序,得到排序后的分组

[0015]在其中一个实施例中,所述在待同步数据库并行执行各分组中操作记录所对应的操作,包括:针对各分组,在所述待同步数据库并行执行;针对并行执行的每个所述分组,根据所述分组中所述操作记录对应的目标执行时间戳的顺序,按序执行所述分组中所述操作记录所对应的操作

[0016]第二方面,本申请还提供了一种数据同步装置

所述装置包括:
[0017]消息获取模块,用于获取目标消息队列中的待处理消息,所述待处理消息包括源数据库执行成功的目标操作的执行时间戳,以及与所述目标操作对应的至少一条操作记录;
[0018]消息解析模块,用于对所述待处理消息进行解析,得到至少一条操作记录;
[0019]操作确定模块,用于针对每条所述操作记录,确定所述操作记录对应的主题和目标执行时间戳;
[0020]分组模块,用于根据所述主题和所述目标执行时间戳,对所述操作记录分组并按序存储;
[0021]更新模块,用于在待同步数据库执行各分组中操作记录所对应的操作,更新所述待同步数据库

[0022]第三方面,本申请还提供了一种计算机设备

所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上第一方面所述方法的步骤

[0023]第四方面,本申请还提供了一种计算机可读存储介质

所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面所述方法的步骤

[0024]第五方面,本申请还提供了一种计算机程序产品

所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面所述方法的步骤

[0025]上述数据同步方法

装置

计算机设备

存储介质和计算机程序产品,通过获取目标消息队列中的待处理消息,对待处理消息进行解析,得到至少一条操作记录,并根据主题和目标执行时间戳,对操作记录分组并按序存储,从而使得在对待同步数据库进行同步处理时,可以对多个分组进行并发处理,以实现高数据量下的无延迟同步

附图说明
[0026]图1为一个实施例中数据同步方法的流程示意图;
[0027]图2为一个实施例中执行各分组中操作记录步骤的流程示意图;
[0028]图3为一个实施例中目标消息队列的生成步骤的流程示意图;
[0029]图4为另一个实施例中数据同步方法的流程示意图;
[0030]图5为一个实施例中数据同步装置的结构框图;
[0031]图6为一个实施例中计算机设备的内部结构图

具体实施方式
[0032]为了使本申请的目的

技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明

应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请

[0033]在一个实施例中,如图1所示,提供了一种数据同步方法,以该方法应用于服务器为例进行说明,具体可以包括以下步骤:
[0034]步骤
102
,获取目标消息队列中的待处理消息

[0035]其中,待处理消息是用于进行数据同步的消息,目标消息队列则是用于存储待处理消息的消息队列

具体地,待处理消息包括源数据库执行成功的目标操作的执行时间戳,以及与目标操作对应的至少一条本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种数据同步方法,其特征在于,所述方法包括:获取目标消息队列中的待处理消息,所述待处理消息包括源数据库执行成功的目标操作的执行时间戳,以及与所述目标操作对应的至少一条操作记录;对所述待处理消息进行解析,得到至少一条操作记录;针对每条所述操作记录,确定所述操作记录对应的主题和目标执行时间戳;根据所述主题和所述目标执行时间戳,对所述操作记录分组并按序存储;在待同步数据库并行执行各分组中操作记录所对应的操作,更新所述待同步数据库
。2.
根据权利要求1所述的方法,其特征在于,所述方法还包括:获取对所述源数据库的操作;当确定所述操作为被所述源数据库执行成功的目标操作时,确定所述目标操作的执行时间戳;将所述目标操作封装成待处理消息,根据所述待处理消息生成目标消息队列
。3.
根据权利要求2所述的方法,其特征在于,所述获取对所述源数据库的操作,包括:通过预设的拦截器拦截对所述源数据库的操作
。4.
根据权利要求1至3任一项所述的方法,其特征在于,所述确定所述操作记录对应的主题和目标执行时间戳,包括:根据所述操作记录确定操作数据表的主键,将所述操作数据表的主键作为所述操作记录的主题;确定与所述操作记录对应的目标操作的执行时间戳,将所述目标操作的执行时间戳作为所述操作记录的目标执行时间戳
。5.
根据权利要求1至3任一项所述的方法,其特征在于,所述根据所述主题和所述目标执行时间戳,对所述操作记录分组并按序存储,包括:根据所述主题对所述操作记录进行分组,得到多个分组,每个所述分组中包括至少一个操作记录;根据所述分组中至少一个操作记录分别对应的...

【专利技术属性】
技术研发人员:杨晗琦唐成山赵立才郑骏
申请(专利权)人:建信金融科技有限责任公司
类型:发明
国别省市:

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

1