数据同步方法、装置、电子设备以及可读存储介质制造方法及图纸

技术编号:37438518 阅读:10 留言:0更新日期:2023-05-06 09:10
在本发明专利技术实施中提供了一种数据同步方法、装置、电子设备以及可读存储介质,该方法响应于对分布式数据库中的源数据集的数据更新操作,将执行数据更新操作的执行时间戳作为更新日志的操作标识,并写入至源数据集的源日志文件中;源日志文件记录更新日志,更新日志用于记录数据更新操作;按照操作标识将源日志文件中的更新日志,依次同步至分布式数据库中待同步的目标数据集的指定目录中,以得到目标日志文件;源数据集中所存储的数据与目标数据集中所存储的数据存在关联;基于目标日志文件对目标数据集中的数据进行更新。这样,可以按照更新日志的操作标识进行同步,使得同步的过程与各操作的执行顺序相一致,保证数据同步的准确性和一致性。性和一致性。性和一致性。

【技术实现步骤摘要】
数据同步方法、装置、电子设备以及可读存储介质


[0001]本专利技术涉及计算机
,特别是涉及一种数据同步方法、装置、电子设备以及可读存储介质。

技术介绍

[0002]随着计算机技术的逐渐发展,使用各种服务商的用户越来越多,同时,上述服务商所需要处理的数据量也大大增加,为了提高数据处理的效率,往往采用分布式数据库将较大的数据分散至各个子库或子表中,得到多个数据集。
[0003]而在这种情况下,为了确保任一数据集均可以响应用户的查询需求,需要对分布式的数据库进行数据同步。因此,如何确保数据同步的准确性成为亟需解决的技术问题。

技术实现思路

[0004]本专利技术实施例的目的在于提供一种数据同步方法、装置、电子设备以及可读存储介质,以至少解决上述问题。具体技术方案如下:
[0005]在本专利技术实施的第一方面,首先提供了一种数据同步方法,可以应用于服务器集群,该方法可以包括:
[0006]响应于对分布式数据库中的源数据集的数据更新操作,将执行所述数据更新操作的执行时间戳作为更新日志的操作标识,并写入至所述源数据集的源日志文件中;所述源日志文件记录所述更新日志,所述更新日志用于记录所述数据更新操作;
[0007]按照所述操作标识将所述源日志文件中的更新日志,依次同步至所述分布式数据库中待同步的目标数据集的指定目录中,以得到目标日志文件;所述源数据集中所存储的数据与所述目标数据集中所存储的数据存在关联;
[0008]基于所述目标日志文件对所述目标数据集中的数据进行更新。
[0009]在本专利技术实施的第二方面,提供了一种数据同步装置,可以应用于服务器集群,该装置可以包括:
[0010]时间戳写入模块,用于响应于对分布式数据库中的源数据集的数据更新操作,将执行所述数据更新操作的执行时间戳作为更新日志的操作标识,并写入至所述源数据集的源日志文件中;所述源日志文件记录所述更新日志,所述更新日志用于记录所述数据更新操作;
[0011]同步模块,用于按照所述操作标识将所述源日志文件中的更新日志,依次同步至所述分布式数据库中待同步的目标数据集的指定目录中,以得到目标日志文件;所述源数据集中所存储的数据与所述目标数据集中所存储的数据存在关联;
[0012]更新模块,用于基于所述目标日志文件对所述目标数据集中的数据进行更新。
[0013]本专利技术实施的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0014]存储器,用于存放计算机程序;
[0015]处理器,用于进行存储器上所存放的程序时,进行上述任一所述的数据同步方法。
[0016]在本专利技术实施的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机进行上述任一所述的数据同步方法。
[0017]在本专利技术实施的第五方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机进行上述任一所述的数据同步方法。
[0018]本专利技术实施例响应于对分布式数据库中的源数据集的数据更新操作,将执行所述数据更新操作的执行时间戳作为更新日志的操作标识,并写入至所述源数据集的源日志文件中;所述源日志文件记录所述更新日志,所述更新日志用于记录所述数据更新操作;按照所述操作标识将所述源日志文件中的更新日志,依次同步至所述分布式数据库中待同步的目标数据集的指定目录中,以得到目标日志文件;所述源数据集中所存储的数据与所述目标数据集中所存储的数据存在关联;基于所述目标日志文件对所述目标数据集中的数据进行更新。这样,通过将数据更新操作的执行时间戳作为更新日志的操作标识,并按照操作标识将源日志文件中的更新日志依次同步至分布式数据库中需要进行数据同步的目标数据集的指定目录中,可以使得目标数据集可以得到按照操作标识进行记录的目标日志文件,使得日志同步的过程与各数据更新操作的执行顺序相一致,进一步地,根据目标日志文件对目标数据集中的数据进行更新,可以使得数据更新的过程与各数据更新操作相一致,进而保证数据同步的准确性和一致性

