CN115756811A - 一种数据传输方法、装置、设备及存储介质 - Google Patents
一种数据传输方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115756811A CN115756811A CN202111026374.7A CN202111026374A CN115756811A CN 115756811 A CN115756811 A CN 115756811A CN 202111026374 A CN202111026374 A CN 202111026374A CN 115756811 A CN115756811 A CN 115756811A
- Authority
- CN
- China
- Prior art keywords
- execution engine
- data
- target
- execution
- transmission
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据传输方法、装置、设备及存储介质,包括:获取数据传输任务的传输配置信息;根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎;创建所述目标执行引擎对应的执行引擎实例;基于所述执行引擎实例执行所述数据传输任务;从而根据当前数据传输任务的传输配置信息在多个执行引擎中选取一个适应当前待传输数据的执行引擎,在提高数据传输性能的同时,避免传输资源的浪费。
Description
技术领域
本申请涉及计算机技术领域,涉及但不限于一种数据传输方法、装置设备、及存储介质。
背景技术
数据传输工具用于将数据从发送端传输至接收端。相关技术中,数据传输工具包括:异构数据源离线同步工具DataX、在Hadoop(Hive)与传统的数据库(mysql、postgresql等)之间进行数据的传递的工具Sqoop等。其中,DataX只在单节点运行,存在单点故障和输入输出(Input-Output,IO)瓶颈,不适合大数据量的数据抽取,且传输效率较低。Sqoop将导入或导出命令翻译成映射归约(MapReduce)程序来实现数据的传送,因此,Sqoop只适用于大数据量的任务传输,而且启动MapReduce任务需要一定时间,映射(map)阶段之后还要进行数据的排序和归约(reduce)阶段,不适用于小数据量的任务传输。
因此,相关技术中的数据传输工具无法适应不同的传输任务。
发明内容
本申请实施例提供一种数据传输方法、装置、设备及存储介质,能够基于适应当前待传输数据的执行引擎进行待传输数据的传输。
本申请实施例的技术方案是这样实现的:
本申请实施例提供了一种数据传输方法,所述方法包括:
获取数据传输任务的传输配置信息;
根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎;
创建所述目标执行引擎对应的执行引擎实例;
基于所述执行引擎实例执行所述数据传输任务。
本申请实施例提供了一种数据传输装置,所述装置包括:
获取模块,用于获取数据传输任务的传输配置信息;
选取模块,用于根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎;
创建模块,用于创建所述目标执行引擎对应的执行引擎实例;
执行模块,用于基于所述执行引擎实例执行所述数据传输任务。
本申请实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据传输方法中的步骤。
本申请实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据传输方法。
本申请实施例所提供的数据传输方法、装置、设备及存储介质,获取数据传输任务的传输配置信息;根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎;创建所述目标执行引擎对应的执行引擎实例;基于所述执行引擎实例执行所述数据传输任务;从而根据当前数据传输任务的传输配置信息在多个执行引擎中选取一个适应当前待传输数据的执行引擎,在提高数据传输性能的同时,避免传输资源的浪费。
附图说明
图1为本申请实施例提供的数据传输系统的一种可选的结构示意图;
图2为本申请实施例提供的数据传输系统的一种可选的结构示意图;
图3为本申请实施例提供的数据传输方法的一种可选的流程示意图;
图4为本申请实施例提供的服务端的一种可选的逻辑结构示意图;
图5为本申请实施例提供的数据传输系统的一种可选的结构示意图;
图6为本申请实施例提供的数据传输系统的一种可选的结构示意图;
图7为本申请实施例提供的目标执行引擎的一种可选的选取规则示意图;
图8为本申请实施例提供的数据传输装置的一种可选的结构示意图;
图9为本申请实施例提供的电子设备的一种可选的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
本申请实施例可提供为数据传输方法及设备、存储介质。实际应用中,数据传输方法可实施于电子设备,电子设备中的各功能实体可以由电子设备(如终端设备、服务器)的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)协同实现。
本申请实施例提供的数据传输方法应用于数据传输系统。
作为一示例,数据传输系统的结构可如图1所示,包括:第一数据端101、服务端102和第二数据端103,第一数据端101和第二数据端103为不同的数据源,其中,服务端102能够将第一数据端101的数据传输至第二数据端103,也可将第二数据端103的数据传输至第一数据端103。第一数据端101可为以下数据存储系统之一:关系型数据库MySQL、数据库Oracle、分布式系统基础架构Hadoop的分布式文件系统(Distributed File System,HDFS)、基于Hadoop的一个数据仓库工具Hive、基于Hadoop的结构化数据的分布式存储系统Hbase,第二数据端103可为以下数据存储系统之一:MySQL、Oracle、Hadoop的HDFS、Hive、Hbase。其中,第一数据端101和第二数据端103的系统类型可相同,也可不同。
服务端102控制数据在第一数据端101和第二数据端103之间进行传输。
在实际应用中,服务端102和第一数据端101可位于同一物理实体,也可位于不同的物理实体上。服务端102和第二数据端103可位于同一物理实体,也可位于不同的物理实体上。
在一示例中,数据传输系统还包括有客户端104,客户端104可与服务端102位于不同的物理实体,也可与服务端102位于同一物理实体。
如图2所示,当客户端104与服务端102位于不同的物理实体,客户端104与服务端102可通过网络105进行通信。客户端可接收用户配置的传输任务的传输配置信息,并将传输配置信息发送至服务端,以在服务端发起传输任务。
本申请实施例提供的数据传输方法可应用服务端102。
本申请实施例中,服务端获取数据传输任务的传输配置信息;根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎;创建所述目标执行引擎对应的执行引擎实例;基于所述执行引擎实例执行所述数据传输任务,从而将待传输数据从第一数据端传输至第二数据端或将待传输数据从第二数据端传输至第一数据端。
结合图1或图2所示的数据传输系统,本实施例提出一种数据传输方法,根据当前数据传输任务的传输配置信息在多个执行引擎中选取一个适应当前待传输数据的执行引擎,在提高数据传输性能的同时,避免传输资源的浪费。
下面,结合图1或图2所示的数据传输系统的示意图,对本申请实施例提供的数据传输方法及设备、存储介质的各实施例进行说明。
本实施例提供一种数据传输方法,该方法应用于电子设备。该方法所实现的功能可以通过电子设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该电子设备至少包括处理器和存储介质。
电子设备可以是任何具有信息处理能力的设备,在一种实施例中,电子设备可以是智能终端,例如可以是笔记本等具有无线通信能力的电子设备、AR/VR设备、移动终端。在另一种实施例中,电子设备还可以是不便移动的具有计算功能的终端设备,比如台式计算机、桌面电脑等。在再一实施例中,电子设备还可以是服务器,比如:云端服务器等。
当然,本申请实施例不局限于提供为方法和硬件,还可有多种实现方式,例如提供为存储介质(存储有用于执行本申请实施例提供的数据传输方法的指令)。
图3为本申请实施例的数据传输方法的实现流程示意图,如图3所示,该方法包括以下步骤:
S301、服务端获取数据传输任务的传输配置信息。
所述数据传输任务用于传输待传输数据,传输配置信息可包括以下信息至少之一:数据源、作业的并发数,其中,数据源包括表征待传输数据的发送端的源数据源和表征待传输数据的接收端的目的数据源中的一个或两个。
在一示例中,传输配置信息可包括:表征用户指定的执行引擎的引擎信息。
本申请实施例中,传输配置信息可由客户端发送至服务端。
在一示例中,传输配置信息还可包括:待传输数据的数据量。其中,待传输数据的数据量可为客户端发送至服务端,也可为服务端自身评估的。
S302、服务端根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎。
本申请实施例中,如图4所示,服务端102中包括有执行引擎401、……执行引擎40N,其中,N大于或等于2。其中,不同的引擎可位于不同的数据系统中。
本申请实施例中,服务端中的执行引擎可包括以下执行引擎中的至少两个:第一执行引擎、第二执行引擎和第三执行引擎。其中,第一执行引擎能够利用数据库的原生接口进行数据的读写;第二执行引擎用于启动设定数量个映射,并在每一所述映射中执行一个作业的数据的读写;可为Mapreduce执行引擎。第三执行引擎基于内存进行数据的读写。在一示例中,第一执行引擎为本地(Native)执行引擎,第二执行引擎为Mapreduce执行引擎,第三执行引擎为Yarn执行引擎。
本申请实施例中,对服务端中的执行引擎的数量和类型不进行任何限定。
在一示例中,数据传输系统中包括Mapreduce执行引擎和Yarn执行引擎。
在一示例中,数据传输系统中包括Mapreduce执行引擎和本地执行引擎。
在一示例中,数据传输系统中包括Mapreduce执行引擎和本地执行引擎。
在一示例中,数据传输系统中包括Mapreduce执行引擎、Yarn执行引擎和本地执行引擎。
Mapreduce执行引擎,根据用户设置的作业并发数对待传输数据进行分片,然后将任务提交到hadoop集群,由hadoop集群进行资源的调度,hadoop集群会启动一个容器,运行AppMaster,然后再启动若干个容器运行作业,一般一个容器对应一个map,在map中进行一个分片的读取和写入,不用对数据进行排序和reduce操作。MapReduce执行引擎适合大数据量的数据传输,仅在map节点进行任务的抽取和装载,省去了数据排序和reduce阶段的用时,能够显著提升数据传输效率。
Yarn执行引擎,先根据用户设置的并发数,对数据进行分片,然后启动一个容器,在容器里面直接多并发的运行作业的读取和写入,适合小数据量的任务传输,在AppMaster里面利用生产者消费者模式传输任务,不再启动新的container,省去启动新的container的耗时,同时又利用了Hadoop的资源调度和容错的能力。
Native执行引擎,根据用户配置的并发数,对数据进行分片,然后启动多线程,使用数据库快速读取或者写入的特性,进行并发的快速数据传输对于数据库相关的任务,优先采用数据库的原生接口,进行数据库传输。
服务端可根据传输配置信息中的一种或多种类型的结合来选取目标执行引擎。
在一示例中,引擎信息的优先级大于包括数据源、数据量等其他传输配置信息。
当传输配置信息包括表征用户指定的执行引擎的引擎信息的情况下,数据控制端基于用户指定的执行引擎来选取目标执行引擎;当传输配置信息中不包括有引擎信息的情况下,数据控制端基于数据源、数据量等其他传输配置信息来选取目标执行引擎。
在一示例中,引擎信息的优先级小于数据源、数据量等其他传输配置信息。
当传输配置信息包括数据源、数据量等引擎信息以外的其他传输配置信息的情况下,数据控制端基于数据源、数据量等其他传输配置信息来选取目标执行引擎;当传输配置信息不包括数据源、数据量等引擎信息以外的其他传输配置信息的情况下,数据控制端基于用户指定的执行引擎来选取目标执行引擎。
当服务端基于引擎信息以外的数据源、数据量等其他传输配置信息来选取目标执行引擎时,可基于数据源和数据量中的一种或多种来选取目标执行引擎。
在一示例中,服务端基于数据源选取目标执行引擎。
在一示例中,服务端基于数据量选取目标执行引擎。
在一示例中,服务端基于数据源、数据量选取目标执行引擎。
以服务端基于数据源、数据量选取目标执行引擎为例,服务端可先基于数据源确定候选执行引擎,当基于数据源选取的候选执行引擎为一个的情况下,可选取的候选执行引擎作为目标执行引擎,在当基于数据源选取的候选执行引擎包括多个的情况下,可基于数据量再从候选执行引擎中选取目标执行引擎。
以服务端基于数据源、数据量选取目标执行引擎为例,服务端可先基于数据量确定候选执行引擎,当基于数据量选取的候选执行引擎为一个的情况下,可选取的候选执行引擎作为目标执行引擎,在当基于数据量选取的候选执行引擎包括多个的情况下,可基于数据源再从候选执行引擎中选取目标执行引擎。
以服务端基于数据源、数据量选取目标执行引擎为例,服务端可为各执行引擎设置选取分数,并基于数据源和数据量来确定当前的估值,并基于估值和各执行引擎的选取分数来选取目标执行引擎。
本申请实施例中,对服务端基于传输配置信息选取目标执行引擎的具体方式不进行任何的限定。
S303、服务端创建所述目标执行引擎对应的执行引擎实例。
服务端确定目标执行引擎后,为目标执行引擎创建一个线程,以执行与目标执行引擎相关的处理,该线程为该目标执行引擎对应的执行引擎实例。
S304、服务端基于所述执行引擎实例执行所述数据传输任务。
服务端执行S303创建的执行引擎实例生成目标执行引擎对应的可执行文件即目标文件,以执行数据传输任务,将待传输数据从发送端传输至接收端。其中,目标文件中描述有目标执行文件处理作业的处理逻辑。
服务端在生成目标文件之后,将目标文件发送至目标执行文件对应的目标端,已在目标端执行目标文件,从而基于目标执行引擎的处理逻辑进行待传输数据的传输。
本申请实施例所提供的数据传输方法,获取数据传输任务的传输配置信息;根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎;创建所述目标执行引擎对应的执行引擎实例;基于所述执行引擎实例执行所述数据传输任务;从而根据当前数据传输任务的传输配置信息在多个执行引擎中选取一个适应当前待传输数据的执行引擎,在提高数据传输性能的同时,避免传输资源的浪费。
在一些实施例中,所述传输配置信息包括:表征用户指定的执行引擎的引擎信息;S302的实施包括:选取所述至少两个执行引擎中,所述引擎信息对应的执行引擎为所述目标执行引擎。
当基于传输配置信息中的引擎信息来选取目标执行引擎,则将引擎信息所指示的执行引擎作为目标执行引擎。其中,引擎信息可为引擎的标识或索引。
在一示例中,数据传输系统中的执行引擎包括:第一执行引擎、第二执行引擎和第三执行引擎,当传输配置信息中的引擎信息指示的执行引擎为第一执行引擎,则目标执行引擎为第一执行引擎。
在一些实施例中,所述传输配置信息包括:指示所述待传输数据的传输端的数据源,所述数据源包括以下至少之一:指示所述待传输数据的发送端的源数据源和指示所述待传输的数据的接收端的目标数据源;S302的实施包括:
根据所述数据源确定所述传输端是否包括数据库;
当所述传输端包括数据库的情况下,选取所述至少两个执行引擎中的第一执行引擎为目标执行引擎;所述第一执行引擎利用数据库的原生接口进行数据的读写。
本申请实施例中,当传输端中包括数据库时,可选择第一执行引擎作为目标执行引擎,其中,第一执行引擎可为本地执行引擎,使得数据传输系统通过本地执行引擎在数据库中进行数据的读取和/或写入。
传输端包括数据库可包括以下情况中任一种:
情况一、发送端为数据库;
情况二、接收端为数据库;
情况三、发送端为数据库且接收端为数据库。
本申请实施例提供的数据传输方法,能够在传输端包括数据库的情况下,选取使用数据库的原生接口进行数据传输的本地执行引擎来传输数据,从而能够使用数据库快速读取或者写入的特性,进行快速数据传输。
在一些实施例中,所述传输配置信息包括:所述待传输数据的数据量;所述根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎,包括:
当所述数据量大于数据量阈值,选取所述至少两个执行引擎中的第二执行引擎为目标执行引擎;所述第二执行引擎用于启动设定数量个映射,并在每一所述映射中执行一个作业的数据的读写;当所述数据量小于或等于数据量阈值,选取所述至少两个执行引擎中的第三执行引擎为目标执行引擎;,所述第三执行引擎基于内存进行数据的读写。
本申请实施例中,第二执行引擎能够很好的支持大数据量的传输任务,可为MapReduce执行引擎。第三执行引擎能够很好的支持小数据量的传输任务,可为Yarn执行引擎。
这里,待传输数据的数据量记为S,数据量阈值记为T,当S大于或等于T,则将第二执行引擎为目标执行引擎,当S小于T,则选取第三执行引擎为目标执行引擎。
本申请实施例提供的数据传输方法,能够在传输端不涉及数据库的情况下,根据待传输数据的数据量的大小来选取适合做大数据量传输任务的执行引擎或适合做小数据量传输任务的执行引擎来传输数据,从而提高数据传输速率的同时,减少不必要的资源浪费。
在一些实施例中,所述获取数据传输任务的传输配置信息,包括:
预判断所述待传输数据的数据量。
本申请实施例中,与判断待传输数据的数量的方式可根据实际需求限定。在一示例中,待传输数据的源数据源是数据库,服务端可通过查询数据库中的记录条数来确定数据量。
在一示例中,待传输数据的源数据源是文件系统,服务端可通过需要传输的文件的大小来确定数据量。
在一些实施例中,S303的实施包括:
S3031、根据所述传输配置信息生成作业描述文件;
S3032、在所述执行引擎实例中,对所述作业描述文件进行封装,得到所述目标执行引擎能够识别的目标文件;
S3033、通过所述执行引擎实例,将所述目标文件提交至所述目标执行引擎对应的目标端,以使得所述目标端基于所述目标文件执行所述数据传输任务。
在S3031中,生成的作业描述文件用于描述数据传输任务。
在S3032中,封装的目的是使得目标执行引擎能够识别当前作业描述文件。因此,可基于目标执行引擎能够识别的格式对当前作业描述文件进行封装。在一示例中,当目标执行引擎为Native执行引擎,则通过SQL语句对作业描述文件进行封装。
S3033中,将目标文件发送至目标执行引擎对应的目标端。
在一示例中,当目标执行引擎为MapReduce执行引擎或Yarn执行引擎,目标执端为Hadoop集群,此时,服务端将目标文件发送至Hadoop集群。这里,Hadoop集群接收到目标文件的情况下,利用自身的分布式能力运行目标文件,从而将待传输数据从发送端传输至接收端。
在一示例中,当目标执行引擎为本地执行引擎,则将目标文件发送至本地系统,本地系统执行目标文件,从而将待传输数据从发送端传输至接收端。
本申请实施例中,执行目标文件时,可基于传输配置信息中的并发数量将待传输数据划分为对应数量的分片,从而并发执行待传输数据的传输。
在一些实施例中,在S304之后中,还可实施以下步骤:
S305、通过所述执行引擎实例接收所述目标执行引擎对应的目标端发送的执行信息;
S306、将所述执行信息发送至客户端。
当目标执行引擎对应的目标端为服务端本地,则服务端本地在基于目标执行引擎执行数据传输任务时,产生执行信息,此时,服务端的执行引擎实例接收到执行信息。
当目标执行引擎对应的目标端为服务端以外的其他端,则其他端在基于目标文件执行数据传输任务时,产生执行信息,并将执行信息发送至服务端中,服务端的执行引擎实例接收到执行信息。
这里,执行信息可包括:执行进度、处理的记录条数和状态。其中,执行进度指示作业完成的百分比和运行时长,比如目前进度50%。处理记录条数指示当前处理的记录的数量,其中,每个作业都涉及到传输了多少条记录,比如一次传输作业,传输了100万条记录。状态指示当前作业执行成功与否,包括:运行中,失败,成功和终止等当前数据传输任务的状态。
服务端接的执行引擎实例接收到执行信息后,将执行信息反馈给客户端,使得用户通过客户端能够获知数据传输任务的执行情况。
下面,通过具体的应用场景对本申请实施例提供的数据传输方法进行进一步说明。
相关技术中,数据传输系统包括:DataX、Sqoop等。DataX只在单节点运行,存在单点故障和IO瓶颈,不适合大数据量的数据抽取,且效率较低。Sqoop只适用于大数据量的任务传输,并且的现有的数据传输系统不能有效利用数据库快速读写的特性来提升数据传输效率。
本申请实施例提供的数据传输方法中的服务端,可以支持MapReduce执行引擎、Yarn执行引擎和Native(本地)执行引擎,用户可以指定执行引擎,在用户不指定执行引擎时可以根据数据量选择执行引擎,从而对小数据量和大数据量的任务都能够很好地支持,并使用数据库快速读写的特性,提升数据的传输效率。
本申请实施例提供的实施数据传输方法的服务端,可以支持MapReduce执行引擎、Yarn执行引擎和Native执行引擎。
MapReduce执行引擎主要用于大数据量的数据传输,能够利用Hadoop平台的资源调度和分布式完成大数据的任务传输,并且只在map阶段中完成任务的抽取和装载,有效避免数据排序及reduce阶段的耗时带来的传输效率低下的问题。
Yarn执行引擎主要用于小数据量的数据传输,直接在AppMaster中通过多线程的方式运行数据传输任务,既使用了Hadoop的调度和失败重试机制,又有效避免MapReduce任务多次启动容器带来的耗时问题。
Native执行引擎主要是利用数据库的快读读写特性进行的数据传输任务。
本申请实施例提供的数据传输方法可应用于图5所示的数据传输系统500,数据传输系统500包括客户端501和服务端502,服务端502中包括作业管理单元5021、引擎选择单元5022和执行引擎5023,其中,执行引擎5023包括:Mapreduce执行引擎5231、Yarn执行引擎5232和本地执行引擎5233。
MapReduce引擎5231,适合大数据量的数据传输,仅在map节点进行任务的抽取和装载,省去了数据排序和reduce阶段的用时,能够显著提升数据传输效率。
Yarn引擎5232,适合小数据量的任务传输,在AppMaster里面利用生产者消费者模式传输任务,不再启动新的container,省去启动新的container的耗时,同时又利用了Hadoop的资源调度和容错的能力。
Native引擎5232,对于数据库相关的任务,优先采用数据库的原生接口,进行数据库的数据的传输。
本申请实施例中,当传输端包括数据库时,采用数据库的原生接口传输数据效率高,而且可以充分利用数据库的能力。
其中,数据库除了原生接口外还有Java数据库连接(Java DatabaseConnectivity,JDBC)接口,一般数据库JDBC接口效率较低,采用数据库原生接口的传输效率高于JDBC接口,因此,Native引擎5232优先采用数据库的原生接口,进行数据库的数据的传输。
基于数据传输系统500,本申请实施例提供的数据传输方法包括:
S601、服务端接收客户端提交作业。
在客户端,用户通过Java或者Shell语言编写作业(即传输任务)的配置信息,然后提交作业到服务端。其中,配置信息可包括源数据源、目的数据源、作业的并发数,配置信息还可包括用户指定的执行引擎(可选)。
如图6所示,客户端501向服务端502提交作业61。
服务端中的作业管理模块接收到作业的配置信息。
S602、服务端进行目标执行引擎的选择。
服务端的作业管理模块将配置信息发送至引擎选择模块,引擎选择模块进行目标执行引擎的选择。
如图6所示,作业管理模块5021向引擎选择单元5022发送目标执行引擎选择指令62,引擎选择单元5022基于目标执行引擎选择指令62触发目标执行引擎的选择。
本申请实施例中,引擎选择模块从以下三个执行引擎中选择执行当前作业的目标执行引擎:Mapreduce执行引擎、Yarn执行引擎和本地执行引擎。
引擎选择模块进行目标执行引擎的选择的规则如图7所示,包括:
S701、判断用户是否配置执行引擎。
如果配置了,则执行S708,如果未配置,则执行S702。
S702、判断作业是否是数据库相关的作业。
这里,判断作业的源数据源或目的数据源是数据库,如果是,则作业是数据库相关的作业,如果源数据源和目的数据源都不是数据库,则作业不是数据库相关的作业。
如果作业是数据库相关的作业,则执行S703,否则,执行S704。
S703、选择本地执行引擎为目标执行引擎。
S704、预判断需要传输的待传输数据的数据量S。
S705、将待传输数据的数据量S和设定的数据量阈值T进行比较。
这里,当S小于T,则执行S707,当S大于或等于T,则执行S706。
S706、选择MapReduce执行引擎为目标执行引擎。
S707、选择Yarn执行引擎为目标执行引擎。
S708、选择用户配置的执行引擎为目标执行引擎。
S603、服务端根据用户设置的作业配置,生成适应可执行作业。
其中,可执行作业中标识有当前目标执行引擎的标识。
如图6所示,引擎选择单元将生成的可执行作业63发送至目标执行引擎。
S604、服务端根据目标执行引擎生成执行引擎实例。
根据选择的目标执行引擎,生成对应的执行引擎实例。
如图6所示,在目标执行引擎中,对可执行作业进行封装,然后将封装的可执行作业64提交到Hadoop集群(MapReduce引擎或Yarn引擎)或者本地系统(Native引擎)。其中,当目标执行引擎为MapReduce引擎5231,提交后的可执行作业为MapReduce作业,且由MapReduce531基于MapReduce作业执行数据传输,当目标执行引擎为Yarn引擎5232,提交后的可执行作业为Yarn作业,且由Yarn532基于Yarn作业执行数据传输,当目标执行引擎为本地引擎5233,提交后的可执行作业为本地作业,且由本地任务533基于本地作业执行数据传输。
其中,MapReduce作业531基于映射5311将源数据源541的数据传输至目标数据源543,Yarn作业532基于内存5321将源数据源541的数据传输至目标数据源543,本地任务533基于数据库原生接口5331将源数据源541的数据传输至目标数据源543。
S605、Hadoop或者本地系统将作业的执行信息发送给执行引擎实例。
Hadoop或者本地系统不断地将作业的执行信息发送给执行引擎实例。其中,执行信息包括:执行进度、处理的记录条数和状态。
如图6所示,各可执行作业将执行信息65发送至对应的执行引擎实例。
S606、执行引擎实例将执行信息发送至作业管理模块。
如图6所示,执行引擎实例将执行信息65发送至作业管理模块。
S607、业管理模块将作业的执行信息返回给客户端。
如图6所示,作业管理模块5021将执行信息65发送至客户端501。
业管理模块不断地将作业的执行信息返回给客户端,直到作业运行结束。
本申请实施例提供的基于Hadoop的数据传输方法,可以支持MapReduce执行引擎、Yarn执行引擎和Native(本地)执行引擎,用户可以指定执行引擎,在用户不指定时可以根据数据量智能选择执行引擎,对小数据量和大数据量的任务都能够很好地支持,并使用数据库具有的特性,提升数据的传输效率。欲保护点如下:支持多种执行引擎,并根据数据量或者用户配置,选择执行引擎,对小数据量和大数据量的任务都能够很好地支持,并根据数据库的特性进行了性能优化,有效的提升数据传输任务的执行效率;MapReduce引擎只在map阶段传输任务,有效提升传输效率;Yarn引擎使用Hadoop的调度和容错能力,启动时间短,对小数据量的任务有明显优势;另外,在数据库相关的任务传输方面进行了优化,Native引擎使用数据库具有快读读写的特性,提升数据的传输效率;Native利用数据库的特性,传输性能较Sqoop和DataX(JDBC方式)优势明显。
本申请实施例提供一种数据传输装置800,如图8所示,数据传输装置800包括:
获取模块801,用于获取数据传输任务的传输配置信息;
选取模块802,用于根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎;
创建模块803,用于创建所述目标执行引擎对应的执行引擎实例;
执行模块804,用于基于所述执行引擎实例执行所述数据传输任务。
在一些实施例中,所述传输配置信息包括:表征用户指定的执行引擎的引擎信息;所述根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎,包括:
选取所述至少两个执行引擎中,所述传输配置信息中的引擎信息对应的执行引擎为所述目标执行引擎。
在一些实施例中,选取模块802还用于:
根据所述传输配置信息中的数据源确定所述传输端是否包括数据库;所述数据源指示所述待传输数据的传输端,所述数据源包括以下至少之一:指示所述待传输数据的发送端的源数据源和指示所述待传输的数据的接收端的目标数据源;
当所述传输端包括数据库的情况下,选取所述至少两个执行引擎中的第一执行引擎为目标执行引擎;所述第一执行引擎利用数据库的原生接口进行数据的读写。
在一些实施例中,选取模块802还用于:
当所述传输配置信息中的待传输数据的数据量大于数据量阈值,选取所述至少两个执行引擎中的第二执行引擎为所述目标执行引擎;所述第二执行引擎用于启动设定数量个映射,并在每一所述映射中执行一个作业的数据的读写;
当所述数据量小于或等于所述数据量阈值,选取所述至少两个执行引擎中的第三执行引擎为所述目标执行引擎;所述第三执行引擎基于内存进行数据的读写。
在一些实施例中,获取模块801还用于:
预判断所述待传输数据的数据量。
在一些实施例中,执行模块804还用于:
根据所述传输配置信息和所述目标执行引擎生成作业描述文件;
在所述执行引擎实例中,对所述作业描述文件进行封装,得到所述目标执行引擎能够识别的目标文件;
通过所述执行引擎实例,将所述目标文件提交至所述目标执行引擎对应的目标端,以使得所述目标端基于所述目标文件执行所述数据传输任务。
在一些实施例中,装置800还包括:
接收模块,用于通过所述执行引擎实例接收所述目标执行引擎对应的目标端发送的执行信息;
发送模块,用于将所述执行信息发送至客户端。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的数据传输方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
对应地,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例中提供的数据传输方法中的步骤。
对应地,本申请实施例提供一种存储介质,也就是计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的数据传输方法。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,图9为本申请实施例电子设备的一种硬件实体示意图,如图9所示,所述电子设备900包括:一个处理器901、至少一个通信总线902、用户接口903、至少一个外部通信接口904和存储器905。其中,通信总线902配置为实现这些组件之间的连接通信。其中,用户接口903可以包括显示屏,外部通信接口904可以包括标准的有线接口和无线接口。
存储器905配置为存储由处理器901可执行的指令和应用,还可以缓存待处理器901以及电子设备中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据传输方法,其特征在于,所述方法包括:
获取数据传输任务的传输配置信息;
根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎;
创建所述目标执行引擎对应的执行引擎实例;
基于所述执行引擎实例执行所述数据传输任务。
2.根据权利要求1所述的方法,其特征在于,所述传输配置信息包括:表征用户指定的执行引擎的引擎信息;所述根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎,包括:
选取所述至少两个执行引擎中,所述引擎信息对应的执行引擎为所述目标执行引擎。
3.根据权利要求1所述的方法,其特征在于,所述传输配置信息包括:指示所述待传输数据的传输端的数据源,所述数据源包括以下至少之一:指示所述待传输数据的发送端的源数据源和指示所述待传输的数据的接收端的目标数据源;所述根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎,包括:
根据所述数据源确定所述传输端是否包括数据库;
当所述传输端包括数据库的情况下,选取所述至少两个执行引擎中的第一执行引擎为目标执行引擎;所述第一执行引擎利用数据库的原生接口进行数据的读写。
4.根据权利要求1或3所述的方法,其特征在于,所述传输配置信息包括:所述待传输数据的数据量;所述根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎,包括:
当所述数据量大于数据量阈值,选取所述至少两个执行引擎中的第二执行引擎为所述目标执行引擎;所述第二执行引擎用于启动设定数量个映射,并在每一所述映射中执行一个作业的数据的读写;
当所述数据量小于或等于所述数据量阈值,选取所述至少两个执行引擎中的第三执行引擎为所述目标执行引擎;所述第三执行引擎基于内存进行数据的读写。
5.根据权利要求4所述的方法,其特征在于,所述获取数据传输任务的传输配置信息,包括:
预判断所述待传输数据的数据量。
6.根据权利要求1所述的方法,其特征在于,所述基于所述执行引擎实例执行所述数据传输任务,包括:
根据所述传输配置信息和所述目标执行引擎生成作业描述文件;
在所述执行引擎实例中,对所述作业描述文件进行封装,得到所述目标执行引擎能够识别的目标文件;
通过所述执行引擎实例,将所述目标文件提交至所述目标执行引擎对应的目标端,以使得所述目标端基于所述目标文件执行所述数据传输任务。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述执行引擎实例接收所述目标执行引擎对应的目标端发送的执行信息;
将所述执行信息发送至用户端。
8.一种数据传输装置,其特征在于,所述装置包括:
获取模块,用于获取数据传输任务的传输配置信息;
选取模块,用于根据所述传输配置信息,从至少两个执行引擎中选取目标执行引擎;
创建模块,用于创建所述目标执行引擎对应的执行引擎实例;
执行模块,用于基于所述执行引擎实例执行所述数据传输任务。
9.一种电子设备,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述数据传输方法中的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现权利要求1至7任一项所述数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111026374.7A CN115756811A (zh) | 2021-09-02 | 2021-09-02 | 一种数据传输方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111026374.7A CN115756811A (zh) | 2021-09-02 | 2021-09-02 | 一种数据传输方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115756811A true CN115756811A (zh) | 2023-03-07 |
Family
ID=85332099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111026374.7A Pending CN115756811A (zh) | 2021-09-02 | 2021-09-02 | 一种数据传输方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115756811A (zh) |
-
2021
- 2021-09-02 CN CN202111026374.7A patent/CN115756811A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102240557B1 (ko) | 데이터 저장 방법, 장치 및 시스템 | |
US11036547B2 (en) | File operation task optimization | |
US10348815B2 (en) | Command process load balancing system | |
CN110247984B (zh) | 业务处理方法、装置及存储介质 | |
CN110888842A (zh) | 一种文件存储方法、文件查询方法、装置及设备 | |
JPWO2011067932A1 (ja) | 表検索装置、表検索方法、及び、表検索システム | |
CN109800937A (zh) | 机器人集群调度系统 | |
CN113032099B (zh) | 云计算节点、文件管理方法及装置 | |
CN111416825A (zh) | 线程间无锁日志管理方法和系统、终端、存储介质 | |
CN111736982B (zh) | 一种5g数据转发平面的数据转发处理方法和服务器 | |
CN115203159B (zh) | 一种数据存储方法、装置、计算机设备和存储介质 | |
CN113190534A (zh) | 数据库数据迁移方法及装置 | |
US11190620B2 (en) | Methods and electronic devices for data transmission and reception | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN114237892A (zh) | 键值数据的处理方法、装置、电子设备及存储介质 | |
WO2024037629A1 (zh) | 区块链的数据整合方法、装置、计算机设备及存储介质 | |
CN106484375B (zh) | 一种指令块加载方法、软交换设备及系统 | |
US9069821B2 (en) | Method of processing files in storage system and data server using the method | |
CN115756811A (zh) | 一种数据传输方法、装置、设备及存储介质 | |
CN113377777B (zh) | 数据加载方法、设备、计算机程序产品及存储介质 | |
US9659041B2 (en) | Model for capturing audit trail data with reduced probability of loss of critical data | |
US20220050811A1 (en) | Method and apparatus for synchronizing file | |
CN114691720A (zh) | 数据查询方法、数据库系统、可读介质和电子设备 | |
CN113868249A (zh) | 一种数据存储方法、装置、计算机设备以及存储介质 | |
CN118012576B (zh) | 基于异步i/o进程的应用文件并行读写适配方法与装置 |
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 |