CN115292416A - 数据表同步方法、装置、设备及存储介质 - Google Patents
数据表同步方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115292416A CN115292416A CN202210989399.5A CN202210989399A CN115292416A CN 115292416 A CN115292416 A CN 115292416A CN 202210989399 A CN202210989399 A CN 202210989399A CN 115292416 A CN115292416 A CN 115292416A
- Authority
- CN
- China
- Prior art keywords
- task
- data table
- tasks
- incremental
- full
- 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
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
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据表同步方法、装置、设备及存储介质,可应用于大数据领域,该方法包括:在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务;其中,所述增量任务用于指示对所述增量任务对应的数据表进行增量更新处理;所述第一导出时间为所述增量任务的生成时间;在各数据表对应的待处理的全量任务中,确定第二导出时间最大的全量任务为第二任务;其中,所述全量任务用于指示对所述全量任务指示的数据表进行全量更新处理;所述第二导出时间为所述全量任务的生成时间;若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表相同,则执行所述第二任务。通过上述方法,提高了数据表的同步效率。
Description
技术领域
本申请涉及大数据技术,尤其涉及一种数据表同步方法、装置、设备及存储介质。
背景技术
目前,随着信息技术的不断发展,企业人员通常需要对大量数据表同步,以为后续的业务分析提供数据基础。
相关技术中,当电子设备接收到多个增量同步任务以及全量同步任务时,会基于各个任务的生成时间的先后顺序依次执行每一个接收到的任务,导致数据同步效率较低。
因此,需要提供一种数据表的同步方法,来提高数据表的同步效率。
发明内容
本申请提供一种数据表同步方法、装置、设备及存储介质,用以解决相关技术中,数据表的同步效率较低的问题。
第一方面,本申请提供一种数据表同步方法,包括:
在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务;其中,所述增量任务用于指示对所述增量任务对应的数据表进行增量更新处理;所述第一导出时间为所述增量任务的生成时间;
在各数据表对应的待处理的全量任务中,确定第二导出时间最大的全量任务为第二任务;其中,所述全量任务用于指示对所述全量任务指示的数据表进行全量更新处理;所述第二导出时间为所述全量任务的生成时间;
若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表相同,则执行所述第二任务。
在一些实施例中,若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表相同,则执行所述第二任务,包括:
若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表相同,则确定所述第二任务所指示的数据表对应的已完成的全量任务为第二任务组;
若确定所述第二任务组中不存在第二导出时间大于所述第二任务的第二导出时间的全量任务,则执行所述第二任务。
在一些实施例中,若确定所述第二任务组中不存在第二导出时间大于所述第二任务的第二导出时间的全量任务,则执行所述第二任务,包括:
若确定所述第二任务组中不存在第二导出时间大于所述第二任务的第二导出时间的全量任务,且当前处于处理状态的全量任务以及当前处于处理状态的增量任务中均不包含所述第二任务所指示的数据表对应的全量任务和增量任务,则执行所述第二任务。
在一些实施例中,所述方法还包括:
若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表不相同,则执行所述第一任务。
在一些实施例中,所述增量任务具有任务序号,所述任务序号用于指示在所述增量任务指示的数据表的全部增量任务中,所述增量任务的生成顺序;若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表不相同,则执行所述第一任务,包括:
若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表不相同,则确定所述第一任务所指示的数据表对应的已完成的增量任务;
基于所述第一任务的任务序号,确定所述第一任务的任务序号的前一任务序号,其中,所述前一任务序号为在所述数据表对应的已生成的增量任务中,所述第一任务的生成次序的前一生成顺序所对应的增量任务的任务序号;
若确定所述已完成的增量任务中包括具有所述前一任务序号的增量任务,则执行所述第一任务。
在一些实施例中,所述方法还包括:
若确定所述已完成的增量任务中不包括具有所述前一任务序号的增量任务,则重复执行所述在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务的步骤。
在一些实施例中,若确定所述已完成的增量任务中不包括具有所述前一任务序号的增量任务,则重复执行所述在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务的步骤,包括:
若确定所述已完成的增量任务中不包括具有所述前一任务序号的增量任务,则将当前时间与所述第一任务的接收时间进行求差处理,得到时间差值;
若所述时间差值小于等于预设阈值,则重复执行所述在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务的步骤。
在一些实施例中,所述方法还包括:
若所述时间差值大于所述预设阈值,则执行所述第一任务。
在一些实施例中,若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表不相同,则确定所述第一任务所指示的数据表对应的已完成的增量任务,包括:
若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表不相同,则确定所述第一任务所指示的数据表对应的已完成的全量任务为第一任务组;
若确定所述第一任务组中不存在第二导出时间大于所述第一任务的第一导出时间的全量任务,则确定所述第一任务所指示的数据表对应的已完成的增量任务。
在一些实施例中,所述方法还包括:
若确定所述第一任务组中存在第二导出时间大于所述第一任务的第一导出时间的全量任务,则将所述第一任务的状态设置为已处理状态。
在一些实施例中,若确定所述第一任务组中不存在第二导出时间大于所述第一任务的第一导出时间的全量任务,则确定所述第一任务所指示的数据表对应的已完成的增量任务,包括:
若确定所述第一任务组中不存在第二导出时间大于所述第一任务的第一导出时间的全量任务,且当前处于处理状态的全量任务以及当前处于处理状态的增量任务中均不包含所述第一任务所指示的数据表对应的全量任务和增量任务,则确定所述第一任务所指示的数据表对应的已完成的增量任务。
在一些实施例中,所述第一任务具有待更新的数据;所述数据表具有主键字段;所述执行所述第一任务包括:
在所述第一任务的待更新的数据中,确定所述第一任务指示的数据表的主键字段所对应的更新数据;
若确定所述数据表中包括所述更新数据,则将所述数据表中所述更新数据所在行的数据替换为所述待更新数据;
若确定所述数据表中不包括所述更新数据,则将所述待更新的数据添加至所述数据表中。
在一些实施例中,所述第二任务包括待更新的数据;执行所述第二任务包括:
删除所述第二任务所指示的数据表中的数据,并将所述第二任务中的待更新的数据写入所述数据表中。
第二方面,本申请提供一种数据表同步装置,包括:
第一确定单元,用于在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务;其中,所述增量任务用于指示对所述增量任务对应的数据表进行增量更新处理;所述第一导出时间为所述增量任务的生成时间;
第二确定单元,用于在各数据表对应的待处理的全量任务中,确定第二导出时间最大的全量任务为第二任务;其中,所述全量任务用于指示对所述全量任务指示的数据表进行全量更新处理;所述第二导出时间为所述全量任务的生成时间;
第一执行单元,用于若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表相同,则执行所述第二任务。
在一些实施例中,所述第一执行单元,包括:
第一确定模块,用于若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表相同,则确定所述第二任务所指示的数据表对应的已完成的全量任务为第二任务组;
第一执行模块,用于若确定所述第二任务组中不存在第二导出时间大于所述第二任务的第二导出时间的全量任务,则执行所述第二任务。
在一些实施例中,所述第一执行模块,具体用于:
若确定所述第二任务组中不存在第二导出时间大于所述第二任务的第二导出时间的全量任务,且当前处于处理状态的全量任务以及当前处于处理状态的增量任务中均不包含所述第二任务所指示的数据表对应的全量任务和增量任务,则执行所述第二任务。
在一些实施例中,所述装置还包括:
第二执行单元,用于若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表不相同,则执行所述第一任务。
在一些实施例中,所述增量任务具有任务序号,所述任务序号用于指示在所述增量任务指示的数据表的全部增量任务中,所述增量任务的生成顺序;所述第二执行单元,包括:
第二确定模块,用于若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表不相同,则确定所述第一任务所指示的数据表对应的已完成的增量任务;
第三确定模块,用于基于所述第一任务的任务序号,确定所述第一任务的任务序号的前一任务序号,其中,所述前一任务序号为在所述数据表对应的已生成的增量任务中,所述第一任务的生成次序的前一生成顺序所对应的增量任务的任务序号;
第二执行模块,用于若确定所述已完成的增量任务中包括具有所述前一任务序号的增量任务,则执行所述第一任务。
在一些实施例中,所述装置还包括:
第三执行模块,用于若确定所述已完成的增量任务中不包括具有所述前一任务序号的增量任务,则重复执行所述在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务的步骤。
在一些实施例中,所述第三执行模块,具体用于:
若确定所述已完成的增量任务中不包括具有所述前一任务序号的增量任务,则将当前时间与所述第一任务的接收时间进行求差处理,得到时间差值;
若所述时间差值小于等于预设阈值,则重复执行所述在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务的步骤。
在一些实施例中,所述第三执行模块还用于
若所述时间差值大于所述预设阈值,则执行所述第一任务。
在一些实施例中,所述第二确定模块,具体用于:
若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表不相同,则确定所述第一任务所指示的数据表对应的已完成的全量任务为第一任务组;
若确定所述第一任务组中不存在第二导出时间大于所述第一任务的第一导出时间的全量任务,则确定所述第一任务所指示的数据表对应的已完成的增量任务。
在一些实施例中,所述第二确定模块,还用于;若确定所述第一任务组中存在第二导出时间大于所述第一任务的第一导出时间的全量任务,则将所述第一任务的状态设置为已处理状态。
在一些实施例中,所述第二确定模块在执行若确定所述第一任务组中不存在第二导出时间大于所述第一任务的第一导出时间的全量任务,则确定所述第一任务所指示的数据表对应的已完成的增量任务时,具体用于:
若确定所述第一任务组中不存在第二导出时间大于所述第一任务的第一导出时间的全量任务,且当前处于处理状态的全量任务以及当前处于处理状态的增量任务中均不包含所述第一任务所指示的数据表对应的全量任务和增量任务,则确定所述第一任务所指示的数据表对应的已完成的增量任务。
在一些实施例中,所述第一任务具有待更新的数据;所述数据表具有主键字段;所述第二执行单元在执行所述第一任务,具体用于:
在所述第一任务的待更新的数据中,确定所述第一任务指示的数据表的主键字段所对应的更新数据;若确定所述数据表中包括所述更新数据,则将所述数据表中所述更新数据所在行的数据替换为所述待更新数据;若确定所述数据表中不包括所述更新数据,则将所述待更新的数据添加至所述数据表中。
在一些实施例中,所述第二任务包括待更新的数据;所述第一执行单元在执行所述第二任务时,具体用于:
删除所述第二任务所指示的数据表中的数据,并将所述第二任务中的待更新的数据写入所述数据表中。
第三方面,本申请提供一种电子设备,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器,用于根据所述可执行指令执行如第一方面任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面任一项所述的方法。
第五方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现第一方面中任一项所述的方法。
本申请提供的数据表同步方法、装置、设备及存储介质,通过在电子设备中各数据表对应的待处理的增量任务中,选择第一导出时间最小的增量任务,并在个数据表对应的待处理的全量任务中选择第二导出时间最大的全量任务,并判断选择出的全量任务与增量任务是否对应为同一数据表,若为同一数据表,则可以直接执行第二任务。可以理解的是,当二者所对应的为同一数据表时,此时可以优先执行第二任务,而第一导出时间早于该第二任务对应的第二导出时间该数据表所对应的待处理的增量任务则可以忽略不执行,进而提高了数据表的同步效率。并且,本实施例中将多个数据表所对应的待处理的增量任务依据各待处理的增量任务的第一导出时间进行混合排序,多个数据表的更新可以基于主库端的电子设备所生成的任务顺序进行更新,相比于将各数据表对应的增量任务分开排序的方式,采用混合排序的方式可以避免电子设备中多个数据表的更新频率不一致时,更新频率较低的数据表无法及时更新的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请提供的一种应用场景示意图;
图2为本申请实施例提供的一种数据表同步方式的流程示意图;
图3为本申请实施例提供的第二种数据表同步方法的流程示意图;
图4为本申请实施例提供的第三种数据表同步方式的流程示意图;
图5为本申请实施例提供的一种数据表同步装置的结构示意图;
图6为本申请实施例提供的第二种数据表同步装置的结构示意图;
图7为本申请实施例中提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
目前,在电子设备进行数据同步时,主库端的电子设备可以向备库端的电子设备发送增量任务或者全量任务的方式,实现主库端与备库端的数据表的同步。图1为本申请提供的一种应用场景示意图。如图所示,图1中,当主库端的电子设备可以通过定时检查主库端所存储的数据的变化情况,将有变化的数据生成文件,并将生成的文件作为增量任务下发给备库端的电子文件。此外,主库端的电子设备还可以定时的将电子设备中的全量数据生成文件下发给备库端的电子设备,以便备库端的电子设备在接收到全量任务之后,可以进行全量的数据同步操作。例如,当备库端此时有全量任务1、全量任务2、增量任务1、增量任务2、以及增量任务3还未执行时,此时,备库端则会基于上述5个任务的生成时间,即如图所示的全量任务1、增量任务1、增量任务2、增量任务3、全量任务2的排序方式依次执行。
然而,在主库端向备库端下发任务时,当备库端的电子设备接收到多个增量同步任务以及全量同步任务时,备库端的电子设备会基于各个任务的生成时间的先后顺序依次执行每一个接收到的任务,导致数据同步效率较低。
举例来说,10时0分开始主库端的电子设备每10分钟生成一个全量文件,截止到20点0分共有60个全量任务生成。在此期间,备库端的电子设备由于设备升级期间停机,20点0分启动后需要按序处理这60个全量文件,短时间内数据库产生大量读写操作。但实际对于全量文件而言,按序处理60个全量任务和只处理最新的全量任务结果是一致的,若备库端的电子设备仍然采用按序处理的方式,则导致数据同步的效率较低。
本申请提供的数据表同步方法、装置、设备及存储介质,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的一种数据表同步方式的流程示意图。如图2所示,该方法包括以下步骤:
S201、在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务;其中,增量任务用于指示对增量任务对应的数据表进行增量更新处理;第一导出时间为增量任务的生成时间。
示例性地,本实施例的执行主体可以为数据表同步装置,该数据表同步装置可以为电子设备等。本实施例中以电子设备为例,进行介绍。
本实施例中,电子设备中所接收到的增量任务具有第一导出时间,其中,增量任务的第一导出时间即为该增量任务的生成时间。此外,增量任务用于指示对该增量任务所指示的数据表进行增量更新处理。
在数据表的同步过程中,当电子设备接收到其余电子设备发送的增量任务或者全量任务时,此时,电子设备会在该电子设备中的还未处理的增量任务(即,待处理的增量任务)中,选择出第一导出时间最小的增量任务,并将该第一导出时间最小的增量任务作为第一任务。其中,第一导出时间最小,即表征该增量任务在待处理的增量任务中的生成时间最早。
需要说明的是,本实施例中待处理的增量任务中包括电子设备中各数据表对应的未处理的增量任务。
S202、在各数据表对应的待处理的全量任务中,确定第二导出时间最大的全量任务为第二任务;其中,全量任务用于指示对全量任务指示的数据表进行全量更新处理;第二导出时间为全量任务的生成时间。
示例性地,本实施例中电子设备中所接收到的全量任务具有第二导出时间,其中,全量任务的第二导出时间即为该增量任务的生成时间。此外,全量任务用于指示对该全量任务所指示的数据表进行全量更新处理。其中,第二导出时间最大,即表征该全量任务在待处理的全量任务中的生成时间最晚。
在数据表同步过程中,当电子设备接收到其余电子设备发送的增量任务或者全量任务时,此时,电子设备还会从电子设备中未处理的全量任务中,将第二导出时间最大的全量任务作为第二任务。
需要说明的是,本实施例中待处理的全量任务中包括电子设备中各数据表对应的未处理的全量任务。此外,本实施例中对步骤S201与步骤S202的执行顺序不做具体限制,也可以优先执行步骤S202,之后再执行步骤S201。
S203、若确定第一任务所指示的数据表与第二任务所指示的数据表相同,则执行第二任务。
示例性地,当电子设备确定出第一任务以及第二任务之后,会判断第一任务所指示的数据表和第二任务所指示的数据表的是否相同。
一个示例中,电子设备所接收到的增量任务具有该增量任务所指示的数据表的数据表标识,此外,全量任务中也具有该全量任务所指示的数据表的数据表标识。进而,可以通过比对第一任务中的数据表标识以及第二任务中的数据表标识,来确定第一任务与第二任务所指示的数据表是否为同一数据表。
当电子设备确定第一任务与第二任务所指示的数据表相同时,则此时,电子设备可以执行第二任务,即进行全量更新处理。
本实施例中,通过在电子设备中各数据表对应的待处理的增量任务中,选择第一导出时间最小的增量任务,并在个数据表对应的待处理的全量任务中选择第二导出时间最大的全量任务,并判断选择出的全量任务与增量任务是否对应为同一数据表,若为同一数据表,则可以直接执行第二任务。可以理解的是,当二者所对应的为同一数据表时,此时可以优先执行第二任务,而第一导出时间早于该第二任务对应的第二导出时间该数据表所对应的待处理的增量任务则可以忽略不执行,进而提高了数据表的同步效率。并且,本实施例中将多个数据表所对应的待处理的增量任务依据各待处理的增量任务的第一导出时间进行混合排序,多个数据表的更新可以基于主库端的电子设备所生成的任务顺序进行更新,相比于将各数据表对应的增量任务分开排序的方式,采用混合排序的方式可以避免电子设备中多个数据表的更新频率不一致时,更新频率较低的数据表无法及时更新的问题。
图3为本申请实施例提供的第二种数据表同步方法的流程示意图,如图3所示,该方法包括以下步骤:
S301、在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务;其中,增量任务用于指示对增量任务对应的数据表进行增量更新处理;第一导出时间为增量任务的生成时间。
S302、在各数据表对应的待处理的全量任务中,确定第二导出时间最大的全量任务为第二任务;其中,全量任务用于指示对全量任务指示的数据表进行全量更新处理;第二导出时间为全量任务的生成时间。
示例性地,步骤S301与步骤S302的具体原理可以参见步骤S201与步骤S202,此处不再赘述。
S303、若确定第一任务所指示的数据表与第二任务所指示的数据表相同,则确定第二任务所指示的数据表对应的已完成的全量任务为第二任务组。
示例性地,本实施例中的执行主体以电子设备为例,进行介绍。
本实施例中,数据表在数据同步时,会记录该数据表对应的已完成的全量任务,即,电子设备中会记录有数据表的历史更新记录,该历史更新记录中可存储有已经对该数据表进行过处理的全量任务。
当电子设备确定出第一任务与第二任务所指示的数据表为同一数据表时,此时,可以在已经处理过的全量任务中,查找该数据表对应的全量任务,并将该数据表对应的已完成的全量任务作为第二任务组,其中,第二任务组中包括该数据表对应的当前已完成的全部全量任务。
S304、若确定第二任务组中不存在第二导出时间大于第二任务的第二导出时间的全量任务,则执行第二任务。
示例性地,在确定出第二任务组之后,比对第二任务组中所包含的已完成的全量任务的第二导出时间,以及第二任务所对应的第二导出时间,若第二任务组中所包含的各全量任务的第二导出时间均小于第二任务的第二导出时间,则此时,可以直接执行该第二任务。
若第二任务组中所包含的全量任务中,存在至少一个已完成的全量任务所对应的第二导出时间大于等于第二任务的第二导出时间,则表明第二导出时间晚于该第二任务的第二导出时间的全量任务已经被该电子设备执行,此时,无需再次执行该第二任务。
可以理解的是,在执行第二任务之前,还可以通过比较该数据表对应的已经完成的全量任务的第二导出时间与第二任务的第二导出时间,若第二任务的第二导出时间大于第二任务组中各全量任务对应的第二导出时间,则可以直接执行该第二任务;若第二任务组中存在至少一个全量任务对应的第二导出时间大于等于第二任务的第二导出时间,则表明此时该数据表中所包含的全部数据已经被晚于第二任务对应的第二导出时间的全量任务更新处理过,因此,此时无需在对该数据表执行第二任务。通过本实施例提供的数据表的更新方式,提高了数据表更新的准确性,并且提高的数据表的更新效率。
一个示例中,在执行步骤S304时,也可以通过以下方法实现:
若确定第二任务组中不存在第二导出时间大于第二任务的第二导出时间的全量任务,且当前处于处理状态的全量任务以及当前处于处理状态的增量任务中均不包含第二任务所指示的数据表对应的全量任务和增量任务,则执行第二任务。
示例性地,本实施例中,电子设备中可以设置多个处理进程,每一处理进程仅能够对一个数据表进行全量或者增量更新处理,并且,相同时刻下各处理进程所对应的处理的数据表不同。因此,当确定第二任务组中不存在第二导出时间大于第二任务的第二导出时间的全量任务时,此时,还需要确定当前是否有正在对该数据表进行处理的进程。即,需要在当前处于处理状态的全量任务以及当前处于处理状态的增量任务中,确定是否包含该数据表对应的全量任务或者增量任务。若当前处于处理状态的全量任务以及当前处于处理状态的增量任务中均不包含第二任务所指示的数据表对应的全量任务和增量任务,则表明当前不存在进程对该第二任务所指示的数据表进行全量更新处理或者增量更新处理,因此,此时,可以直接执行该第二任务。
在一种可能的实现方式中,若当前不存在进程对该第二任务所指示的数据表进行全量更新处理或者增量更新处理,则可以重复执行步骤S301,或者等待一段时间之后,继续判断当前处于处理状态的全量任务以及当前处于处理状态的增量任务中是否包含第二任务所指示的数据表对应的全量任务和增量任务,直至该第二任务被执行。
可以理解的是,本实施例中,为了避免多个进程同时对同一数据表进行更新处理所导致的数据表更新不准确的问题,因此,本实施例中还会判断在当前处于处理状态的全量任务以及当前处于处理状态的增量任务中是否包含第二任务所指示的数据表对应的全量任务和增量任务,进而提高数据表同步更新过程中的数据更新准确性。
一个示例中,第二任务包括待更新的数据;在执行步骤S304中的步骤“执行第二任务”,可以通过以下方法执行:删除第二任务所指示的数据表中的数据,并将第二任务中的待更新的数据写入数据表中。
示例性地,本实施例中,在第二任务中包括有待更新的数据。当电子设备执行该第二任务,此时,电子设备会将该第二任务所指示的数据表的全部数据删除,之后,将第二任务中所包含的待更新数据写入第二任务所指示的数据表中,进而完成的第二任务所指示的全量任务更新处理。
S305、若确定第一任务所指示的数据表与第二任务所指示的数据表不相同,则执行第一任务。
示例性地,在电子设备确定出第一任务以及第二任务之后,若确定出第一任务与第二任务所指示的数据表不同,则此时优先执行第一任务,即优先对第一任务所指示的数据表进行增量更新处理。
可以理解的是,当第一任务与第二任务所指示的数据表不同时,由于通常数据表的增量任务的更新频率大于数据表的全量任务的更新频率,此时,以便电子设备中数据表的更新更加接近主库端所对应的数据表的变化情况。
一个示例中,第一任务具有待更新的数据;数据表具有主键字段;在执行步骤S305中的“执行第一任务”时可以通过以下步骤实现:
第一步、在第一任务的待更新的数据中,确定第一任务指示的数据表的主键字段所对应的更新数据。
第二步、若确定数据表中包括更新数据,则将数据表中更新数据所在行的数据替换为待更新数据。
第三步、若确定数据表中不包括更新数据,则将待更新数据添加至数据表中。
示例性地,本实施例中,电子设备中所接收到的第一任务中包括有待更新的数据,此外,电子设备中的数据表还具有主键字段,其中,数据表中主键字段所对应的数据可以唯一标识该数据表中的某一行数据。当电子设备需要执行第一任务时,此时,首先会在第一任务的待更新的数据中,确定第一任务所指示的数据表的主键字段所对应的更新数据。之后,在第一任务所指示的数据表中,查找该更新数据,若确定该数据表中包括该更新数据,则对数据表中该更新数据所在行的数据进行替换,即将第一任务中的待更新的数据替换至该行。可以理解的是,当待更新的数据中除更新数据外,其余字段为空时,此时表明需要对该行数据进行删除处理,若不为空,则对该行数据进行更新替换。当该数据表中不包括该更新数据,此时表明需要在该数据表中添加第一任务中所包含的待更新的数据。
本实施例中,在执行第二任务之前,还可以通过比较该数据表对应的已经完成的全量任务的第二导出时间与第二任务的第二导出时间,若第二任务组中存在至少一个全量任务对应的第二导出时间大于等于第二任务的第二导出时间,则表明此时该数据表中所包含的全部数据已经被晚于第二任务对应的第二导出时间的全量任务更新处理过,因此,此时无需在对该数据表执行第二任务。通过本实施例提供的数据表的更新方式,提高了数据表更新的准确性,并且提高的数据表的更新效率。此外,为了避免多个进程同时对同一数据表进行更新处理所导致的数据表更新不准确的问题,因此,本实施例中还会判断在当前处于处理状态的全量任务以及当前处于处理状态的增量任务中是否包含第二任务所指示的数据表对应的全量任务和增量任务,进而提高数据表同步更新过程中的数据更新准确性。
图4为本申请实施例提供的第三种数据表同步方式的流程示意图。如图4所示,该方法包括以下步骤:
S401、在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务;其中,增量任务用于指示对增量任务对应的数据表进行增量更新处理;第一导出时间为增量任务的生成时间。
S402、在各数据表对应的待处理的全量任务中,确定第二导出时间最大的全量任务为第二任务;其中,全量任务用于指示对全量任务指示的数据表进行全量更新处理;第二导出时间为全量任务的生成时间。
S403、若确定第一任务所指示的数据表与第二任务所指示的数据表相同,则执行第二任务。
示例性地,本实施例中的步骤S401-S403的具体原理,可以参见图2中的步骤S201-S203,此处不再赘述。
S404、若确定第一任务所指示的数据表与第二任务所指示的数据表不相同,则确定第一任务所指示的数据表对应的已完成的增量任务;增量任务具有任务序号,任务序号用于指示在增量任务指示的数据表的全部增量任务中,增量任务的生成顺序。
示例性地,本实施例中,电子设备所接收到的增量任务具有任务序号,其中,对于数据表而言,任务序号可以用于指示出该增量任务在该数据表所对应的全部增量任务中的生成顺序,其中该数据表对应的全部增量任务为其余电子设备所生成的所有的针对与该数据表的增量任务。
举例来说,对于电子设备中的数据表A,其余电子设备需要对该电子设备中的数据表A进行增量更新处理时,此时,其余电子设备可以基于增量任务的生成顺序,依次生成分别包括Za_01、Za_02、Za_03,…,Za_0n任务序号(其中,n>3,且n为整数)的增量任务1、增量任务2、增量任务3、…,增量任务n。而对于电子设备中的数据表B,其余电子设备需要对该电子设备中的数据表B进行增量更新处理时,此时,其余电子设备可以基于增量任务的生成顺序,依次生成分别包括Zb_01、Zb_02、Zb_03,…,Zb_0n任务序号(其中,n>3,且n为整数)的增量任务1、增量任务2、增量任务3、…,增量任务n。
当电子设备确定第一任务与第二任务所指示的数据表不相同时,首先可以获取第一任务所指示的数据表对应的已完成的增量任务。
一个示例中,在确定第一任务所指示的数据表对应的已完成的增量任务时,此时,可以在电子设备的历史同步记录中首先筛选已经完成的增量任务,之后,在已经完成的增量任务中筛选出该数据表对应的已经完成的增量任务。
一个示例中,步骤S404可以包括以下步骤:
步骤S404的第一步、若确定第一任务所指示的数据表与第二任务所指示的数据表不相同,则确定第一任务所指示的数据表对应的已完成的全量任务为第一任务组。
步骤S404的第二步、若确定第一任务组中不存在第二导出时间大于第一任务的第一导出时间的全量任务,则确定第一任务所指示的数据表对应的已完成的增量任务。
示例性地,本实施例中,在执行步骤S404时,若电子设备确定出第一任务与第二任务所指示的数据表不相同,此时,首先可以确定该数据表对应的已完成的全量任务,并将所有的已完成的增量任务组成第一任务组。
之后通过比较第一任务组中的全量任务的第二导出时间与第一任务的第一导出时间,若确定第一任务组中所有的全量任务的第二导出时间都小于第一任务的第一导出时间,则可以直接执行该第一任务,即第一导出时间最小的增量任务。
可以理解的是,本实施例中,通过对数据表对应的已完成的全量任务的第二导出时间与第一任务的第一导出时间进行比较,可以避免当数据表已经进行过全量任务处理之后,又继续执行该全量任务的第二导出时间之前的增量任务所导致的数据表同步出现错误的现象,以提高数据表同步的准确性。
在上述示例的基础上,该方法还包括:
若确定第一任务组中存在第二导出时间大于第一任务的第一导出时间的全量任务,则将第一任务的状态设置为已处理状态。
示例性地,本实施例中,通过比较第一任务组中的全量任务的第二导出时间与第一任务的第一导出时间,若确定第一任务组中存在至少一个全量任务的第二导出时间大于第一任务的第一导出时间,则表明该数据表已经进行过全量任务的更新处理,则无需在进行该全量任务对应的导出时间之前的增量任务,将该第一任务的状态设置为已处理状态,进而确保了数据表同步的准确性。
一个示例中,步骤S404第二步可以通过以下步骤执行:
若确定第一任务组中不存在第二导出时间大于第一任务的第一导出时间的全量任务,且当前处于处理状态的全量任务以及当前处于处理状态的增量任务中均不包含第一任务所指示的数据表对应的全量任务和增量任务,则确定第一任务所指示的数据表对应的已完成的增量任务。
示例性地,在执行步骤S404的第二步时,为了避免电子设备中同时存在多个进程对同一数据表进行更新处理所导致的数据表同步不准确的问题,在确定第一任务所指示的数据表对应的已完成的增量任务之前,还可以确定当前是否存在对该数据表进行更新处理的进程,当第一任务组中不存在第二导出时间大于第一任务的第一导出时间的全量任务,且当前处于处理状态的全量任务以及当前处于处理状态的增量任务中均不包含第一任务所指示的数据表对应的全量任务和增量任务,则表明电子设备中当前没有对第一任务所指示的数据表进行更新处理的进程,此时,可以继续确定该第一任务所指示的数据表对应的已完成的增量任务。
若当前处于处理状态的全量任务以及当前处于处理状态的增量任务中包含第一任务所指示的数据表对应的全量任务或者增量任务,则此时,可以等待其余进程更新处理结束之后,再执行第一任务,或者重复执行步骤S401。
可以理解的是,本实施例中,为了避免多个进程同时对同一数据表进行更新处理所导致的数据表更新不准确的问题,因此,本实施例中还会判断在当前处于处理状态的全量任务以及当前处于处理状态的增量任务中是否包含第一任务所指示的数据表对应的全量任务和增量任务,进而提高数据表同步更新过程中的数据更新准确性。
S405、基于第一任务的任务序号,确定第一任务的任务序号的前一任务序号。其中,前一任务序号为在数据表对应的已生成的增量任务中,第一任务的生成次序的前一生成顺序所对应的增量任务的任务序号。
示例性地,本实施例中,当确定出第一任务之后,可以基于第一任务中的任务序号,确定该第一任务的前一任务的任务序号,即前一任务序号。其中,第一任务的前一任务,即其余电子设备针对第一任务所指示的数据表所生成的增量任务中,该第一任务对应的生成顺序的前一个增量任务。
举例来说,当其余电子设备在生成对于电子设备中的数据表A的增量任务时,此时,其余电子设备可以基于增量任务的生成顺序,依次生成分别包括Za_01、Za_02、Za_03,…,Za_0n任务序号的增量任务,并将这些增量任务依次下发给电子设备。若第一任务中所包含的任务需要为Za_03,则该任务序号的前一任务序号为Za_02。
S406、若确定已完成的增量任务中包括具有前一任务序号的增量任务,则执行第一任务。
示例性地,当第一任务所指示数据表对应的已完成的增量任务中包括具有前一任务序号的增量任务,此时,表明该数据表已经执行过该第一任务的前一增量任务,则此时,可以直接执行该第一任务。
可以理解的是,本实施例中,为了避免由于电子设备由于网络抖动所导致的接收到的增量任务的顺序与增量任务的生成顺序时间不一致时,所导致的数据同步过程中数据表中的数据出现错误的问题,本实施例中,在执行第一任务之前,还会判断电子设备是否执行过该第一任务的前一增量任务,当前一增量任务已被执行完成时,再执行该第一任务,提高了数据同步的准确性。
S407、若确定已完成的增量任务中不包括具有前一任务序号的增量任务,则重复执行在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务的步骤。
示例性地,当第一任务所指示数据表对应的已完成的增量任务中不包括具有前一任务序号的增量任务,此时,表明该数据表还未执行过该第一任务的前一增量任务,为了避免直接执行该第一任务所导致的数据表的更新结果不准确的问题,则可以直接重复步骤S401。
举例来说,若第一任务的前一增量任务指示在数据表中新增一行数据,而第一任务则指示修改新增的那一行数据中的某个字段,若在执行第一任务之前,第一任务的前一增量任务未执行,而直接执行第一任务,则电子设备会出现报错的现象,该数据表中的数据会出错。
可以理解的是,本实施例中,当确定在执行第一任务之前,该第一任务的前一增量任务还未被执行,则可以重复步骤S401,以便第一电子设备在接收到第一任务的前一增量任务之后,可以按照增量任务的生成顺序依次执行各个增量任务,进而确保数据表同步的准确性。
一个示例中,步骤S407可以通过以下步骤实现:
步骤S407的第一步、若确定已完成的增量任务中不包括具有前一任务序号的增量任务,则将当前时间与第一任务的接收时间进行求差处理,得到时间差值。
步骤S407的第二步、若时间差值小于等于预设阈值,则重复执行在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务的步骤。
示例性地,本实施例中,当电子设备确定出已完成的增量任务中不包括具有前一任务序号的增量任务时,此时,还会确定当前时间与该电子设备接收到第一任务的时间之间的差值,即上述时间差值。
当电子设备确定时间差值小于等于预设阈值时,此时,电子设备可以重复执行步骤S401,进而通过重复执行上述步骤,以便在重复过程中电子设备可以接收到第一任务的前一增量任务,使得电子设备可以依照增量任务的生成顺序,来进行数据表的增量同步处理,以确保数据表同步的准确性。
在上述示例的基础上,该方法还包括以下步骤:
若时间差值大于预设阈值,则执行第一任务。
示例性地,当电子设备确定时间差值大于预设阈值时,此时,电子设备认为第一任务的前一任务在传输过程中丢失,因此,为了避免电子设备在等待第一任务的前一任务而消耗较多时间,此时,可以直接执行该第一任务。
可以理解的是,本实施例中通过设置预设时间阈值,当电子设备接收到第一任务的接收时间与当前时间之间的差值大于预设时间阈值时,此时,为了避免电子设备在等待第一任务的前一任务而消耗较多时间,电子设备可以直接执行第一任务,提高数据表的同步效率。
本实施例中,通过对数据表对应的已完成的全量任务的第二导出时间与第一任务的第一导出时间进行比较,可以避免当数据表已经进行过全量任务处理之后,又继续执行该全量任务的第二导出时间之前的增量任务所导致的数据表同步出现错误的现象,以提高数据表同步的准确性。为了避免多个进程同时对同一数据表进行更新处理所导致的数据表更新不准确的问题,因此,本实施例中还会判断在当前处于处理状态的全量任务以及当前处于处理状态的增量任务中是否包含第一任务所指示的数据表对应的全量任务和增量任务,进而提高数据表同步更新过程中的数据更新准确性。
图5为本申请实施例提供的一种数据表同步装置的结构示意图,如图5所示,该数据表同步装置包括:
第一确定单元51,用于在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务;其中,增量任务用于指示对增量任务对应的数据表进行增量更新处理;第一导出时间为增量任务的生成时间。
第二确定单元52,用于在各数据表对应的待处理的全量任务中,确定第二导出时间最大的全量任务为第二任务;其中,全量任务用于指示对全量任务指示的数据表进行全量更新处理;第二导出时间为全量任务的生成时间。
第一执行单元53,用于若确定第一任务所指示的数据表与第二任务所指示的数据表相同,则执行第二任务。
本实施例提供的装置,用于实现上述方法提供的技术方案,其实现原理和技术效果类似,不再赘述。
图6为本申请实施例提供的第二种数据表同步装置的结构示意图,在图5所示的装置结构的基础上,本实施例中第一执行单元53,包括:
第一确定模块531,用于若确定第一任务所指示的数据表与第二任务所指示的数据表相同,则确定第二任务所指示的数据表对应的已完成的全量任务为第二任务组。
第一执行模块532,用于若确定第二任务组中不存在第二导出时间大于第二任务的第二导出时间的全量任务,则执行第二任务。
在一些实施例中,第一执行模块532,具体用于:
若确定第二任务组中不存在第二导出时间大于第二任务的第二导出时间的全量任务,且当前处于处理状态的全量任务以及当前处于处理状态的增量任务中均不包含第二任务所指示的数据表对应的全量任务和增量任务,则执行第二任务。
在一些实施例中,装置还包括:
第二执行单元54,用于若确定第一任务所指示的数据表与第二任务所指示的数据表不相同,则执行第一任务。
在一些实施例中,增量任务具有任务序号,任务序号用于指示在增量任务指示的数据表的全部增量任务中,增量任务的生成顺序;第二执行单元54,包括:
第二确定模块541,用于若确定第一任务所指示的数据表与第二任务所指示的数据表不相同,则确定第一任务所指示的数据表对应的已完成的增量任务。
第三确定模块542,用于基于第一任务的任务序号,确定第一任务的任务序号的前一任务序号,其中,前一任务序号为在数据表对应的已生成的增量任务中,第一任务的生成次序的前一生成顺序所对应的增量任务的任务序号。
第二执行模块543,用于若确定已完成的增量任务中包括具有前一任务序号的增量任务,则执行第一任务。
在一些实施例中,装置还包括:
第三执行模块544,用于若确定已完成的增量任务中不包括具有前一任务序号的增量任务,则重复执行在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务的步骤。
在一些实施例中,第三执行模块544,具体用于:
若确定已完成的增量任务中不包括具有前一任务序号的增量任务,则将当前时间与第一任务的接收时间进行求差处理,得到时间差值;
若时间差值小于等于预设阈值,则重复执行在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务的步骤。
在一些实施例中,第三执行模块544还用于:
若时间差值大于预设阈值,则执行第一任务。
在一些实施例中,第二确定模块541,具体用于:
若确定第一任务所指示的数据表与第二任务所指示的数据表不相同,则确定第一任务所指示的数据表对应的已完成的全量任务为第一任务组;
若确定第一任务组中不存在第二导出时间大于第一任务的第一导出时间的全量任务,则确定第一任务所指示的数据表对应的已完成的增量任务。
在一些实施例中,第二确定模块541,还用于;若确定第一任务组中存在第二导出时间大于第一任务的第一导出时间的全量任务,则将第一任务的状态设置为已处理状态。
在一些实施例中,第二确定模块541在执行若确定第一任务组中不存在第二导出时间大于第一任务的第一导出时间的全量任务,则确定第一任务所指示的数据表对应的已完成的增量任务时,具体用于:
若确定第一任务组中不存在第二导出时间大于第一任务的第一导出时间的全量任务,且当前处于处理状态的全量任务以及当前处于处理状态的增量任务中均不包含第一任务所指示的数据表对应的全量任务和增量任务,则确定第一任务所指示的数据表对应的已完成的增量任务。
在一些实施例中,第一任务具有待更新的数据;数据表具有主键字段;第二执行单元54在执行第一任务,具体用于:
在第一任务的待更新的数据中,确定第一任务指示的数据表的主键字段所对应的更新数据;若确定数据表中包括更新数据,则将数据表中更新数据所在行的数据替换为待更新数据;若确定数据表中不包括更新数据,则将待更新的数据添加至数据表中。
在一些实施例中,第二任务包括待更新的数据;第一执行单元53在执行第二任务时,具体用于:
删除第二任务所指示的数据表中的数据,并将第二任务中的待更新的数据写入数据表中。
本实施例提供的装置,用于实现上述方法提供的技术方案,其实现原理和技术效果类似,不再赘述。
图7为本申请实施例中提供的一种电子设备的结构示意图,如图7所示,该电子设备包括:
处理器(processor)291,电子设备还包括了存储器(memory)292;还可以包括通信接口(Communication Interface)293和总线294。其中,处理器291、存储器292、通信接口293、可以通过总线294完成相互间的通信。通信接口293可以用于信息传输。处理器291可以调用存储器292中的逻辑指令,以执行上述实施例的方法。
此外,上述的存储器292中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器292作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器291通过运行存储在存储器292中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器292可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器292可以包括高速随机存取存储器,还可以包括非易失性存储器。
本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现任一项的方法。
本申请提供一种计算机程序产品,计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现任一项的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (15)
1.一种数据表同步方法,其特征在于,包括:
在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务;其中,所述增量任务用于指示对所述增量任务对应的数据表进行增量更新处理;所述第一导出时间为所述增量任务的生成时间;
在各数据表对应的待处理的全量任务中,确定第二导出时间最大的全量任务为第二任务;其中,所述全量任务用于指示对所述全量任务指示的数据表进行全量更新处理;所述第二导出时间为所述全量任务的生成时间;
若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表相同,则执行所述第二任务。
2.根据权利要求1所述的方法,其特征在于,若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表相同,则执行所述第二任务,包括:
若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表相同,则确定所述第二任务所指示的数据表对应的已完成的全量任务为第二任务组;
若确定所述第二任务组中不存在第二导出时间大于所述第二任务的第二导出时间的全量任务,则执行所述第二任务。
3.根据权利要求2所述的方法,其特征在于,若确定所述第二任务组中不存在第二导出时间大于所述第二任务的第二导出时间的全量任务,则执行所述第二任务,包括:
若确定所述第二任务组中不存在第二导出时间大于所述第二任务的第二导出时间的全量任务,且当前处于处理状态的全量任务以及当前处于处理状态的增量任务中均不包含所述第二任务所指示的数据表对应的全量任务和增量任务,则执行所述第二任务。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表不相同,则执行所述第一任务。
5.根据权利要求4所述的方法,其特征在于,所述增量任务具有任务序号,所述任务序号用于指示在所述增量任务指示的数据表的全部增量任务中,所述增量任务的生成顺序;若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表不相同,则执行所述第一任务,包括:
若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表不相同,则确定所述第一任务所指示的数据表对应的已完成的增量任务;
基于所述第一任务的任务序号,确定所述第一任务的任务序号的前一任务序号,其中,所述前一任务序号为在所述数据表对应的已生成的增量任务中,所述第一任务的生成次序的前一生成顺序所对应的增量任务的任务序号;
若确定所述已完成的增量任务中包括具有所述前一任务序号的增量任务,则执行所述第一任务。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若确定所述已完成的增量任务中不包括具有所述前一任务序号的增量任务,则重复执行所述在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务的步骤。
7.根据权利要求6所述的方法,其特征在于,若确定所述已完成的增量任务中不包括具有所述前一任务序号的增量任务,则重复执行所述在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务的步骤,包括:
若确定所述已完成的增量任务中不包括具有所述前一任务序号的增量任务,则将当前时间与所述第一任务的接收时间进行求差处理,得到时间差值;
若所述时间差值小于等于预设阈值,则重复执行所述在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务的步骤。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若所述时间差值大于所述预设阈值,则执行所述第一任务。
9.根据权利要求5所述的方法,其特征在于,若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表不相同,则确定所述第一任务所指示的数据表对应的已完成的增量任务,包括:
若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表不相同,则确定所述第一任务所指示的数据表对应的已完成的全量任务为第一任务组;
若确定所述第一任务组中不存在第二导出时间大于所述第一任务的第一导出时间的全量任务,则确定所述第一任务所指示的数据表对应的已完成的增量任务。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
若确定所述第一任务组中存在第二导出时间大于所述第一任务的第一导出时间的全量任务,则将所述第一任务的状态设置为已处理状态。
11.根据权利要求9所述的方法,其特征在于,若确定所述第一任务组中不存在第二导出时间大于所述第一任务的第一导出时间的全量任务,则确定所述第一任务所指示的数据表对应的已完成的增量任务,包括:
若确定所述第一任务组中不存在第二导出时间大于所述第一任务的第一导出时间的全量任务,且当前处于处理状态的全量任务以及当前处于处理状态的增量任务中均不包含所述第一任务所指示的数据表对应的全量任务和增量任务,则确定所述第一任务所指示的数据表对应的已完成的增量任务。
12.根据权利要求1-11中任一项所述的方法,其特征在于,所述第一任务具有待更新的数据;所述数据表具有主键字段;所述执行所述第一任务包括:
在所述第一任务的待更新的数据中,确定所述第一任务指示的数据表的主键字段所对应的更新数据;
若确定所述数据表中包括所述更新数据,则将所述数据表中所述更新数据所在行的数据替换为所述待更新数据;
若确定所述数据表中不包括所述更新数据,则将所述待更新的数据添加至所述数据表中。
13.根据权利要求1-11中任一项所述的方法,其特征在于,所述第二任务包括待更新的数据;执行所述第二任务包括:
删除所述第二任务所指示的数据表中的数据,并将所述第二任务中的待更新的数据写入所述数据表中。
14.一种数据表同步装置,其特征在于,包括:
第一确定单元,用于在各数据表对应的待处理的增量任务中,确定第一导出时间最小的增量任务为第一任务;其中,所述增量任务用于指示对所述增量任务对应的数据表进行增量更新处理;所述第一导出时间为所述增量任务的生成时间;
第二确定单元,用于在各数据表对应的待处理的全量任务中,确定第二导出时间最大的全量任务为第二任务;其中,所述全量任务用于指示对所述全量任务指示的数据表进行全量更新处理;所述第二导出时间为所述全量任务的生成时间;
第一执行单元,用于若确定所述第一任务所指示的数据表与所述第二任务所指示的数据表相同,则执行所述第二任务。
15.一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210989399.5A CN115292416A (zh) | 2022-08-17 | 2022-08-17 | 数据表同步方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210989399.5A CN115292416A (zh) | 2022-08-17 | 2022-08-17 | 数据表同步方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115292416A true CN115292416A (zh) | 2022-11-04 |
Family
ID=83830043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210989399.5A Pending CN115292416A (zh) | 2022-08-17 | 2022-08-17 | 数据表同步方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115292416A (zh) |
-
2022
- 2022-08-17 CN CN202210989399.5A patent/CN115292416A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391628B (zh) | 数据同步方法及装置 | |
US9672244B2 (en) | Efficient undo-processing during data redistribution | |
CN108509462B (zh) | 一种同步活动事务表的方法及装置 | |
CN107391634B (zh) | 数据迁移方法及装置 | |
CN109388677B (zh) | 集群之间数据同步方法、装置、设备及其存储介质 | |
CN108121804B (zh) | 跨地域分布式存储数据的方法、装置、终端及存储介质 | |
CN111143331A (zh) | 数据迁移方法、装置及计算机存储介质 | |
CN113468143A (zh) | 数据迁移方法、系统、计算设备及存储介质 | |
CN110825758B (zh) | 一种交易处理的方法及装置 | |
CN112000850A (zh) | 进行数据处理的方法、装置、系统及设备 | |
CN110209534B (zh) | 自动备份mysql数据库的系统及方法 | |
CN115292416A (zh) | 数据表同步方法、装置、设备及存储介质 | |
CN113934792B (zh) | 分布式数据库的处理方法、装置、网络设备和存储介质 | |
CN111026810B (zh) | 数据同步方法、装置及存储介质 | |
CN110569231B (zh) | 数据迁移方法、装置、设备和介质 | |
CN110297860B (zh) | 数据交换方法、装置及相关设备 | |
CN112612773A (zh) | 数据库同步测试方法、装置、计算机设备及存储介质 | |
CN110659042A (zh) | 一种服务器固件管理方法与装置 | |
CN111142791A (zh) | 数据迁移方法和装置 | |
CN114900531B (zh) | 数据同步方法、装置和系统 | |
CN113672562B (zh) | 数据删除方法、装置、设备和存储介质 | |
CN115774727A (zh) | 数据处理方法、装置、设备及计算机存储介质 | |
CN114448803A (zh) | 一种配置下发方法、电子设备及存储介质 | |
CN117675831A (zh) | 数据同步方法及装置 | |
CN115081233A (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 |