附图说明
[0019]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0020]图1是本专利技术实施例提供的一种数据同步方法的步骤流程图;
[0021]图2是本专利技术实施例提供的一种场景示意图;
[0022]图3是本专利技术实施例提供的另一种数据同步方法的步骤流程图;
[0023]图4是本专利技术实施例提供的一种数据同步装置的结构框图。
具体实施方式
[0024]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行描述。
[0025]图1是本专利技术实施例提供的一种数据同步方法的步骤流程图,可以应用于服务器集群,如图1所示,该方法可以包括如下步骤:
[0026]步骤101、响应于对分布式数据库中的源数据集的数据更新操作,将执行所述数据更新操作的执行时间戳作为更新日志的操作标识,并写入至所述源数据集的源日志文件中;所述源日志文件记录所述更新日志,所述更新日志用于记录所述数据更新操作。
[0027]其中,上述分布式数据库指的是分布式场景的数据库,具体的,可以是将一个数据库中的数据进行拆分,通过分库或分表的形式拆分为多个子数据库或子数据表,得到多个数据集。相应地,上述服务器集群可以包含若干个服务器节点,各服务器节点上可以存储不同的数据集。可以理解的,各服务器节点上存储的数据集中的数据是存在关联的。
[0028]其中,上述源数据集指的是发生数据更新操作的数据集,上述数据更新操作指的
是对数据进行修改的操作,可以对应于一个事务或事件,可以以日志的形式记录所发生的数据更新操作,得到一条更新日志。具体的,上述数据更新操作可以是对源数据集中某一项数据进行增加或减少的操作,可以是在接收到数据更新指令的情况下触发的,数据更新指令中可以包含更新对象、更新属性以及更新量,可以根据实际的情况不同而不同。
[0029]相应地,上述更新日志中可以包含数据更新操作的更新对象、更新属性以及更新量,进一步地,本专利技术实施例可以应用于关系型数据库管理系统(MySQL),进而上述更新日志中可以记录有执行此次数据更新操作所对应的MySQL语句。其中,上述源日志文件指的是记录源数据集的更新日志的文件,通常为二进制文件(可以是binlog日志)。
[0030]其中,上述执行时间戳指的是发生数据更新操作的时间戳,具体的,可以采用一个全局时钟服务器作为时间戳服务器,服务器集群中的所有服务器均可以按照需求通过时间戳服务器生成相应的时间戳,得到上述执行时间戳。进一步地,时间戳的精确度通常大于毫秒级别,因而各操作的执行时间戳往往是唯一的,因而本专利技术实施例中可以将数据更新操作的执行时间戳作为此次数据更新操作的唯一标识,即,全局事务标识,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步方法,应用于服务器集群,其特征在于,所述方法包括:响应于对分布式数据库中的源数据集的数据更新操作,将执行所述数据更新操作的执行时间戳作为更新日志的操作标识,并写入至所述源数据集的源日志文件中;所述源日志文件记录所述更新日志,所述更新日志用于记录所述数据更新操作;按照所述操作标识将所述源日志文件中的更新日志,依次同步至所述分布式数据库中待同步的目标数据集的指定目录中,以得到目标日志文件;所述源数据集中所存储的数据与所述目标数据集中所存储的数据存在关联;基于所述目标日志文件对所述目标数据集中的数据进行更新。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:创建包含多个线程的线程池,并基于所述多个线程将所述目标日志文件中的更新日志写入至预设消息队列中;读取所述预设消息队列中的更新日志,以基于所述更新日志创建查询索引;在接收到查询对象对所述分布式数据库的查询指令的情况下,基于所述查询索引进行查询。3.根据权利要求1所述的方法,其特征在于,所述数据更新操作用于指示对所述源数据集中的第一对象的目标属性的数据进行更新;所述基于所述目标日志文件对所述目标数据集中的数据进行更新,包括:获取所述目标数据集中的目标对象的所述目标属性对应的目标数据;所述目标对象是所述目标数据集中包含所述第一对象的对象;按照所述目标日志文件中各更新日志的操作标识所表征的顺序,基于所述目标日志文件中的更新日志依次对所述目标数据进行更新。4.根据权利要求2所述的方法,其特征在于,所述服务器集群包含实时节点,所述实时节点用于获取实时数据;所述在接收到查询对象对所述分布式数据库的查询指令的情况下,基于所述查询索引进行查询,包括:基于所述服务器集群中的管理节点获取所述查询指令中携带的时间戳数据;基于所述管理节点在所述时间戳数据表征所述查询指令用于查询实时数据的情况下,向所述实时节点转发所述查询指令;由所述实时节点基于所述查询索引获取所述查询指令指示查询的数据作为第一查询结果,并将所述第一查询结果返回至所述管理节点;由所述管理节点将所述第一查询结果输出至所述查询对象。5.根据权利要求4所述的方法,其特征在于,所述服务器集群还包含历史节点,所述历史节点用于获取历史数据;所述方法还包括:基于所述管理节点在所述时间戳数据表征所述查询指令用于查询历史数据的情况下,向历史节点转发所述查询指令;由所述历史节点基于所述查询索引获取所述时间戳对应的历史数据,作为第二查询结果,并将所述第二查询结果返回至所述管理节点;由所述管理节点将所述第二查询结果输出至所述查询对象。6.根据权利要求1所述的方法,其特征在于,所述按照所述操作标识将所述源日志文件中的更新日志,依次同步至所述分布式数据库中待同步的目标数据集的指定目录中,包括:
根据所述源日志文件中的各条更新日志的操作标识,确定各条所述更新日志所记录的更新操作的执行顺序;按照所述执行顺序,依次复制所述源日志文件中的更新日志至所述目标数据集的指定目录中。7.根据权利要求6所述的方法,其特征在于,所述按照所述操作标识将所述源日志文件中的更新日志,依次同步至所述分布式数据库中待同步的目标数据集的指定目录中之前,所述方法还包括:获取所述源日志文件的元数据;将所述元数据备份至指定位置;所述确定各条所述更新日志所记录的更新操作的执行顺序之前,所述方法还包括:在未成功读取到所述源日志文件的情况下,基于所述指定位置的元数据重新读取所述源日志文件。...

【专利技术属性】
技术研发人员:张浩魏兴国范景新王晓昌丁鹏彭程卢雨
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1