CN115017235B - 数据同步方法及电子设备、存储介质 - Google Patents
数据同步方法及电子设备、存储介质 Download PDFInfo
- Publication number
- CN115017235B CN115017235B CN202210769708.8A CN202210769708A CN115017235B CN 115017235 B CN115017235 B CN 115017235B CN 202210769708 A CN202210769708 A CN 202210769708A CN 115017235 B CN115017235 B CN 115017235B
- Authority
- CN
- China
- Prior art keywords
- task
- data
- executor
- synchronous
- synchronization
- 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.)
- Active
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
- 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
-
- 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/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提供一种数据同步方法及电子设备、存储介质,方法包括:每一任务执行器分别向调度管理器上传任务反馈信息;其中,任一任务执行器上传的任务反馈信息指示所述任务执行器对应同步任务的执行情况;所述调度管理器根据每一任务执行器的任务反馈信息,确定每一任务执行器对应同步任务的处理效率,并确定处理效率未达到任务执行要求的目标同步任务;所述调度管理器从所述目标同步任务中拆分出子目标任务,并创建执行所述子目标任务的补充任务执行器。本申请方案,在实时进行数据同步的情况下有效地提高了数据同步的整体效率和吞吐量。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种数据同步方法及电子设备、计算机可读存储介质。
背景技术
数据同步应用于多种现实场景,在流程自动化机器人逐步取代人工进行系统管理和作业的情况下,RPA(Robotic Process Automation,机器人流程自动化)机器人不仅仅在单兵作战,而是在云平台支持下进行协调作业。在RPA机器人运行过程,以及对RPA机器人进行管理调度的RPA管理平台运行过程中,会产生大量数据(比如:业务数据、机器人执行数据、作业描述数据和流程执行记录数据等),这些数据包括了RPA机器人详细运行过程以及客户定制化的业务分析数据。RPA机器人厂商可以采集这些数据,为客户的任务优化和市场决策提供最底层的数据支持,同时也为数据挖掘、流程挖掘领域提供原始的数据资源。RPA管理平台往往分布部署在不同的数据中心,各个数据中心管理RPA管理平台的数据以及所有RPA机器人的数据。为了解决数据分散和数据孤岛的问题,需要将各个数据中心的数据进行汇总和整理,因此要对各个数据中心进行分布式数据同步。
在实际的大规模数据同步应用场景中,一些数据中心每日产生的数据量巨大,实现大量数据的同步是一个难题。此外,同步数据是一个动态过程,在同步数据的过程中,保证数据同步的一致性,也是数据同步算法所需要关注的问题。
当前数据同步技术主要分为实时数据同步和离线数据同步两种。前者通过监控数据库日志信息(比如:BinLog),对数据变更完成纳秒级别的响应,从而实现关系型数据库到关系型数据库的数据集同步。此类技术的代表有canal、debezium和flink CDC(ChangeData Capture,变更数据获取)等。这种方式在应对大吞吐量的数据时无法便捷地提升同步性能。后者是定时执行离线数据包同步,定时的时间间隔可以是几小时到是几小时不等。这种方式要求实现者针对不同场景的数据同步任务配置定制化策略,在某种程度上保证了大数据量和高吞吐量下的同步性能,但又忽略了数据的实时性。
发明内容
本申请实施例的目的在于提供一种数据同步方法及电子设备、计算机可读存储介质,用于在实时进行数据同步的情况下有效地提升数据同步性能。
一方面,本申请提供了一种数据同步方法,包括:
每一任务执行器分别向调度管理器上传任务反馈信息;其中,任一任务执行器上传的任务反馈信息指示所述任务执行器对应同步任务的执行情况;
所述调度管理器根据每一任务执行器的任务反馈信息,确定每一任务执行器对应同步任务的处理效率,并确定处理效率未达到任务执行要求的目标同步任务;
所述调度管理器从所述目标同步任务中拆分出子目标任务,并创建执行所述子目标任务的补充任务执行器。
在一实施例中,在所述每一任务执行器分别向调度管理器上传任务反馈信息之前,所述方法还包括:
任务池管理器向所述调度管理器传递任务描述文件;其中,所述任务描述文件用于记录数据同步任务的任务描述信息;
所述调度管理器从所述任务描述文件中拆分出多个同步任务,每一同步任务对应唯一的任务描述信息,并为所述多个同步任务分别创建对应的任务执行器,获得多个任务执行器;
所述多个任务执行器分别根据各自对应的任务描述信息,执行同步任务。
在一实施例中,在所述任务池管理器向所述调度管理器传递任务描述文件之前,所述方法还包括:
所述任务池管理器获取若干任务描述信息,并将所述若干任务描述信息存储为任务描述文件;其中,所述任务描述信息包括发送端信息、接收端信息和任务配置信息,所述发送端信息指示发送数据的数据库、待同步数据在数据库中的位置、所述待同步数据的描述信息,所述接收端信息指示接收数据的数据库、接收数据的位置。
在一实施例中,所述多个任务执行器分别根据各自对应的任务描述信息,执行同步任务之后,所述方法还包括:
所述调度管理器基于每一任务执行器上传的任务反馈信息,确定每一任务执行器对应同步任务的处理进度;
所述调度管理器接收任一任务执行器返回的失败通告信息时,基于所述失败通告信息指示的失败同步任务的处理进度,判断是否重试所述失败同步任务;
若是,创建重试所述失败同步任务的从任务执行器。
在一实施例中,所述从任务执行器接收所述调度管理器下发的重试信息,所述重试信息包括多种补偿策略;
在所述创建重试所述失败同步任务的从任务执行器之后,所述方法还包括:
所述从任务执行器根据失败同步任务的处理进度,从所述重试信息中选择一种补偿策略,作为目标补偿策略;
所述从任务执行器根据目标补偿策略,重试所述失败同步任务。
在一实施例中,所述目标补偿策略为从头执行失败同步任务;
所述从任务执行器根据目标补偿策略,重试所述失败同步任务,包括:
所述从任务执行器清空所述失败同步任务中已同步的数据,并重新执行所述失败同步任务。
在一实施例中,所述重试信息包括数据补偿点,所述数据补偿点指示已同步且不完整的数据,所述目标补偿策略为从所述数据补偿点开始执行失败同步任务;
所述从任务执行器根据目标补偿策略,重试所述失败同步任务,包括:
所述从任务执行器删除所述数据补偿点指示的数据,并从所述数据补偿点开始重新执行所述失败同步任务。
在一实施例中,所述多个任务执行器分别根据各自对应的任务描述信息,执行同步任务之后,所述方法还包括:
所述调度管理器基于每一任务执行器上传的任务反馈信息,确定任一任务执行器对应的同步任务完成之后,判断已完成的同步任务是否存在异常;其中,异常包括已同步的数据量错误、关键字段的数量错误;
若是,所述调度管理器为存在异常的同步任务创建修正任务执行器;
所述修正任务执行器对存在异常的同步任务进行修正处理。
另一方面,本申请提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述数据同步方法。
进一步的,本申请提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述数据同步方法。
本申请方案,在数据同步任务执行过程中,由调度管理器监控各个同步任务的执行情况,从而在任一任务执行器的处理效率较低时,创建补充任务执行器来分担效率较低的任务执行器的同步任务,从而实现同步任务计算资源的动态横向拓展,在实时进行数据同步的情况下有效地提高了数据同步的整体效率和吞吐量。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1为本申请一实施例提供的数据同步调度框架的示意图;
图2为本申请一实施例提供的电子设备的结构示意图;
图3为本申请一实施例提供的同步任务的分配方法的流程示意图;
图4为本申请一实施例提供的数据同步方法的流程示意图;
图5为本申请一实施例提供的同步任务的重试方法的流程示意图;
图6为本申请一实施例提供的同步任务的修正方法的流程示意图;
图7为本申请一实施例提供的数据同步的应用场景示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
参见图1,为本申请一实施例提供的数据同步调度框架的示意图,如图1所示,该调度框架内包括数据同步的发送端和接收端,发送端为发送数据的数据库,可以是关系型数据库(比如:mysql),也可以是非关系型数据库(比如:mongodb);接收端为接收数据的数据库,可以是关系型数据库,也可以是非关系型数据库。发送端和接收端可以是异构数据库,换而言之,发送端和接收端的数据库类型可以不同,比如,发送端为关系型数据库,接收端为非关系型数据库。发送端和接收端可以位于相同物理设备上,也可以位于不同物理设备上。
调度框架内还包括任务池管理器(图1中的D-Master)、调度管理器(图1中的Manager)、任务执行器(图1中的Actor),任务池管理器、调度管理器和任务执行器均为软件模块,可以部署于与发送端和/或接收端相同的物理设备上或不同的物理设备上。
任务池管理器可以对接多个调度管理器,用于获取任务描述信息,并管理调度管理器。这里,任务描述信息用于表征数据同步任务的具体内容。
调度管理器可以对接多个任务执行器,用于管理任务执行器,并监控任务执行器的工作状态,调度数据同步任务。在管理过程中,可以对任务执行器所执行的同步任务进行暂停、恢复、停止、重启等,在对每个同步任务进行实时监控的情况下,可以动态调节计算资源、重试失败任务。
任务执行器接受调度管理器所分配的数据同步任务,并执行该数据同步任务。各个任务执行器所执行的数据同步任务相互独立,对应不同数据范围,因而实现了数据隔离,互不干扰。
任务池管理器、调度管理器和任务执行器的具体工作内容详见下文相关描述。
如图2所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图2中以一个处理器11为例。处理器11和存储器12通过总线10连接,存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程。在一实施例中,电子设备1可以是搭载任务池管理器、调度管理器和任务执行器的服务器或主机,用于执行数据同步方法。
存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序可由处理器11执行以完成本申请提供的数据同步方法。
在实际应用场景中,运维人员可以确定数据同步的发送端和接收端,进而确定发送端信息和接收端信息。这里,发送端信息可以指示发送数据的数据库、待同步数据在数据库中的位置、待同步数据的描述信息等;示例性的,可以通过数据库标识指示数据库,通过数据库中数据表和数据项来指示待同步数据在数据库中的位置,通过数据类型作为待同步数据的描述信息。其中,数据表为待同步数据所在的业务表,比如,数据表可以为mysql数据库中的用户表、角色表等,或者,数据表可以为mongodb数据库中的业务表等。数据项为数据表中待同步数据所对应的字段,比如,待同步数据为mysql的用户表中的用户名,数据项为用户名字段。数据类型为数据表内数据项下数据的类型,可以是int、string等。
接收端信息可以指示接收数据的数据库、接收数据的位置等;示例性的,可以通过数据库标识指示数据库,通过数据库中数据表和数据项指示接收数据的位置。
运维人员可以确定发送端的数据同步至接收端的任务配置信息,任务配置信息可以包括对待同步数据的加工方式和数据同步策略,这里,加工方式包括但不限于数据类型的转变、缩放、筛选、统计等加工手段。数据同步策略包括接收端与发送端之间的映射关系,示例性的,发送端为数据库S1,待同步的数据表为B1和B2,数据表B1中待同步的数据项为C1和C2,数据表B2中待同步的数据项为C3和C4;接收端为数据库M1,存储数据的数据表为E1和E2;数据同步策略可以指示将数据库S1的数据表B1的数据项C1和C2的数据,写入数据库M1的数据表E1,以及,将数据库S1的数据表B2的数据项C3和C4的数据,写入数据库M1的数据表E2。
运维人员将发送端信息、接收端信息和任务配置信息作为任务描述信息,通过用户终端(比如:手机、平板电脑、主机等)发送至搭载任务池管理器的电子设备。任务池管理器可以获取若干任务描述信息,并将若干任务描述信息存储为任务描述文件。任务池管理器可以通过若干任务描述文件,管理数据同步任务。
参见图3,为本申请一实施例提供的同步任务的分配方法的流程示意图,如图3所示,该方法可以包括如下步骤310-步骤330。
步骤310:任务池管理器向调度管理器传递任务描述文件;其中,任务描述文件用于记录数据同步任务的任务描述信息。
任务池管理器可以存储多个任务描述文件,在获得新的任务描述文件之后,可以向调度管理器传递此前尚未下发的任务描述文件,从而向调度管理器下发数据同步任务。在下发任务描述文件后,任务池管理器可以生成下发记录,以便于后续根据已生成的下发记录更为均衡地向多个调度管理器分发数据同步任务。
步骤320:调度管理器从任务描述文件中拆分出多个同步任务,每一同步任务对应唯一的任务描述信息,并为多个同步任务分别创建对应的任务执行器,获得多个任务执行器。
调度管理器在接收到任务描述文件后,可以从中拆分出多个同步任务,此时,每一同步任务对应唯一的任务描述信息。
一种情况下,调度管理器可以根据任务描述文件中的任务配置信息所指示的发送端与接收端之间的映射关系,直接拆分出多个同步任务。比如:数据同步策略可以指示将数据库S1的数据表B1的数据项C1和C2的数据,写入数据库M1的数据表E1,以及,将数据库S1的数据表B2的数据项C3和C4的数据,写入数据库M1的数据表E2。此时,可以拆分出同步任务a和同步任务b,同步任务a为将数据库S1的数据表B1的数据项C1和C2的数据,写入数据库M1的数据表E1;同步任务b为将数据库S1的数据表B2的数据项C3和C4的数据,写入数据库M1的数据表E2。
另一种情况下,调度管理器可以在任务描述文件的任务配置信息基础上,进一步拆分,得到多个同步任务。调度管理器可以从数据项维度、数据量维度进行拆分。比如:数据同步策略可以指示将数据库S1的数据表B1的数据项C1和C2的数据,写入数据库M1的数据表E1,以及,将数据库S1的数据表B2的数据项C3和C4的数据,写入数据库M1的数据表E2。其中,数据项C1的数据标识为1000到2000,数据项C2的数据标识为2500到3500,数据项C3的数据标识为4000到5000,数据项C4的数据标识为6000到7000。调度管理器可以拆分出同步任务c、同步任务d、同步任务e、同步任务f。同步任务c为将数据库S1的数据表B1的数据项C1在数据标识1000到1500的数据、数据项C2在数据标识2500到3000的数据,写入数据库M1的数据表E1;同步任务d为将数据库S1的数据表B1的数据项C1在数据标识1501到2000的数据、数据项C2在数据标识3001到3500的数据,写入数据库M1的数据表E1;同步任务e为将数据库S1的数据表B2的数据项C3在数据标识4000到4500的数据、数据项C4在数据标识6000到6500的数据,写入数据库M1的数据表E2;同步任务f为将数据库S1的数据表B2的数据项C3在数据标识4501到5000的数据、数据项C4在数据标识6501到7000的数据,写入数据库M1的数据表E2。
在拆分出同步任务后,可以生成该同步任务唯一对应的任务描述信息。针对每一同步任务分别创建任务执行器,并将任务描述信息下发至任务执行器。这里,任务执行器可以是单一进程或单一线程。
步骤330:多个任务执行器分别根据各自对应的任务描述信息,执行同步任务。
多个任务执行器可以分别获得其对应分配的同步任务的任务描述信息,此时,每个任务执行器可以根据自身的任务描述信息,执行同步任务。任务执行器可以依据任务描述信息所指示的发送端和接收端,与发送端的数据库和接收端的数据库分别建立数据库链路,从而可以对数据库进行操控。在建立数据库链路之后,任务执行器可以依据发送端信息获取相应的数据,并传输至接收端信息所指示的位置。
通过上述措施,调度管理器拆分出多个同步任务后,各个同步任务所对应的数据范围不同,从而达到数据隔离;进一步的,通过不同的任务执行器分别执行单一的同步任务,不同任务执行器相互独立,实现了计算隔离,在执行同步任务过程中互不干扰。同时,不同调度管理器接受的任务描述文件不同,不同调度管理器之间也相互隔离,互不干扰。
参见图4,为本申请一实施例提供的数据同步方法的流程示意图,如图4所示,该方法可以包括以下步骤410-步骤430。
步骤410:每一任务执行器分别向调度管理器上传任务反馈信息;其中,任一任务执行器上传的任务反馈信息指示任务执行器对应同步任务的执行情况。
在任务执行器执行同步任务的过程中,任务执行器可以向调度管理器上传任务反馈信息,使得调度管理器可以收集到其对接的多个任务执行器的任务反馈信息。任务反馈信息可以指示同步任务的执行情况,因此,任务执行器可以周期性上传任务反馈信息,或者,可以在每次执行一部分同步任务后上传任务反馈信息。对于任一任务执行器而言,执行一项同步任务的过程中,可以向调度管理器上传多次任务反馈信息。
任务反馈信息可以包括任务执行器所完成同步的数据标识、处理这些数据标识指示数据的开始时间和结束时间。示例性的,任务执行器A的同步任务需处理数据标识在1000到2000之间的数据,任务执行器A在同步数据标识在1000到1100之间的数据后,可以向其对应的调度管理器上传任务反馈信息,该任务反馈信息包括数据标识1000至1100,以及同步数据标识1000到1100对应数据的开始时间和结束时间。
步骤420:调度管理器根据每一任务执行器的任务反馈信息,确定每一任务执行器对应同步任务的处理效率,并确定处理效率未达到任务执行要求的目标同步任务。
调度管理器接收多个任务执行器的任务反馈信息,并可以依据任务反馈信息中数据标识所指示的数据量、开始时间和结束时间,确定同步任务的处理效率。示例性的,可以通过单位数据所同步的数据量来表示处理效率。因此,调度管理器可以确定每一任务执行器在处理各自的同步任务的处理效率。
在确定任一同步任务的处理效率之后,调度管理器可以检查该处理效率是否达到任务执行要求。该任务执行要求可以通过针对该同步任务预配置的处理效率阈值来表示;或者,该任务执行要求可以通过多个相互关联的同步任务的处理效率确定得到,比如,同步任务a、同步任务b、同步任务c、同步任务d相互关联,同步的是相关数据,要求以相近的处理效率进行数据同步,在确定各个同步任务的处理效率之后,可以将多个处理效率中的最大值或中位数或平均数等作为任务执行要求。
一方面,如果同步任务的处理效率达到任务执行要求,可以继续对该同步任务进行监控,在后续接收任务反馈信息后再检查处理效率是否达到任务执行要求。另一方面,如果同步任务的处理效率未达到任务执行要求,可以确定该同步任务为目标同步任务。
步骤430:调度管理器从目标同步任务中拆分出子目标任务,并创建执行子目标任务的补充任务执行器。
这里,补充任务执行器为调度管理器为拆分出的同步任务所创建的任务执行器。
在确定处理效率较低的目标同步任务之后,调度管理器可以从目标同步任务中拆分出子目标任务,子目标任务为从目标同步任务中拆分出的同步任务,子目标任务可以由其它任务执行器来处理。调度管理器可以向执行目标同步任务的任务执行器下发修改指令,以修改目标同步任务中由该任务执行器所处理的数据范围,从而将目标同步任务中该数据范围以外的同步任务作为子目标任务。调度管理器创建一个新的任务执行器,作为补充任务执行器,并向将子目标任务交由该补充任务执行器来处理。
示例性的,任务执行器A所处理的目标同步任务原本需处理数据标识3000到5000的数据,调度管理器可以向任务执行器下发修改指令,使得任务执行器A仅处理目标同步任务中数据标识3000到4000的数据,从而拆分出子目标任务,该子目标任务需处理数据标识4001到5000的数据。调度管理器创建新的任务执行器A’,作为补充任务执行器,并将该子目标任务交由任务执行器A’来处理。
通过上述措施,调度管理器可以监控各个任务执行器处理同步任务的处理效率,从而在任一任务执行器的处理效率较低时,创建补充任务执行器来分担效率较低的任务执行器的同步任务,实现同步任务计算资源的动态横向拓展,从而提高数据同步的整体效率和吞吐量。
在一实施例中,任务执行器在执行同步任务时可能失败,此时调度管理器可以尝试重试该同步任务。参见图5,为本申请一实施例提供的同步任务的重试方法的流程示意图,如图5所示,该方法可以包括如下步骤510-步骤530。
步骤510:调度管理器基于每一任务执行器上传的任务反馈信息,确定每一任务执行器对应同步任务的处理进度。
调度管理器可以根据各个任务执行器所上传的任务反馈信息,对各个任务执行器的任务执行状态进行监控。每当任务执行器上传任务反馈信息之后,调度管理器可以更新该任务执行器所处理的同步任务的处理进度。示例性的,针对任一同步任务,可以根据该同步任务的任务描述信息和处理进度的映射关系,记录同步任务的处理进度。处理进度可以通过已同步数据的数据标识来表示。
步骤520:调度管理器接收任一任务执行器返回的失败通告信息时,基于失败通告信息指示的失败同步任务的处理进度,判断是否重试失败同步任务。
任务执行器在执行同步任务时,可能发生失败。比如,任务执行器与发送端或接收端之间的数据库链路中断;或者,发送端的数据在同步过程中发生变化;或者,数据存在丢失;或者,同步过程中产生了脏数据等。当任务执行器确定自身所处理的同步任务识别时,可以向调度管理器返回失败通告信息。调度管理器接收到失败通告信息,确定该失败通告信息所指示的同步任务为失败同步任务。调度管理器可以检查该失败同步任务的处理进度。一方面,若处理进度表明该失败同步任务已经同步完成,则无需重试该失败同步任务。另一方面,若处理进度表面该失败同步任务尚未同步完成,可以确定需要重试该失败同步任务。
步骤530:若是,创建重试失败同步任务的从任务执行器。
其中,从任务执行器为被创建用于执行失败同步任务的任务执行器。
当调度管理器确定需要重试失败同步任务时,可以为该失败同步任务创建一个任务执行器,作为从任务执行器。调度管理器可以向从任务执行器下发失败同步任务的任务描述信息,使得从任务执行器可以重新处理失败同步任务。此外,调度管理器可以向从任务执行器下发重试信息,该重试信息用于指导重新处理失败同步任务的方式。
通过上述措施,在同步任务失败后,调度管理器可以及时为该同步任务创建从任务执行器,重新开始处理该同步任务。
在一实施例中,从任务执行器从调度管理器下发的重新信息中,包括多种补偿策略,补偿策略为选择待同步数据进行重新同步的策略。
从任务执行器可以根据失败同步任务的处理进度,从重试信息中选择一种补偿策略,作为目标补偿策略。这里,处理进度可以来自调度管理器,或者,从任务执行器可以直接比对接收端的数据同步情况和任务描述信息,从而统计得到处理进度。前者更为快速,后者更为精准。
从任务执行器可以根据目标补偿策略,重试失败同步任务。这种情况下,目标补偿策略与处理进度相关,可以以合理的方式重试失败同步任务,从而更高效地完成失败同步任务。
一种情况下,处理进度过低(比如:低于预设进度阈值30%),此时,选中的目标补偿策略为从头执行失败同步任务。从任务执行器可以情况失败同步任务中已同步的数据,并重新从头开始执行失败同步任务。
另一种情况下,处理进度较高(比如:不低于进度阈值30%),此时,选中的目标补偿策略为从数据补偿点开始执行失败同步任务。这里,数据补偿点可以从重试信息中解析得到,用于指示已同步且不完整的数据。示例性的,可以通过已同步且不完整数据的数据标识作为数据补偿点。从任务执行器可以在接收端删除数据补偿点指示的数据,并从数据补偿点开始重新执行失败同步任务。这种情况下,在重试失败同步任务时,可以保留已同步的完整数据,从而降低失败同步任务在重新执行时的工作量,缩短处理时长。此外,从数据补偿点开始,对不完整数据进行剪裁和补全,可以保证数据同步的正确性,保证同步后数据的一致性和完整性。
在一实施例中,在任务执行器完成同步任务之后,调度管理器可以对同步任务的执行结果进行检查,并在执行结果存在异常的情况下,对异常进行处理,从而修正同步任务。参见图6,为本申请一实施例提供的同步任务的修正方法的流程示意图,如图6所示,该方法可以包括步骤610-步骤630。
步骤610:调度管理器基于每一任务执行器上传的任务反馈信息,确定任一任务执行器对应的同步任务完成之后,判断已完成的同步任务是否存在异常;其中,异常包括已同步的数据量错误、关键字段的数量错误。
调度管理器基于每一任务执行器上传的任务反馈信息,可以获知各个任务执行器所处理的同步任务的执行进度。当执行进度指示任一同步任务已经完成时,调度管理器可以通过检查该同步任务的已同步数据量是否正确、关键字段的数量是否正确等手段,确定已完成的同步任务是否存在异常。一方面,若不存在异常,可以确定已完成的同步任务执行完毕。另一种情况下,若存在异常,可以继续执行步骤620。
步骤620:若是,调度管理器为存在异常的同步任务创建修正任务执行器。
当确定已完成的同步任务存在异常时,调度管理器可以为其创建新的任务执行器,作为修正任务执行器。这里,修正任务执行器为用于修正存在异常的同步任务的任务执行器。
调度管理器可以向修正任务执行器下发任务描述信息,以及存在异常数据范围,该异常数据范围是调度管理器初步确定存在异常数据的数据范围。示例性的,若调度管理器确定已同步的数据量错误,可以将任务描述信息中整体数据范围作为异常数据范围;若调度管理器确定关键字段的数量异常,可以将存在异常的关键字段作为异常数据范围。
步骤630:修正任务执行器对存在异常的同步任务进行修正处理。
修正任务执行器可以基于任务描述信息,与发送端和接收端分别建立数据库链路,并针对异常数据范围进行全量比对。如果出现数据脏读、数据缺失等情况,修正任务执行器可以删除或增加对应的数据,避免接收端出现脏数据,并补全缺失的数据,从而对同步任务进行修正处理。
通过上述措施,在同步任务的执行结果存在异常时,可以进行修正处理,保证了同步后数据的正确性。
综上所述,通过本申请中数据同步调度框架进行数据同步,可以在同步任务执行过程中动态监控执行情况,以新建任务执行器的方式对同步任务进行动态调度,从而对计算资源进行实时拓展,提高了系统资源的利用率;在同步任务执行过程中,可以针对失败同步任务进行重试,剪裁及补全已同步的不完整数据,可以保证接收端上数据的完整性和正确性;此外,由多个任务执行器并行独立地执行不同的同步任务,实现了数据隔离和计算隔离,有效地保证了数据同步链路的健壮性,提高了系统可用性;本申请方案中同步任务实时处理,保证了数据的实时性。
参见图7,为本申请一实施例提供的数据同步的应用场景示意图,如图7所示,该应用场景为各个省级RPA管理平台将本地数据实时汇总到总部RPA管理平台,总部RPA管理平台需汇总来自各个省级RPA管理平台的数据,同时管理自身所产生的数据资产。各个省级RPA管理平台每时每刻都会产生大量数据,总部RPA管理平台要接收各个省级RPA管理平台的数据,并进行合并和整理。
在各个省级RPA管理平台配置调度管理器和任务池管理器,并构建同步本地数据的任务描述文件。省级RPA管理平台的任务池管理器将任务描述文件分发至调度管理器,由调度管理器拆分出多个同步任务后,创建任务执行器执行同步任务。多个任务执行器可以将省级RPA管理平台的数据进行处理,获得待传输数据,并通过Kafka消息中间件传递至总部RPA管理平台。总部RPA管理平台作为消费者接收消息中间件的消息,并写入本地数据库中。
Claims (10)
1.一种数据同步方法,其特征在于,包括:
每一任务执行器分别向调度管理器上传任务反馈信息;其中,任一任务执行器上传的任务反馈信息指示所述任务执行器对应同步任务的执行情况,任一任务执行器在执行一项同步任务的过程中,向调度管理器上传多次任务反馈信息,所述任务反馈信息包括完成同步的数据标识、以及同步所述数据标识对应数据的开始时间和结束时间;
所述调度管理器根据每一任务执行器的任务反馈信息,依据所述任务反馈信息中数据标识所指示的数据量、开始时间和结束时间,确定每一任务执行器对应同步任务的处理效率,并确定处理效率未达到任务执行要求的目标同步任务;其中,所述处理效率通过单位时间所同步的数据量来表示;
所述调度管理器从所述目标同步任务中拆分出子目标任务,并创建执行所述子目标任务的补充任务执行器。
2.根据权利要求1所述的方法,其特征在于,在所述每一任务执行器分别向调度管理器上传任务反馈信息之前,所述方法还包括:
任务池管理器向所述调度管理器传递任务描述文件;其中,所述任务描述文件用于记录数据同步任务的任务描述信息;
所述调度管理器从所述任务描述文件中拆分出多个同步任务,每一同步任务对应唯一的任务描述信息,并为所述多个同步任务分别创建对应的任务执行器,获得多个任务执行器;
所述多个任务执行器分别根据各自对应的任务描述信息,执行同步任务。
3.根据权利要求2所述的方法,其特征在于,在所述任务池管理器向所述调度管理器传递任务描述文件之前,所述方法还包括:
所述任务池管理器获取若干任务描述信息,并将所述若干任务描述信息存储为任务描述文件;其中,所述任务描述信息包括发送端信息、接收端信息和任务配置信息,所述发送端信息指示发送数据的数据库、待同步数据在数据库中的位置、所述待同步数据的描述信息,所述接收端信息指示接收数据的数据库、接收数据的位置。
4.根据权利要求2所述的方法,其特征在于,所述多个任务执行器分别根据各自对应的任务描述信息,执行同步任务之后,所述方法还包括:
所述调度管理器基于每一任务执行器上传的任务反馈信息,确定每一任务执行器对应同步任务的处理进度;
所述调度管理器接收任一任务执行器返回的失败通告信息时,基于所述失败通告信息指示的失败同步任务的处理进度,判断是否重试所述失败同步任务;
若是,创建重试所述失败同步任务的从任务执行器。
5.根据权利要求4所述的方法,其特征在于,所述从任务执行器接收所述调度管理器下发的重试信息,所述重试信息包括多种补偿策略;
在所述创建重试所述失败同步任务的从任务执行器之后,所述方法还包括:
所述从任务执行器根据失败同步任务的处理进度,从所述重试信息中选择一种补偿策略,作为目标补偿策略;
所述从任务执行器根据目标补偿策略,重试所述失败同步任务。
6.根据权利要求5所述的方法,其特征在于,所述目标补偿策略为从头执行失败同步任务;
所述从任务执行器根据目标补偿策略,重试所述失败同步任务,包括:
所述从任务执行器清空所述失败同步任务中已同步的数据,并重新执行所述失败同步任务。
7.根据权利要求5所述的方法,其特征在于,所述重试信息包括数据补偿点,所述数据补偿点指示已同步且不完整的数据,所述目标补偿策略为从所述数据补偿点开始执行失败同步任务;
所述从任务执行器根据目标补偿策略,重试所述失败同步任务,包括:
所述从任务执行器删除所述数据补偿点指示的数据,并从所述数据补偿点开始重新执行所述失败同步任务。
8.根据权利要求2所述的方法,其特征在于,所述多个任务执行器分别根据各自对应的任务描述信息,执行同步任务之后,所述方法还包括:
所述调度管理器基于每一任务执行器上传的任务反馈信息,确定任一任务执行器对应的同步任务完成之后,判断已完成的同步任务是否存在异常;其中,异常包括已同步的数据量错误、关键字段的数量错误;
若是,所述调度管理器为存在异常的同步任务创建修正任务执行器;
所述修正任务执行器对存在异常的同步任务进行修正处理。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-8任意一项所述的数据同步方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-8任意一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210769708.8A CN115017235B (zh) | 2022-06-30 | 2022-06-30 | 数据同步方法及电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210769708.8A CN115017235B (zh) | 2022-06-30 | 2022-06-30 | 数据同步方法及电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115017235A CN115017235A (zh) | 2022-09-06 |
CN115017235B true CN115017235B (zh) | 2023-07-14 |
Family
ID=83078183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210769708.8A Active CN115017235B (zh) | 2022-06-30 | 2022-06-30 | 数据同步方法及电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115017235B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116979686B (zh) * | 2023-06-26 | 2024-04-26 | 三峡高科信息技术有限责任公司 | 一种基于新能源电站电力生产运营阶段电量报送系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182441A (zh) * | 2014-02-27 | 2014-12-03 | 无锡天脉聚源传媒科技有限公司 | 一种数据表同步方法及装置 |
CN106412088A (zh) * | 2016-10-25 | 2017-02-15 | 深圳市万普拉斯科技有限公司 | 一种数据同步方法及终端 |
CN109446271A (zh) * | 2018-10-31 | 2019-03-08 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、装置、设备及介质 |
CN114328715A (zh) * | 2021-11-19 | 2022-04-12 | 科华数据股份有限公司 | 一种数据同步方法、装置及计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557364A (zh) * | 2015-09-24 | 2017-04-05 | 阿里巴巴集团控股有限公司 | 一种数据同步方法和系统 |
CN108829508B (zh) * | 2018-03-30 | 2020-10-27 | 北京趣拿信息技术有限公司 | 任务处理方法和装置 |
EP3867752A1 (en) * | 2018-10-19 | 2021-08-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Synchronization of data processing in a calculating system |
CN111125065B (zh) * | 2019-12-24 | 2023-09-12 | 阳光人寿保险股份有限公司 | 可视化数据同步方法、系统、终端和计算机可读存储介质 |
CN112631761A (zh) * | 2020-12-31 | 2021-04-09 | 中国农业银行股份有限公司 | 一种任务调度监控方法和装置 |
-
2022
- 2022-06-30 CN CN202210769708.8A patent/CN115017235B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182441A (zh) * | 2014-02-27 | 2014-12-03 | 无锡天脉聚源传媒科技有限公司 | 一种数据表同步方法及装置 |
CN106412088A (zh) * | 2016-10-25 | 2017-02-15 | 深圳市万普拉斯科技有限公司 | 一种数据同步方法及终端 |
CN109446271A (zh) * | 2018-10-31 | 2019-03-08 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、装置、设备及介质 |
CN114328715A (zh) * | 2021-11-19 | 2022-04-12 | 科华数据股份有限公司 | 一种数据同步方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115017235A (zh) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019154394A1 (zh) | 分布式数据库集群系统、数据同步方法及存储介质 | |
US10795911B2 (en) | Apparatus and method for replicating changed-data in source database management system to target database management system in real time | |
CN108600353B (zh) | 一种区块链节点的并行块同步方法 | |
CN106685691B (zh) | 物联网系统中终端设备的高效更新配置方法 | |
CN113987064A (zh) | 数据处理方法、系统及设备 | |
CN107291787A (zh) | 主备数据库切换方法和装置 | |
CN110895487B (zh) | 分布式任务调度系统 | |
CN110263095B (zh) | 数据备份与恢复方法、装置、计算机设备及存储介质 | |
CN109634730A (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN109063005B (zh) | 一种数据迁移方法及系统、存储介质、电子设备 | |
CN111399764B (zh) | 数据存储方法、读取方法、装置、设备及存储介质 | |
CN115017235B (zh) | 数据同步方法及电子设备、存储介质 | |
US8527454B2 (en) | Data replication using a shared resource | |
CN110569142A (zh) | 一种oracle数据增量同步系统及方法 | |
CN109542591A (zh) | 工作任务补偿处理方法、装置、计算机设备及存储介质 | |
CN108140035B (zh) | 分布式系统的数据库复制方法及装置 | |
TWI439873B (zh) | Data synchronization method | |
CN105323271B (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
CN108900497B (zh) | 一种异构系统间的数据同步方法及系统 | |
CN106407264A (zh) | 一种高可用性和强一致性的数据库集群系统及其命令处理方法 | |
US11042454B1 (en) | Restoration of a data source | |
CN115687019A (zh) | 数据库集群的故障处理方法、智能监控平台、设备和介质 | |
CN114595288A (zh) | 一种基于sql命令级的多idc分布式系统数据同步方法 | |
CN115934428B (zh) | 一种mysql数据库的主灾备切换方法、装置及电子设备 | |
CN112732809B (zh) | 一种etl系统及基于etl系统的数据处理方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |