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

技术编号:36208590 阅读:19 留言:0更新日期:2023-01-04 12:04
本发明专利技术提供了一种数据同步方法、装置、电子设备和存储介质,该数据同步方法包括:根据至少一个源数据表的操作日志,生成全量数据读取任务和增量数据读取任务,并通过并行的全量数据读取线程和增量数据读取线程,从至少一个源数据表中读取全量数据和增量数据;获取全量数据读取线程和增量数据读取线程读取到的待同步数据。本申请通过并行的全量数据读取线程和增量数据读取线程,能够同时从至少一个源数据表中读取全量数据和增量数据,在新增表的流程中,不用停止对日志流的读取,在进行多个源数据表同步的过程中,不会影响每个源数据表的日志采集进度,提高了数据同步的效率。提高了数据同步的效率。提高了数据同步的效率。

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


[0001]本申请实施例涉及数据处理领域,尤其涉及一种数据同步方法、装置、电子设备和存储介质。

技术介绍

[0002]随着信息化时代的发展,软件设备已经和人们的生活息息相关,各种企业系统也应运而生。绝大多数企业会根据各自经营管理用到办公系统,财务管理系统,考勤管理系统或业务管理系统等系统,为了对这些系统中的数据进行数据分析,需要实现数据的实时采集,其中,在数据同步过程需要实现全量增量数据的自动切换是需要处理的核心问题。
[0003]目前,实现数据的实时采集,是通过开源Flink CDC,复用Flink众多sink能力,使用Flink数据清理转换的能力,能够进行全量与增量数据的自动切换;能支持无锁读取、断点续传、水平扩展。
[0004]然而,目前实现数据的实时采集的方式,在新增表的流程中,需要停止Binlog日志流的读取,再进行新增表的全量数据读取。等新增表的全量数据读取完毕之后,再将之前停止的Binlog任务重新启动。这也意味着新增表会影响其他表的日志采集进度,造成了数据采集效率低的问题。

技术实现思路

