CN114218329A - 数据同步方法、装置、存储介质以及计算机终端 - Google Patents
数据同步方法、装置、存储介质以及计算机终端 Download PDFInfo
- Publication number
- CN114218329A CN114218329A CN202111554752.9A CN202111554752A CN114218329A CN 114218329 A CN114218329 A CN 114218329A CN 202111554752 A CN202111554752 A CN 202111554752A CN 114218329 A CN114218329 A CN 114218329A
- Authority
- CN
- China
- Prior art keywords
- data
- task
- target
- data source
- subtask
- 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
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据同步方法、装置、存储介质以及计算机终端。其中,该方法包括:获取目标同步任务,其中,目标同步任务至少包括:原始数据源和目标数据源;加载原始数据源对应的同步插件;通过同步插件将原始数据源中的数据同步至目标数据源。本发明解决了相关技术中数据的同步效率较低的的技术问题。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种数据同步方法、装置、存储介质以及计算机终端。
背景技术
目前,数据同步服务不像数据挖掘一样可以直接产生价值,其更像是连接在线系统和离线系统的高速公路,好的同步工具可以很大程度上提升数据开发的效率。目前,行业内将任务翻译成mr(mapreduce,分布式计算系统)任务进行执行,典型的工具有Sqoop(传送数据的工具),其可以利用mr的分布式能力,但是对非关系型数据库支持十分不友好,且未提供限流功能无法保证任务稳定性。目前,采用的另一种自行管理执行和调度的数据交换的同步工具,由于其只支持单机执行,无法提供分布式扩展能力,因此,对于数据量级的扩展无法支撑,对限流的支持也只停留在整体上,粒度太宽泛,对于所有作业都是生效的,无法针对具体任务进行限制,从而导致数据的同步效率较低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据同步方法、装置、存储介质以及计算机终端,以至少解决相关技术中数据的同步效率较低的的技术问题。
根据本发明实施例的一个方面,提供了一种数据同步方法,其特征在于,包括:获取目标同步任务,其中,目标同步任务至少包括:原始数据源和目标数据源;加载原始数据源对应的同步插件;通过同步插件将原始数据源中的数据同步至目标数据源。
可选地,将原始数据源中的数据同步至目标数据源包括:确定目标同步任务是否允许切分;响应于目标同步任务允许切分,将目标同步任务切分为多个子任务;创建多个子任务对应的多个资源组;通过每个资源组将原始数据源中,每个子任务对应的数据同步至目标数据源。
可选地,通过每个资源组将原始数据源中,每个子任务对应的数据同步至目标数据源包括:通过每个资源组对应的读任务,从原始数据源中读取每个子任务对应的数据;通过每个资源组对应的写任务,将每个子任务对应的数据存储至目标数据源,其中,读任务和写任务通过每个资源组对应的数据通道进行数据传输。
可选地,该方法还包括:获取目标同步任务对应的流量阈值;基于流量阈值,确定每个子任务对应的目标流量阈值;对每个子任务对应的数据通道中传输的数据进行统计,得到每个子任务对应的目标流量;基于每个子任务对应的目标流量和目标流量阈值,确定是否对每个子任务对应的数据通道进行阻塞。
可选地,在第一子任务对应的数据传输完成之后,该方法还包括:通过第一子任务对应的数据通道对第一子任务对应的数据进行统计,得到第一子任务对应的统计结果,其中,统计结果包括:读取成功的数据、写出成功的数据和错误数据;基于第一子任务对应的统计结果,生成第一子任务对应的数据质量。
可选地,响应于第二子任务执行失败的状态,重新通过第二子任务对应的资源组将第二子任务对应的数据同步至目标数据源。
可选地,在通过每个资源组将原始数据源中,每个子任务对应的数据同步至目标数据源之前,该方法还包括:对多个子任务进行打乱,得到打乱后的子任务;将打乱后的子任务分别分配至多个资源组。
可选地,响应于获取到多个同步任务,该方法还包括:确定每个同步任务对应的任务队列;将每个同步任务存储至每个同步任务对应的任务队列;从任务队列中获取目标同步任务。
可选地,响应于存在执行资源,从任务队列中获取目标同步任务。
可选地,该方法还包括:接收登录请求;对登录请求进行身份认证,得到认证结果;响应于认证结果为通过认证,创建目标同步任务。
可选地,该方法还包括:获取目标同步任务的调度信息,其中,调度信息包括:开始时间、结束时间和调度周期;响应于到达开始时间,每间隔调度周期,将原始数据源中的数据同步至目标数据源,直至到达结束时间。
可选地,在开始时间之后的第二个调度周期开始之后,该方法还包括:获取上一个调度周期对应的执行状态;响应于执行状态为第一状态,将原始数据源中的数据同步至目标数据源;响应于执行状态为第二状态,且当前调度周期的执行时间到达预设时间,确定当前调度周期对应的执行状态为第三状态。
可选地,对登录请求进行身份认证,得到认证结果包括:对登录请求进行身份认证,得到第一结果;响应于第一结果为认证通过,发送身份识别请求至服务器,其中,身份识别请求包含登录请求对应的身份令牌;接收服务器返回的认证结果。
根据本发明实施例的另一方面,还提供了一种数据同步装置,包括:获取模块,用于获取目标同步任务,其中,目标同步任务至少包括:原始数据源和目标数据源;加载模块,用于加载原始数据源对应的同步插件;同步模块,用于通过同步插件将原始数据源中的数据同步至目标数据源。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述的数据同步方法。
根据本发明实施例的另一方面,还提供了一种计算机终端,其特征在于,包括:处理器和存储器,处理器用于运行程序,其中,程序运行时执行上述的数据同步方法。
在本发明实施例中,首先,获取目标同步任务,其中,目标同步任务至少包括:原始数据源和目标数据源,然后,加载原始数据源对应的同步插件,最后通过同步插件将原始数据源中的数据同步至目标数据源。实现了针对每种类型的数据源都可以进行数据同步。容易注意到的是,通过加载原始数据源对应的同步插件,能够通过同步插件将原始数据源中的数据同步至目标数据源,从而快速的实现数数据的同步,进而解决了相关技术中数据的同步效率较低的的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种数据同步方法的流程图;
图2是根据本发明实施例的一种将目标同步任务切分为多个子任务的示意图;
图3是根据本发明实施例的一种数据传输的示意图;
图4是根据本发明实施例的一种流量控制的示意图;
图5是根据本发明实施例的一种监控数据质量的示意图;
图6是根据本发明实施例的一种创建任务权限的示意图;
图7是根据本发明实施例的一种数据同步装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
工作流,为将一组节点组织起来以完成某个过程的概括描述,定义了节点的触发顺序和触发条件,工作流是一个有多个节点的有向无环图。
数据源,代表数据的来源,是提供某种所需要数据的器件或原始媒体。
目的源,代表数据的终端,是提供某种数据存储的器件或原始媒体。
执行器,是一个实际的机器节点,用来接收任务的调度请求,负责执行任务的物理机。
Job,是一次完成的数据同步作业,直至将数据完全写入到目的源端,并可见。
Task,是对job的一次切分后的划分结果,多个task组合成一个job,所有task完成,job才算成功,多个task可以并行执行。
jobManager,是实际作业执行的协调者,作业如何分配,监控作业完成进度等,对作业整个执行生命周期负责。
taskManager,是实际任务执行的协调者,任务如何分配,监控任务完成进度等,对任务整个生命周期负责。
channel,是数据传输的管道,承担了数据从源端到目的端的介质流通,限流等职责。
Hadoop,是一个由Apache基金会所开源的分布式系统基础架构。
hive,是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载。
kafka,是一种高吞吐量的分布式发布订阅消息系统,消息在传输过程中保存消息的容器,可简称为kafka消息队列。
状态,是任务有运行中、死亡、失败、成功等状态。
实施例1
根据本发明实施例,提供了一种数据同步方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的数据同步方法,如图1所示,该方法包括如下步骤:
步骤S102,获取目标同步任务。
其中,目标同步任务至少包括:原始数据源和目标数据源。
上述的目标同步任务包括有待进行同步的原始数据源中的数据。上述的目标数据源为转化后的数据存储的数据源。
在一种可选的实施例中,用户可以根据需求选择不同类型的任务模板进行任务配置编写,包括数据源配置编写,目标源配置编写,也可配置在任务执行之前或之后执行前置,后置插件逻辑,完成对同步任务开始之前的预处理,和同步完成后的结束处理工作,可以选择在编写结束后,直接对上述的目标同步任务进行调度执行。若想要实现更复杂的调度场景,还可以增加其他的配置。
步骤S104,加载原始数据源对应的同步插件。
上述同步插件用于转化数据的类型。
在一种可选的实施例中,在异构数据源传输的过程中,由于数据源之间的数据类型格式不同,会导致数据存在失真的情况,因此,针对每种数据源插件,都内置了对应的数据类型转化策略,让数据可以完整无损的传输到目的端。
步骤S106,通过同步插件将原始数据源中的数据同步至目标数据源。
在一种可选的实施例中,通过上述的同步插件可以先对原始数据源中的数据进行转化,使得转化后的数据类型与目标数据源中的数据类型相同,并将转化后的数据同步至目标数据源中。
通过上述步骤,首先,获取目标同步任务,其中,目标同步任务至少包括:原始数据源和目标数据源,然后,加载原始数据源对应的同步插件,最后通过同步插件将原始数据源中的数据同步至目标数据源。实现了针对每种类型的数据源都可以进行数据同步。容易注意到的是,通过加载原始数据源对应的同步插件,能够通过同步插件将原始数据源中的数据同步至目标数据源,从而快速的实现数数据的同步,进而解决了相关技术中数据的同步效率较低的的技术问题。
可选地,将原始数据源中的数据同步至目标数据源包括:确定目标同步任务是否允许切分;响应于目标同步任务允许切分,将目标同步任务切分为多个子任务;创建多个子任务对应的多个资源组;通过每个资源组将原始数据源中,每个子任务对应的数据同步至目标数据源。
在一种可选的实施例中,执行引擎开始启动同步任务,首先根据任务配置加载对应同步数据源插件,进行初始化操作,加载插件所需资源,根据任务配置决定任务是否可以切分。具体的,主要通过判断插件是否实现了切分逻辑,当前任务类型是否是可切分状态来确定是否可以将目标同步任务切分为多个子任务。
在另一种可选的实施例中,jobManager切分后job变为多个task(子任务)。首先进行一次shuffle(打乱分配),分配给不同taskManager以防止资源倾斜,避免出现某一个taskManager数据量过大的情况,在分配完毕后将对应的任务配置发送到不同节点上,此次作业切分准备就绪。如图2所示为将目标同步任务切分为多个子任务的示意图。
可选地,通过每个资源组将原始数据源中,每个子任务对应的数据同步至目标数据源包括:通过每个资源组对应的读任务,从原始数据源中读取每个子任务对应的数据;通过每个资源组对应的写任务,将每个子任务对应的数据存储至目标数据源,其中,读任务和写任务通过每个资源组对应的数据通道进行数据传输。
上述的数据通道可以为传输介质管道。
在一种可选的实施例中,taskManager接收到任务列表后,会在内部首先创建资源组,一个资源组就是taskManager可并行执行的最大任务数,将任务加入资源组中,taskManager启动资源组,开始进行任务执行,在任务管理器中可以将task分为readTask(读任务)和writeTask(写任务),并创建传输介质管道channel,作为数据传输桥梁,开始执行数据传输,在执行过程中执行完毕的taskManager会进行销毁,释放资源,以便提供更多的资源空间,jobManager会直至整个作业完成后才进行销毁,保证对任务执行期间的指标信息,以便对任务执行的过程进行监控。如图3所示为一种数据传输的示意图。
可选地,该方法还包括:获取目标同步任务对应的流量阈值;基于流量阈值,确定每个子任务对应的目标流量阈值;对每个子任务对应的数据通道中传输的数据进行统计,得到每个子任务对应的目标流量;基于每个子任务对应的目标流量和目标流量阈值,确定是否对每个子任务对应的数据通道进行阻塞。
在一种可选的实施例中,首先将读取任务配置的限流策略,根据配置的限流种类分为Record限流(集合限流),字节限流。Record限流在限流器会根据并发数对每个channel进行划分,比如1000/s,有5个子任务同时执行,划分到每个子任务就是200/s,只要保证每个子任务在安全阈值内执行,即可保证所有任务的阈值,划分完成后,进行策略下发,每个子任务在执行过程中,通过channel中间介质对执行期间的任务信息进行捕捉,并上报给RateLimiter限流器,限流器进行统计,统计完成后判断是否过量,如果过量则对channel进行阻塞,达到反压数据源的效果,从而进行整体数据流动的限流策略,byte限流策略,与上述同理,不过byte限流是通过统计传输的字节大小进行统计,相比record粒度更加细致。如图4所示为流量控制的示意图。
通过上述步骤,可以支持任务粒度同步限速控制,不同任务之间互不影响,尽可能提供最大运行效率,能提供作业的分布式执行,子任务失败可支持部分重启恢复作业,不影响整体作业运行,以保证可用性高。
可选地,在第一子任务对应的数据传输完成之后,该方法还包括:通过第一子任务对应的数据通道对第一子任务对应的数据进行统计,得到第一子任务对应的统计结果,其中,统计结果包括:读取成功的数据、写出成功的数据和错误数据;基于第一子任务对应的统计结果,生成第一子任务对应的数据质量。
上述的数据质量是数据的一组固有属性满足数据消费者要求的程度,高质量的数据应从组织、战略、运营、项目、质量管理、相关方角度等满足数据消费者的要求。
在一种可选的实施例中,多个子任务可以是按批次进行处理的,第一子任务可以是当前批次处理的子任务,在对当前批次处理的子任务进行统计时,可以通过当前批次处理的子任务对应的数据通道来对该批次处理的子任务进行统计,得到该批次处理的子任务对应的统计结果,以便根据该统计结果来确定该批次处理的子任务的数据质量。
数据消费者对数据的需求包括如下至少之一:可得性、及时性、完整性。其中,可得性为当需要数据时能够获取到;及时性为当需要时,数据获得且是及时更新的;完整性为数据是完整没有遗漏的,所以在整个数据应用过程中数据质量是非常重要的一个环节,基于上述特性,可以引入数据质量监控功能,在数据质量当中数据的完整性和准确性是尤其重要的,所以,在同步过程中引入了数据质量模块,通过数据质量模块可以对第一子任务对应的数据质量进行监控。
如图5所示为监控数据质量的示意图,可以划分出不同的子任务开始数据传输,传输过程结束后,中间介质channel会将统计元信息,上报给执行引擎内部的收集器将数据收集转换。波动率计算即统计数据量级的波动比率和频率大小。一致性校验来保证当前同步任务的数据准确性,通过收集来的读数据量级与写出数据量级比对来确保不会产生数据丢失,如果产生错误数据,也可通过自定义监控规则进行匹配,来决定数据质量的好坏,提前发现数据问题。
通过上述步骤可以对数据质量最大程度保证准确和完整,在传输过程中不允许产生丢失数据情况发生,并对任务近期执行情况对数据质量作出验证决策监控。
可选地,响应于第二子任务执行失败的状态,重新通过第二子任务对应的资源组将第二子任务对应的数据同步至目标数据源。
上述的第二子任务可以当前批次任务中处理失败的子任务。
在一种可选的实施例中,在执行过程中,由于未知因素产生的readTask,或者writeTask异常执行失败,taskManager接收到子任务执行失败的状态,可以自动将失败的子任务重新拉起,继续执行任务,保证了任务执行过程的可用性,在当前作业不支持子任务自动容错情况下,调度器会接收到异常失败的信息,如果配置了重试策略,会默认将当前作业进行重试,并调度到其它备份集群,进行重试尝试以此来保证作业的稳定和高可用性。
可选地,在通过每个资源组将原始数据源中,每个子任务对应的数据同步至目标数据源之前,该方法还包括:对多个子任务进行打乱,得到打乱后的子任务;将打乱后的子任务分别分配至多个资源组。
在一种可选的实施例中,当接收到多个子任务时,可以先将多个子任务进行打乱,得到打乱后的子任务,并进行一次打乱分配,以防止资源倾斜从而导致某一个资源组的数据量过大。在将打乱后的子任务分配至多个资源组时,此次作业切分准备就绪。
可选地,响应于获取到多个同步任务,该方法还包括:确定每个同步任务对应的任务队列;将每个同步任务存储至每个同步任务对应的任务队列;从任务队列中获取目标同步任务。
在一种可选的实施例中,可以确定每个同步任务对应的队列,节点收到任务请求后首先会进行去重处理,防止重复请求,若不是重复请求,则开始进行同步任务的启动。
可选地,响应于存在执行资源,从任务队列中获取目标同步任务。
在一种可选的实施例中,在存在执行资源时,才可以从任务队列中获取到目标同步任务,如果资源池没有可用的执行资源,则无法获取凭证,则executor会停止向作业队列拉取作业,直至资源池释放资源,有充足资源可供作业执行。
可选地,该方法还包括:接收登录请求;对登录请求进行身份认证,得到认证结果;响应于认证结果为通过认证,创建目标同步任务。
在一种可选的实施例中,在通过本地权限认证后并携带访问授权token,请求服务端获取访问权限,完成人员识别,才认为认证成功,此时才获取可见任务列表,创建任务权限等。
如图6所示为创建任务权限的示意图。
可选地,该方法还包括:获取目标同步任务的调度信息,其中,调度信息包括:开始时间、结束时间和调度周期;响应于到达开始时间,每间隔调度周期,将原始数据源中的数据同步至目标数据源,直至到达结束时间。
在一种可选的实施例中,可以选定开始结束时间和调度周期,调度周期可选用普通调度方式或cron表达式的方式进行配置。开始结束时间必须比当前时间晚。例行开启后,任务会在开始时间创建一个实例开始调度,之后每隔一个调度周期都会创建一个实例开始调度,直到超过结束时间。
可选地,在开始时间之后的第二个调度周期开始之后,该方法还包括:获取上一个调度周期对应的执行状态;响应于执行状态为第一状态,将原始数据源中的数据同步至目标数据源;响应于执行状态为第二状态,且当前调度周期的执行时间到达预设时间,确定当前调度周期对应的执行状态为第三状态。
在一种可选的实施例中,可以配置依赖上一周期实例,从第二个周期开始,创建当前实例后,再创建当前实例与上一周期实例的例行依赖关系,并存储在数据库中,当发现上一周期的实例状态还未达到终态,当前实例则会一直处于挂起状态,直到上一周期实例达到终态或当前实例达到任务调度最大时间,当前实例开始执行或失败停止。
可选地,对登录请求进行身份认证,得到认证结果包括:对登录请求进行身份认证,得到第一结果;响应于第一结果为认证通过,发送身份识别请求至服务器,其中,身份识别请求包含登录请求对应的身份令牌;接收服务器返回的认证结果。
上述的登陆信息可以是用户账号和密码。
在一种可选的实施例中,可以对登陆信息进行身份认证,得到第一结果,其中,第一结果用于表示认证是否通过。在第一结果为认证通过时,可以发送身份识别请求至服务器。其中认证识别请求中携带有身份令牌,以便服务器根据该身份令牌来确定此次服务是否有效。
本申请的应用场景是在大规模的异构数据源之间进行稳定高效的数据同步功能,在日常数据同步过程中,往往针对不同业务需要实现不同的同步逻辑,这大大增加了开发人员的工作复杂度,所以本方案在设计之初采用了插件化的方式进行开发,引入一个中间层,经过中间层的转换,使得无论任何数据源,在接入过程中只要能对接到中间层上,就可完成与任意数据源的数据交换。
可选地,在传输过程中通常会将数据源的数据一次性做一个备份,存储在磁盘当中,这无异于使得数据持久化过程中增加了数据损坏的可能,同步完成对历史数据的清理等工作,涉及到数据的合法流通,所以本方案决定采用内存操作,同步过程中,数据不会持久化到磁盘当中,保证了数据的安全性。在异构数据源传输当中,往往会由于数据源之间的数据类型格式有所不同,导致数据存在失真情况,所以决定针对每种数据源插件,都内置了自己的数据类型转换策略,让数据可以完整无损的传输到目的端。对于数据的读取和写入,在数据源端压力过大的情况下,进行大规模的数据拉取和写入,必然会导致数据源的稳定性下降,这是我们不可接收的,这就要求我们必须在保证稳定性的前提下,达到最高的执行速度,否则必然会导致任务的不可用。
可选地,本申请中可以包括以下几个模块来实现上述的一种数据同步方法:
权限管理模块,用于提供对外访问出口,权限控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。包括用户身份权限,页面访问权限,资源操作权限等。
work-flow模块,用于提供任务调度信息的流转,包括容错策略,对集群的划分,任务异常做监控报警等。
executor模块,用于在具体执行机上负责任务实际的启动,和生命周期管理,可多机器部署提供弹性扩容能力。
Engine模块,用于提供实际数据同步能力,集成类型系统,任务切分,任务信息采集,脏数据收集等核心功能。
jobManager模块,用于对任务配置进行解析,选择合适的同步插件进行加载,对整个任务配置切分,划分资源组,并将子任务分配给对应的资源组TaskManage,负责监控整个job作业的执行,异常信息统计。
TaskManager模块,用于负责任务执行的资源组,负责被切分的任务实际执行,支持任务执行异常容错重启,资源组数决定任务并行度。
Channel模块,用于负责将数据源传入传出的中间介质,并负责统计数据流动的动态指标,异常信息。
RateLimiter模块,用于通过汇聚到的指标信息对任务的执行速率进行限制,保护双方数据源在稳定状态下达到最优效率。
Route模块,用于负责任务的路由分发,发送到不同的执行节点集群,当资源占用较大的任务开始执行,自动分发到备用集群,释放可用资源给尽可能多的任务。
本申请在高可用的处理上,从整体设计上采取分布式设计,将调度和执行器拆分,并抽象出来针对管理作业的作业管理器,和管理任务执行状态的任务管理器,作业管理会将任务调度到不同的任务管理器,每个任务分布在不同的节点运行,最终将执行结果汇总到作业管理器当中。针对每个作业进行限流,将任务分为读任务和写任务,引入中间传输管道,利用中间介质屏蔽两端的数据源的差异做中间转换,并限制写入写出速度,达到对任务的限流。
本申请在数据质量的处理上,默认提供了数据一致性的校验操作和对数据的波动率检测,通过检测数据近几天变化情况,为数据质量情况做出保证,提前发现数据隐患。具体为,任务执行完成后会将子任务终态元数据信息,上报给收集器,收集器收集到所有子任务数据,认定任务已经变成终态完成状态,查询出质量规则并进行规则计算,最后汇总结果上报给监控中心,进行处理告警。
实施例2
根据本申请实施例,还提供一种数据同步装置,该装置可以执行时行数实施例的数据处理方法,具体实现方式和优选应用场景与上述实施例相同,在此不做赘述。
图7是根据本发明实施例的一种数据同步装置的示意图,如图7所示,该装置包括:
获取模块702,用于获取目标同步任务,其中,目标同步任务至少包括:原始数据源和目标数据源;
加载模块704,用于加载原始数据源对应的同步插件;
同步模块706,用于通过同步插件将原始数据源中的数据同步至目标数据源。
可选地,同步模块还用于确定目标同步任务是否允许切分;响应于目标同步任务允许切分,将目标同步任务切分为多个子任务;创建多个子任务对应的多个资源组;通过每个资源组将原始数据源中,每个子任务对应的数据同步至目标数据源。
可选地,同步模块还用于通过每个资源组对应的读任务,从原始数据源中读取每个子任务对应的数据;通过每个资源组对应的写任务,将每个子任务对应的数据存储至目标数据源,其中,读任务和写任务通过每个资源组对应的数据通道进行数据传输。
可选地,该装置还用于获取目标同步任务对应的流量阈值;基于流量阈值,确定每个子任务对应的目标流量阈值;对每个子任务对应的数据通道中传输的数据进行统计,得到每个子任务对应的目标流量;基于每个子任务对应的目标流量和目标流量阈值,确定是否对每个子任务对应的数据通道进行阻塞。
可选地,该装置还用于通过第一子任务对应的数据通道对第一子任务对应的数据进行统计,得到第一子任务对应的统计结果,其中,统计结果包括:读取成功的数据、写出成功的数据和错误数据;基于第一子任务对应的统计结果,生成第一子任务对应的数据质量。
可选地,该装置还用于响应于第二子任务执行失败的状态,重新通过第二子任务对应的资源组将第二子任务对应的数据同步至目标数据源。
可选地,该装置还用于对多个子任务进行打乱,得到打乱后的子任务;将打乱后的子任务分别分配至多个资源组。
可选地,该装置还用于确定每个同步任务对应的任务队列;将每个同步任务存储至每个同步任务对应的任务队列;从任务队列中获取目标同步任务。
可选地,该装置还用于响应于存在执行资源,从任务队列中获取目标同步任务。
可选地,该装置还用于接收登录请求;对登录请求进行身份认证,得到认证结果;响应于认证结果为通过认证,创建目标同步任务。
可选地,该装置还用于获取目标同步任务的调度信息,其中,调度信息包括:开始时间、结束时间和调度周期;响应于到达开始时间,每间隔调度周期,将原始数据源中的数据同步至目标数据源,直至到达结束时间。
可选地,该装置还用于获取上一个调度周期对应的执行状态;响应于执行状态为第一状态,将原始数据源中的数据同步至目标数据源;响应于执行状态为第二状态,且当前调度周期的执行时间到达预设时间,确定当前调度周期对应的执行状态为第三状态。
可选地,该装置还用于对登录请求进行身份认证,得到第一结果;响应于第一结果为认证通过,发送身份识别请求至服务器,其中,身份识别请求包含登录请求对应的身份令牌;接收服务器返回的认证结果。
实施例3
根据本发明实施例,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述实施例1中的数据质同步方法。
实施例4
根据本发明实施例,还提供了一种计算机终端,包括:处理器和存储器,处理器用于运行程序,其中,程序运行时执行上述实施例1中的数据同步方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (16)
1.一种数据同步方法,其特征在于,包括:
获取目标同步任务,其中,所述目标同步任务至少包括:原始数据源和目标数据源;
加载所述原始数据源对应的同步插件;
通过所述同步插件将所述原始数据源中的数据同步至所述目标数据源。
2.根据权利要求1所述的方法,其特征在于,将所述原始数据源中的数据同步至所述目标数据源包括:
确定所述目标同步任务是否允许切分;
响应于所述目标同步任务允许切分,将所述目标同步任务切分为多个子任务;
创建所述多个子任务对应的多个资源组;
通过每个资源组将所述原始数据源中,每个子任务对应的数据同步至所述目标数据源。
3.根据权利要求2所述的方法,其特征在于,通过每个资源组将所述原始数据源中,每个子任务对应的数据同步至所述目标数据源包括:
通过所述每个资源组对应的读任务,从所述原始数据源中读取所述每个子任务对应的数据;
通过所述每个资源组对应的写任务,将所述每个子任务对应的数据存储至所述目标数据源,其中,所述读任务和所述写任务通过所述每个资源组对应的数据通道进行数据传输。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取所述目标同步任务对应的流量阈值;
基于所述流量阈值,确定所述每个子任务对应的目标流量阈值;
对所述每个子任务对应的数据通道中传输的数据进行统计,得到所述每个子任务对应的目标流量;
基于所述每个子任务对应的目标流量和目标流量阈值,确定是否对所述每个子任务对应的数据通道进行阻塞。
5.根据权利要求3所述的方法,其特征在于,在第一子任务对应的数据传输完成之后,所述方法还包括:
通过所述第一子任务对应的数据通道对所述第一子任务对应的数据进行统计,得到所述第一子任务对应的统计结果,其中,所述统计结果包括:读取成功的数据、写出成功的数据和错误数据;
基于所述第一子任务对应的统计结果,生成所述第一子任务对应的数据质量。
6.根据权利要求3所述的方法,其特征在于,响应于第二子任务执行失败的状态,重新通过所述第二子任务对应的资源组将所述第二子任务对应的数据同步至所述目标数据源。
7.根据权利要求2所述的方法,其特征在于,在通过每个资源组将所述原始数据源中,每个子任务对应的数据同步至所述目标数据源之前,所述方法还包括:
对所述多个子任务进行打乱,得到打乱后的子任务;
将所述打乱后的子任务分别分配至所述多个资源组。
8.根据权利要求1至7中任意一项所述的方法,其特征在于,响应于获取到多个同步任务,所述方法还包括:
确定每个同步任务对应的任务队列;
将所述每个同步任务存储至所述每个同步任务对应的任务队列;
从所述任务队列中获取所述目标同步任务。
9.根据权利要求8所述的方法,其特征在于,响应于存在执行资源,从所述任务队列中获取所述目标同步任务。
10.根据权利要求1至7中任意一项所述的方法,其特征在于,所述方法还包括:
接收登录请求;
对所述登录请求进行身份认证,得到认证结果;
响应于所述认证结果为通过认证,创建所述目标同步任务。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
获取所述目标同步任务的调度信息,其中,所述调度信息包括:开始时间、结束时间和调度周期;
响应于到达所述开始时间,每间隔所述调度周期,将所述原始数据源中的数据同步至所述目标数据源,直至到达所述结束时间。
12.根据权利要求11所述的方法,其特征在于,在所述开始时间之后的第二个调度周期开始之后,所述方法还包括:
获取上一个调度周期对应的执行状态;
响应于所述执行状态为第一状态,将所述原始数据源中的数据同步至所述目标数据源;
响应于所述执行状态为第二状态,且当前调度周期的执行时间到达预设时间,确定所述当前调度周期对应的执行状态为第三状态。
13.根据权利要求10所述的方法,其特征在于,对所述登录请求进行身份认证,得到认证结果包括:
对所述登录请求进行身份认证,得到第一结果;
响应于所述第一结果为认证通过,发送身份识别请求至服务器,其中,所述身份识别请求包含所述登录请求对应的身份令牌;
接收所述服务器返回的所述认证结果。
14.一种数据同步装置,其特征在于,包括:
获取模块,用于获取目标同步任务,其中,所述目标同步任务至少包括:原始数据源和目标数据源;
加载模块,用于加载所述原始数据源对应的同步插件;
同步模块,用于通过所述同步插件将所述原始数据源中的数据同步至所述目标数据源。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至13中任意一项所述的数据同步方法。
16.一种计算机终端,其特征在于,包括:处理器和存储器,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至13中任意一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111554752.9A CN114218329A (zh) | 2021-12-17 | 2021-12-17 | 数据同步方法、装置、存储介质以及计算机终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111554752.9A CN114218329A (zh) | 2021-12-17 | 2021-12-17 | 数据同步方法、装置、存储介质以及计算机终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114218329A true CN114218329A (zh) | 2022-03-22 |
Family
ID=80703798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111554752.9A Pending CN114218329A (zh) | 2021-12-17 | 2021-12-17 | 数据同步方法、装置、存储介质以及计算机终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114218329A (zh) |
-
2021
- 2021-12-17 CN CN202111554752.9A patent/CN114218329A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10873623B2 (en) | Dynamically modifying a cluster of computing nodes used for distributed execution of a program | |
US8321558B1 (en) | Dynamically monitoring and modifying distributed execution of programs | |
US9208029B2 (en) | Computer system to switch logical group of virtual computers | |
CN109857558A (zh) | 一种数据流处理方法及系统 | |
CN111400011B (zh) | 一种实时任务调度方法、系统、设备及可读存储介质 | |
CN107423942B (zh) | 一种业务流转的方法及装置 | |
CN105556499A (zh) | 智能自动缩放 | |
CN107133231B (zh) | 一种数据获取方法和装置 | |
CN111459642B (zh) | 一种分布式系统中故障处理和任务处理方法及装置 | |
CN105827678B (zh) | 一种基于高可用架构下的通信方法和节点 | |
CN109361777B (zh) | 分布式集群节点状态的同步方法、同步系统及相关装置 | |
CN110727508A (zh) | 一种任务调度系统和调度方法 | |
CN109902028A (zh) | Acl特性的自动化测试方法、装置、设备及存储介质 | |
CN112882765A (zh) | 数字孪生模型调度方法和装置 | |
CN111984505A (zh) | 一种运维数据采集引擎及采集方法 | |
CN106412088A (zh) | 一种数据同步方法及终端 | |
CN114020819A (zh) | 一种多系统参数同步方法及装置 | |
CN113672452A (zh) | 一种数据采集任务的运行监控方法、系统 | |
CN114218329A (zh) | 数据同步方法、装置、存储介质以及计算机终端 | |
CN113965538B (zh) | 设备状态消息处理方法、装置及存储介质 | |
CN113515524A (zh) | 一种分布式缓存接入层节点的自动动态分配方法及装置 | |
CN112054926A (zh) | 集群管理方法、装置、电子设备及存储介质 | |
CN111679899A (zh) | 任务调度方法、装置、平台设备及存储介质 | |
CN112328388B (zh) | 一种融合多线程及分布式技术的并行计算方法及系统 | |
CN112988889B (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 |