[0005]本专利技术实施例提供一种数据同步方法、装置、电子设备和存储介质,以解决或者缓解现有技术中的技术问题。
[0006]本专利技术采用的技术方案为:
[0007]第一方面,本申请实施例提供了一种数据同步方法,其包括:
[0008]根据至少一个源数据表的操作日志,生成全量数据读取任务和增量数据读取任务;根据全量数据读取任务和增量数据读取任务,通过并行的全量数据读取线程和增量数据读取线程,从至少一个源数据表中读取全量数据和增量数据;获取全量数据读取线程和增量数据读取线程读取到的待同步数据,其中,待同步数据包括全量数据或增量数据;根据操作日志中操作记录的操作序列标识,将未被同步至目标数据表的待同步数据同步至目标数据表,并将已同步至目标数据表的待同步数据删除,其中,操作记录包括用于对源数据表进行更新的指令,操作序列标识用于指示不同操作记录所对应数据表更新操作的时序。
[0009]可选地,在一种实施例中,根据操作日志中操作记录的操作序列标识,将未被同步至目标数据表的待同步数据同步至目标数据表,并将已同步至目标数据表的待同步数据删除,包括:判断待同步数据所属源数据表对应的同步进度标识位是否为空,其中,不同的源数据表对应不同的同步进度标识位;若同步进度标识位为空,则将待同步数据同步至目标数据表,并将待同步数据的时序标识存储到同步进度标识位,其中,增量数据的时序标识为该增量数据所对应操作记录的操作序列标识,全量数据对应的时序标识为数据同步开始时最新操作记录的操作序列标识;若同步进度标识位不为空,则根据读取待同步数据的线程,
判断待同步数据是否为全量数据;如果待同步数据为全量数据,则将待同步数据删除。
[0010]可选地,在一种实施例中,如果待同步数据为增量数据,则判断第一时序是否位于第二时序之前,其中,第一时序为待同步数据的时序标识所指示的时序,第二时序为同步进度标识位中最新存储的时序标识所指示的时序;在第一时序位于第二时序之前时,则将待同步数据删除;在第一时序位于第二时序之后,或第一时序与第二时序相同时,将待同步数据同步至目标数据表,并将待同步数据的时序标识存储到同步进度标识位。
[0011]可选地,在一种实施例中,从至少一个源数据表中读取全量数据和增量数据,包括:通过全量数据读取线程,根据预设的第一切分数量,将源数据表中的全量数据切分为至少一个全量数据块,并对全量数据块进行依次读取;通过增量数据读取线程,根据预设的第二切分数量,将源数据表中的增量数据切分为至少一个增量数据块,并对增量数据块进行依次读取。
[0012]可选地,在一种实施例中,在一个源数据表中的全量数据同步完成后,将该源数据表对应的同步进度标识位清空。
[0013]可选地,在一种实施例中,判断全量数据读取线程是否已将前序源数据表中的全量数据读取完毕;在全量数据读取线程已将前序源数据表中的全量数据读取完毕后,通过全量数据读取线程从后序源数据表中读取全量数据。
[0014]第二方面,本申请实施例提供了一种数据同步装置,其包括:
[0015]任务生成模块,用于根据至少一个源数据表的操作日志,生成全量数据读取任务和增量数据读取任务;读取模块,用于根据全量数据读取任务和增量数据读取任务,通过并行的全量数据读取线程和增量数据读取线程,从至少一个源数据表中读取全量数据和增量数据;获取模块,用于获取所述全量数据读取线程和所述增量数据读取线程读取到的待同步数据,其中,所述待同步数据包括全量数据或增量数据;确定模块,用于根据操作日志中操作记录的操作序列标识,确定读取到的目标数据是否已被同步至目标数据表,其中,目标数据包括全量数据或增量数据,操作记录包括用于对源数据表进行更新的指令,操作序列标识用于指示不同操作记录所对应数据表更新操作的时序;若目标数据已被同步至目标数据表,则将目标数据删除;若目标数据未被同步至目标数据表,则将目标数据同步至目标数据表。
[0016]第三方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行如实施例第一方面中任一项的数据同步方法对应的操作。
[0017]第四方面,本申请实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如实施例第一方面中任一项的数据同步方法。
[0018]第五方面,本申请实施例提供了一种计算机程序产品,其包括计算机指令,计算机指令指示计算设备执行如实施例第一方面中任一项的数据同步方法对应的操作。
[0019]由上述方案可知,通过并行的全量数据读取线程和增量数据读取线程,能够同时从至少一个源数据表中读取全量数据和增量数据,在新增表的流程中,不用停止对日志流的读取,在进行多个源数据表同步的过程中,不会影响每个源数据表的日志采集进度,提高了数据同步的效率。通过操作日志中操作记录的操作序列标识,能够对待同步数据进行过
滤,保证了数据的时效性。
附图说明
[0020]图1为本申请一个实施例的数据同步方法的流程图;
[0021]图2为本申请另一个实施例的数据同步方法的流程图;
[0022]图3为本申请一个实施例的数据读取方法的流程图;
[0023]图4为本申请一个实施例的数据同步装置的示意图;
[0024]图5为本申请一个实施例的电子设备的示意图。
具体实施方式
[0025]为使本专利技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
[0026]数据同步方法
[0027]图1为本申请一个实施例的数据同步方法的流程图。如图1所示,该数据同步方法100包括如下步骤:
[0028]步骤101、根据至少一个源数据表的操本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步方法,其特征在于,包括:根据至少一个源数据表的操作日志,生成全量数据读取任务和增量数据读取任务;根据所述全量数据读取任务和所述增量数据读取任务,通过并行的全量数据读取线程和增量数据读取线程,从所述至少一个源数据表中读取全量数据和增量数据;获取所述全量数据读取线程和所述增量数据读取线程读取到的待同步数据,其中,所述待同步数据包括全量数据或增量数据;根据操作日志中操作记录的操作序列标识,将未被同步至目标数据表的待同步数据同步至所述目标数据表,并将已同步至所述目标数据表的待同步数据删除,其中,所述操作记录包括用于对所述源数据表进行更新的指令,所述操作序列标识用于指示不同所述操作记录所对应数据表更新操作的时序。2.根据权利要求1所述的方法,其特征在于,所述根据操作日志中操作记录的操作序列标识,将未被同步至目标数据表的待同步数据同步至所述目标数据表,并将已同步至所述目标数据表的待同步数据删除,包括:判断所述待同步数据所属源数据表对应的同步进度标识位是否为空,其中,不同的源数据表对应不同的同步进度标识位;若所述同步进度标识位为空,则将所述待同步数据同步至所述目标数据表,并将所述待同步数据的时序标识存储到所述同步进度标识位,其中,增量数据的时序标识为该增量数据所对应操作记录的操作序列标识,全量数据对应的时序标识为数据同步开始时最新操作记录的操作序列标识;若所述同步进度标识位不为空,则根据读取所述待同步数据的线程,判断所述待同步数据是否为全量数据;如果所述待同步数据为全量数据,则将所述待同步数据删除。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:如果所述待同步数据为增量数据,则判断第一时序是否位于第二时序之前,其中,所述第一时序为所述待同步数据的时序标识所指示的时序,所述第二时序为所述同步进度标识位中最新存储的时序标识所指示的时序;在所述第一时序位于所述第二时序之前时,则将所述待同步数据删除;在所述第一时序位于所述第二时序之后,或所述第一时序与所述第二时序相同时,将所述待同步数据同步至所述目标数据表,并将所述待同步数据的时序标识存储到所述同步进度标识位。4.根据权利要求1所述的方法,其特征在于,所述从所述至少一个源数据表中读取全量数据和增量数据,包括:通过所述全量数据读取线程,根据预设的第一切分数量,将所述源数据表中的全量数据切分为至少一个全量数据块,并对...

【专利技术属性】
技术研发人员:张浩任俊龙张天飒马兰王志刚林文辉张朝霞
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:

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

1