CN106919443A - 执行计算任务的方法、装置及系统 - Google Patents

执行计算任务的方法、装置及系统 Download PDF

Info

Publication number
CN106919443A
CN106919443A CN201510994422.XA CN201510994422A CN106919443A CN 106919443 A CN106919443 A CN 106919443A CN 201510994422 A CN201510994422 A CN 201510994422A CN 106919443 A CN106919443 A CN 106919443A
Authority
CN
China
Prior art keywords
calculating task
calculating
data
task
data source
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
Application number
CN201510994422.XA
Other languages
English (en)
Inventor
贾元乔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510994422.XA priority Critical patent/CN106919443A/zh
Publication of CN106919443A publication Critical patent/CN106919443A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例公开了一种执行计算任务的方法、装置及系统,其中该方法包括:解析所接收的多个计算任务,获取每个计算任务的数据源;判断多个计算任务中,是否存在数据源相同的计算任务;如果存在,从相同数据源读取数据;输出所读取数据至相同数据源计算任务的执行设备,所述执行设备将根据所读取数据执行计算任务;采用本申请所公开的方法、装置及系统,可提高分布式计算平台执行任务的效率。

Description

执行计算任务的方法、装置及系统
技术领域
本申请涉及互联网的领域,特别涉及一种执行计算任务的方法、装置及系统。
背景技术
在分布式计算平台中,如图1所示,通常会设置一主设备和多个从设备,主设备主要用于接收计算任务,且分配计算任务至从设备;从设备主要用于根据主设备的分配,执行计算任务。而从设备执行计算任务的过程一般如下:首先确定主设备分配计算任务的数据源;然后读取数据源存储的数据;再然后对读取的数据进行过滤,获取目标数据;最后利用计算程序对目标数据进行计算,即执行计算任务。
在实际应用中,分布式计算平台可同时接收多个计算任务,而如果所接收的多个计算任务的数据源相同,那么从设备需要从同一数据源多次读取数据;比如分布式计算平台接收到A、B、C三个计算任务,且这三个计算任务的数据源均为M;而主设备分别将A、B、C三个计算任务分配至从设备A、从设备B以及从设备C执行;那么从设备A在执行计算任务A时,需首先确定计算任务A的数据源M,然后从数据源M读取数据;从设备B在执行计算任务B时,也需首先确定计算任务B的数据源M,然后从数据源M读取数据;从设备C在执行计算任务C时,亦是如此。
由上可见,在现有技术中,当分布式计算平台所接收多个计算任务的数据源相同时,从设备需多次从同一数据源读取数据,从而使得分布式计算平台执行任务的效率低下。
申请内容
本申请实施例中提供了一种执行计算任务的方法、装置及系统,以提高分布式计算平台执行任务的效率。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
第一方面,公开了一种执行计算任务的方法,包括:
解析所接收的多个计算任务,获取每个计算任务的数据源;
判断多个计算任务中,是否存在数据源相同的计算任务;
如果存在,从相同数据源读取数据;
输出所读取数据至相同数据源计算任务的执行设备,所述执行设备将根据所读取数据执行计算任务。
可选的,第一方面的方法还包括:
判断数据源相同的计算任务中,是否存在过滤条件,所述过滤条件用于对读取的数据进行过滤;
如果存在,利用所述过滤条件对所读取的数据进行过滤,获得目标数据。
可选的,所读取数据包括目标数据,所述输出所读取数据至相同数据源计算任务的执行设备,包括:
输出所述目标数据至相同数据源计算任务的执行设备。
可选的,第一方面的方法还包括:
判断多个计算任务间是否存在执行顺序;
如果不存在,使执行设备并列执行多个计算任务。
第二方面,公开了一种执行计算任务的方法,包括:
判断一计算任务的输出是否作为多个计算任务的输入;
如果是,获取所述计算任务输出的数据源,且从所述数据源读取数据;
输出所读取数据至所述多个计算任务的执行设备,所述执行设备将根据所读取数据执行计算任务。
可选的,第二方面的方法还包括:
判断多个计算任务间是否存在执行顺序;
如果不存在,使执行设备并列执行多个计算任务。
第三方面,公开了一种执行计算任务的装置,包括:
解析模块,用于解析所接收的多个计算任务,获取每个计算任务的数据源;
第一判断模块,用于判断多个计算任务中,是否存在数据源相同的计算任务;
读取模块,用于当存在数据源相同的计算任务时,从相同数据源读取数据;
第一输出模块,用于输出所读取数据至相同数据源计算任务的执行设备,所述执行设备将根据所读取数据执行计算任务。
可选的,第三方面的装置还包括:
第二判断模块,用于判断据源相同的计算任务中,是否存在过滤条件,所述过滤条件用于对读取的数据进行过滤;
过滤模块,用于当所述计算任务中,存在过滤条件时,利用所述过滤条件对所读取的数据进行过滤,获得目标数据。
可选的,所读取数据包括目标数据,所述第一输出模块,包括:
目标数据输出单元,用于输出所述目标数据至相同数据源计算任务的执行设备。
可选的,第三方面的装置还包括:
第三判断模块,用于判断多个计算任务间是否存在执行顺序;
第一并列执行模块,用于当多个计算任务间不存在执行顺序时,使执行设备并列执行多个计算任务。
第四方面,公开一种执行计算任务的装置,包括:
第四判断模块,用于判断一计算任务的输出是否作为多个计算任务的输入;
获取读取模块,用于当一计算任务的输出作为多个计算任务的输入时,获取所述计算任务输出的数据源,且从所述数据源读取数据;
第二输出模块,用于输出所读取数据至所述多个计算任务的执行设备,所述执行设备将根据所读取数据执行计算任务。
可选的,第四方面的装置还包括:
第五判断模块,用于判断多个计算任务间是否存在执行顺序;
第二并列执行模块,用于当多个计算任务间不存在执行顺序时,使执行设备并列执行多个计算任务。
第五方面,公开一种执行计算任务的系统,所述系统包括如权利要求7—12任一项所述的执行计算任务的装置以及执行设备;所述执行设备,用于根据执行计算任务的装置所输出的读取数据,执行计算任务。
由以上技术方案可见,在本申请实施例中,首先解析所接收的多个计算任务,获得每个计算任务的数据源;然后判断多个计算任务中,是否存在数据源相同的计算任务;如果存在,从相同数据源读取数据;最后,输出所读取数据至相同数据源计算任务的执行设备;由于执行设备可直接根据所读取数据执行任务,因此,采用本申请实施例所公开的方法、装置及系统,对于具有相同数据源的计算任务,仅需从数据源读取一次数据即可,相比现有技术中的多次读取数据的方式,提高了分布式计算平台执行任务的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所公开的分布式计算平台的一示意图;
图2为本申请实施例所公开的执行计算任务的方法一流程示意图;
图3为本申请实施例所公开的执行计算任务的方法另一流程示意图;
图4a为本申请实施例所公开的执行计算任务的方法又一流程示意图;
图4b为本申请实施例所公开的执行计算任务的方法另一流程示意图;
图5为本申请实施例所公开的执行计算任务的方法另一流程示意图;
图6为本申请实施例所公开的计算任务示意图;
图7为本申请实施例所公开的执行计算任务的方法又一流程示意图;
图8为本申请实施例所公开的执行计算任务的装置的一结构示意图;
图9为本申请实施例所公开的执行计算任务的系统的一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请公开了一种执行计算任务的方法,所述方法应用于如图1所示的分布式计算平台中,在本申请实施例中,当分布式计算平台接收到多个计算任务时,分布式计算平台的主设备首先为每个计算任务分配执行计算任务的从设备(即执行设备),然后主设备将按照,如图2所示流程,对计算任务进行处理,具体如下:
步骤S21:解析所接收的多个计算任务,获得每个计算任务的数据源;
在本申请实施例中,分布式计算平台所接收的计算任务通常以程序代码的形式呈现,且程序代码中通常包含计算任务的数据源。以以下计算任务为例,详细说明步骤S21:
“create table test__00 as
select*
from tbcdm.dim_tb_itm
where ds=’20150904’
and item_id=0;”
在本申请实施例中,通过对上述程序代码的解析,即可获得该计算任务的数据源“tbcdm.dim_tb_itm”。
步骤S22:判断多个计算任务中,是否存在数据源相同的计算任务;如果存在,执行步骤S23;否则执行步骤S25;
步骤S23:从相同数据源读取数据;
在本申请实施例中,例如接收两个计算任务,分别为计算任务A和计算任务B,通过步骤S21的解析,获得计算任务A的数据源为“tbcdm.dim_tb_itm”;计算任务B的数据源为“tbcdm.dim_tb_itm”;通过步骤S22的判断,可确定计算任务A与计算任务B的数据源相同,均为“tbcdm.dim_tb_itm”;那么,在步骤S23中,将读取数据源“tbcdm.dim_tb_itm”处所存储的数据。
步骤S24:输出所读取数据至相同数据源计算任务的执行设备,所述执行设备将根据所读取数据执行计算任务;
在本申请实施例中,上述步骤S24可具体为将所读取数据写入相同数据源计算任务的执行设备,而执行设备将利用相应的应用程序对写入的数据进行处理,从而完成计算任务。
步骤S25:输出不相同数据源计算任务至执行设备。
在本申请实施例中,不相同数据源计算任务的执行设备,可具体按照如下方式,执行计算任务:首先通过主设备获取不相同计算任务的数据源(由于在本申请实施例中,主设备预先已通过解析计算任务,获得每个计算任务的数据源,因此执行设备可获取计算任务的数据源);然后从相应数据源读取数据;最后,利用相应的计算程序对所读取数据进行计算,从而完成计算任务。
在实际应用中,由于分布式计算平台,可处理各种类型的计算任务,比如Sql、Pl以及Mr等类型,而对于不同类型的计算任务,计算平台的处理流程均不相同,因此,在本申请实施例中,当用户需采用上述方法,对计算任务进行处理时,可预先将上述计算任务打包成一预定类型,比如para task类型,而计算平台一旦检测到预定类型的计算任务时,将采用上述流程对计算任务进行处理。
由以上技术方案可见,在本申请实施例中,首先解析所接收的多个计算任务,获得每个计算任务的数据源;然后判断多个计算任务中,是否存在数据源相同的计算任务;如果存在,从相同数据源读取数据;最后,输出所读取数据至相同数据源计算任务的执行设备;由于执行设备可直接根据所读取数据执行任务,因此,采用本申请实施例所公开的方法,对于具有相同数据源的计算任务,仅需从数据源读取一次数据即可,相比现有技术中的多次读取数据的方式,提高了分布式计算平台执行任务的效率。
本申请公开了另一种执行计算任务的方法,所述方法应用于如图1所示的分布式计算平台中,在本申请实施例中,当分布式计算平台接收到多个计算任务时,分布式计算平台的主设备首先为每个计算任务分配执行计算任务的从设备(即执行设备),然后主设备将按照,如图3所示流程,对计算任务进行处理,具体如下:
步骤S31:解析所接收的多个计算任务,获得每个计算任务的数据源;
步骤S32:判断多个计算任务中,是否存在数据源相同的计算任务;如果存在,执行步骤S33;否则,执行步骤S38;
步骤S33:从相同数据源读取数据;
步骤S34:判断数据源相同的计算任务中,是否存在过滤条件;如果存在,执行步骤S35;否则执行S37;
在实际应用中,分布式计算平台所接收的有些计算任务,并不是对数据源所存储的全部数据进行处理,而仅需对其中的一部分数据进行处理,此时,会在计算任务中,设置过滤条件,所述过滤条件用于对所读取的数据进行过滤;比如,分布式计算平台所接收的一计算任务如下:
“create table test__00 as
select*
from tbcdm.dim_tb_itm
where ds=’20150904’
and item_id=0;”
通过对上述计算任务进行分析可得,该计算任务是对数据源“tbcdm.dim_tb_itm” 所存储数据中,满足“where ds=’20150904’and item_id=0”这一条件的数据进行处理,而where ds=’20150904’and item_id=0”即为该计算任务的过滤条件。
步骤S35:利用所述过滤条件对所读取数据进行过滤,获得目标数据;
步骤S36:输出目标数据至相同数据源计算任务的执行设备,所述执行设备将根据目标数据执行计算任务;
在本申请实施例中,可具体将目标数据写入至相同数据源计算任务的执行设备,而执行设备直接利用相应计算程序对目标数据进行处理即可。
步骤S37:输出所读取数据至相同数据源计算任务的执行设备;
步骤S38:输出不相同数据源计算任务至执行设备;
由上可见,在本申请实施例中,首先解析所接收的多个计算任务,获得每个计算任务的数据源;然后判断多个计算任务中,是否存在数据源相同的计算任务;如果存在,从相同数据源读取数据;最后,输出所读取数据至相同数据源计算任务的执行设备;由于执行设备可直接根据所读取数据执行任务,因此,采用本申请实施例所公开的方法,对于具有相同数据源的计算任务,仅需从数据源读取一次数据即可,相比现有技术中的多次读取数据的方式,提高了分布式计算平台执行任务的效率。
在本申请的另一可行实施例中,上述所有实施例中的步骤S21或步骤S31可包括:
A:确定多个计算任务的编写语言;
B:根据所述编写语言的语法规则,分别对多个计算任务进行解析,获得每个计算任务的数据源。
如前所述,计算任务通常以程序代码的形式呈现,而用户可采用不同的编写语言编写计算任务,且不同编写语言的语法规则为不同的。因此,在本申请实施例中,需根据计算任务编写语言的语法规则,确定计算任务的数据源
在本申请的又一可行实施例中,如图4a或4b所示,上述所有实施例中的方法还可包括:
步骤S41:判断多个计算任务间是否存在执行顺序;如果存在,执行步骤S42;否则,执行步骤S43;
步骤S42:使执行设备按顺序执行多个计算任务;
步骤S43:使执行设备并列执行多个计算任务。
在实际应用中,分布式计算平台所接收的多个计算任务可能存在执行顺序,比如:接收计算任务A、B、C以及D,且计算任务A的输出作为计算任务B的输入,计算任务B的输出作为计算任务C的输入,计算任务C的输出作为计算任务D的输出,那么此时执行设备必须按顺序执行计算任务A—B—C—D。而分布式计算平台所接收的大部分计算任务为独立的,即多个计算任务间并不存在执行顺序,而现有技术中,仍按接收计算任务的顺序执行计算任务,那么将造成计算任务的执行效率低下。在本申请实施例中,当多个计算任务不存在执行顺序时,可使执行设备并列执行多个计算任务。具体的,当多个计算任务分配至不同的执行设备时,可使不同的执行设备同时执行多个计算任务,而当多个计算任务分配至同一执行设备时,可使执行设备分配不同的进程为多个计算任务,从而同时执行多个计算任务。
本申请还公开了一种执行计算任务的方法,如图5所示,所述方法至少包括:
步骤S51:判断一计算任务的输出是否作为多个计算任务的输入;如果是,执行步骤S52;否则,结束流程;
在分布式计算平台中,如图6所示,一计算任务的输出结果可作为多个计算任务的输入,此时这多个计算任务的输入实际是相同的。由于在实际应用中,计算任务N0输出结果的数据量较大,因此一般将输出结果的存储地址作为数据源,输入至N1至Nn多个计算任务。因此,在现有技术中,执行设备在执行N1至Nn多个计算任务时,仍需多次从同一数据源读取数据。
步骤S52:获取所述计算任务输出的数据源,且从所述数据源读取数据;
在本申请实施例中,仍沿用上述举例,即从上述数据源读取计算任务N0的输出结果。
步骤S53:输出所读取数据至所述多个计算任务的执行设备,所述执行设备将根据所读取数据执行计算任务。
在本申请实施例中,仍沿用上述举例,即将所读取的输出结果分别输出至计计算任务N0至Nn的执行设备。
由上可见,采用本申请实施例中的方法,对于N1至Nn n个计算任务,只需读取一次数据,相对于现有技术中的,多次读取数据,提高了分布式计算平台执行任务的效率。
在本申请的另一可行实施例中,如图7所示,上述所有实施例中的方法,还可包括:
步骤S71:判断多个计算任务间是否存在执行顺序;如果存在,执行步骤S72;否则,执行步骤S73;
在本申请实施例中,仍沿用上述举例,即判断计算任务N1至Nn,n个计算任务间是否存在执行顺序。
步骤S72:使执行设备按顺序执行多个计算任务;
步骤S73:使执行设备并列执行多个计算任务。
在本申请实施例中,仍沿用上述举例,即使计算任务N1至Nn的执行设备,并列执行N个计算任务。
由于在现有技术中,执行设备一般按顺序执行计算任务,而在本申请中,当多个计算任务间不存在执行顺序时,使执行设备并列执行多个计算任务,从而提高分布式计算平台执行任务的效率。
在本申请的另一可行实施例中,以分布式计算平台输入T1、T2、T3以及T4四个计算任务为例,详细说明本申请的过程:
假设分布式计算平台输入T1、T2、T3以及T4四个计算任务,且计算任务T1具体如下:
“create table test__00 as
select*
from tbcdm.dim_tb_itm
where ds=’20150904’
and item_id=0;”
计算任务T2具体如下:
“create table test__01 as
select*
from tbcdm.dim_tb_itm
where ds=’20150904’
and item_id=1;”
计算任务T3具体如下:
“create table test__02 as
select*
from tbcdm.dim_tb_itm
where ds=’20150904’
and item_id=2;”
计算任务T4具体如下:
“create table test as
select item_id
from(select*from test_00
union al l
select*from test_01
union al l
select*from test_02
)par
group by item_id
分别对计算任务T1、T2、T3以及T4进行解析,可获得计算任务T1的数据源为“tbcdm.dim_tb_itm”,过滤条件为“ds=’20150904’and item_id=0”;计算任务T2的数据源为“tbcdm.dim_tb_itm”,过滤条件为“ds=’20150904’and item_id=1”;计算任务T3的数据源为“tbcdm.dim_tb_itm”,过滤条件为“ds=’20150904’anditem_id=2”;计算任务T4的数据源为“select*from test_00union al l select*from test_01union al l select*from test_02”,过滤条件为“group by item_id”。
由上可见,计算任务T1、T2以及T3的数据源相同,均为“tbcdm.dim_tb_itm”。因此,在本申请实施例中,可读取“tbcdm.dim_tb_itm”处所存储的数据;然后,分别采用计算任务T1的过滤条件““ds=’20150904’and item_id=0”、计算任务T2的过滤条件“ds=’20150904’and item_id=1”、计算任务T3的过滤条件“ds=’20150904’and item_id=2”对所读取的数据进行过滤,获得计算任务T1的目标数据、计算任务T2的目标数据以及计算任务T3的目标数据。最后,将计算任务T1、T2以及T3的目标数据分别写入至执行设备的存储空间,所述执行设备将直接利用目标数据,执行计算任务T1、T2以及T3。同时,由于计算任务T1、T2、T3相互间并不存在执行顺序,因此,可使执行设备并列执行上述三个计算任务。
而对于计算任务T4,可直接将T4输出至预先分配的执行设备,所述执行设备按照现有技术中的方法,执行计算任务T4。
由于在本申请实施例中,可一次读取T1、T2、T3三个计算任务的数据源,且可同时执行上述三个计算任务,相对于现有技术中的方法,三次读取数据源,且T1、T2、T3三个计算任务按顺序执行,可提高分布式计算平台,执行任务的效率。
通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
与本申请提供的执行计算任务的方法实施例相对应的,本申请还提供了一种执行计算任务的装置,如图8所示,所述装置至少包括:
解析模块81,用于解析所接收的多个计算任务,获取每个计算任务的数据源;
第一判断模块82,用于判断多个计算任务中,是否存在数据源相同的计算任务;
读取模块83,用于当存在数据源相同的计算任务时,从相同数据源读取数据;
第一输出模块84,用于输出所读取数据至相同数据源计算任务的执行设备,所述执行设备将根据所读取数据执行计算任务。
由以上技术方案可见,在本申请实施例中,首先解析所接收的多个计算任务,获得每个计算任务的数据源;然后判断多个计算任务中,是否存在数据源相同的计算任务;如果存在,从相同数据源读取数据;最后,输出所读取数据至相同数据源计算任务的执行设备;由于执行设备可直接根据所读取数据执行任务,因此,采用本申请实施例所公开的装置,对于具有相同数据源的计算任务,仅需从数据源读取一次数据即可,相比现有技术中的多次读取数据的方式,提高了分布式计算平台执行任务的效率。
在本申请的又一可行实施例中,上述所有实施例中的装置还可包括:
第二判断模块,用于判断据源相同的计算任务中,是否存在过滤条件,所述过滤条件用于对读取的数据进行过滤;
过滤模块,用于当所述计算任务中,存在过滤条件时,利用所述过滤条件对所读取的数据进行过滤,获得目标数据。
由上可见,在本申请实施例中,可对数据源读取的数据进行过滤。
在本申请的另一可行实施例中,上述所有实施例中的所读取数据包括目标数据,所述第一输出模块,包括:
目标数据输出单元,用于输出所述目标数据至相同数据源计算任务的执行设备。
在本申请实施例中,执行设备可直接对目标数据进行计算,从而提高执行计算任务的效率。
在本申请的又一可行实施例中,上述所有实施例中的装置还可包括:
第三判断模块,用于判断多个计算任务间是否存在执行顺序;
第一并列执行模块,用于当多个计算任务间不存在执行顺序时,使执行设备并列执行多个计算任务。
由上可见,采用本申请实施例所公开的装置,可并列执行多个计算任务,从而提高分布式计算平台执行任务的效率。
与本申请提供的执行计算任务的方法实施例相对应的,本申请又提供了一种执行计算任务的装置,所述装置至少包括:
第四判断模块,用于判断一计算任务的输出是否作为多个计算任务的输入;
获取读取模块,用于当一计算任务的输出作为多个计算任务的输入时,获取所述计算任务输出的数据源,且从所述数据源读取数据;
第二输出模块,用于输出所读取数据至所述多个计算任务的执行设备,所述执行设备将根据所读取数据执行计算任务。
由上可见,采用本申请实施例中的方法,对于多个计算任务,只需读取一次数据,相对于现有技术中的,多次读取数据,提高了分布式计算平台执行任务的效率。
在本申请的又一可行实施例中,上述所有实施例中的装置还可包括:
第五判断模块,用于判断多个计算任务间是否存在执行顺序;
第二并列执行模块,用于当多个计算任务间不存在执行顺序时,使执行设备并列执行多个计算任务。
由上可见,采用本申请实施例所公开的装置,可并列执行多个计算任务,从而提高分布式计算平台执行任务的效率。
本申请还公开了一种执行计算任务的系统,如图9所示,所述系统包括上述所有实施例中的执行计算任务的装置91以及执行设备92;
在本申请实施例中,执行计算任务的装置91的功能可具体由分布式计算平台的主设备实现,执行设备92的功能可具体由分布式计算平台的从设备实现;执行设备92可根据执行计算任务的装置91所输出的读取数据,执行计算任务。
采用本申请实施例中所公开的执行计算任务的系统,可提高分布式计算平台执行计算任务的效率。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (13)

1.一种执行计算任务的方法,其特征在于,包括:
解析所接收的多个计算任务,获取每个计算任务的数据源;
判断多个计算任务中,是否存在数据源相同的计算任务;
如果存在,从相同数据源读取数据;
输出所读取数据至相同数据源计算任务的执行设备,所述执行设备将根据所读取数据执行计算任务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断数据源相同的计算任务中,是否存在过滤条件,所述过滤条件用于对读取的数据进行过滤;
如果存在,利用所述过滤条件对所读取的数据进行过滤,获得目标数据。
3.根据权利要求2所述的方法,其特征在于,所读取数据包括目标数据,所述输出所读取数据至相同数据源计算任务的执行设备,包括:
输出所述目标数据至相同数据源计算任务的执行设备。
4.根据权利要求1—3任一项所述的方法,其特征在于,所述方法还包括:
判断多个计算任务间是否存在执行顺序;
如果不存在,使执行设备并列执行多个计算任务。
5.一种执行计算任务的方法,其特征在于,包括:
判断一计算任务的输出是否作为多个计算任务的输入;
如果是,获取所述计算任务输出的数据源,且从所述数据源读取数据;
输出所读取数据至所述多个计算任务的执行设备,所述执行设备将根据所读取数据执行计算任务。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
判断多个计算任务间是否存在执行顺序;
如果不存在,使执行设备并列执行多个计算任务。
7.一种执行计算任务的装置,其特征在于,包括:
解析模块,用于解析所接收的多个计算任务,获取每个计算任务的数据源;
第一判断模块,用于判断多个计算任务中,是否存在数据源相同的计算任务;
读取模块,用于当存在数据源相同的计算任务时,从相同数据源读取数据;
第一输出模块,用于输出所读取数据至相同数据源计算任务的执行设备,所述执行设备将根据所读取数据执行计算任务。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二判断模块,用于判断据源相同的计算任务中,是否存在过滤条件,所述过滤条件用于对读取的数据进行过滤;
过滤模块,用于当所述计算任务中,存在过滤条件时,利用所述过滤条件对所读取的数据进行过滤,获得目标数据。
9.根据权利要求8所述的装置,其特征在于,所读取数据包括目标数据,所述第一输出模块,包括:
目标数据输出单元,用于输出所述目标数据至相同数据源计算任务的执行设备。
10.根据权利要求7-9任一项所述的装置,其特征在于,所述装置还包括:
第三判断模块,用于判断多个计算任务间是否存在执行顺序;
第一并列执行模块,用于当多个计算任务间不存在执行顺序时,使执行设备并列执行多个计算任务。
11.一种执行计算任务的装置,其特征在于,包括:
第四判断模块,用于判断一计算任务的输出是否作为多个计算任务的输入;
获取读取模块,用于当一计算任务的输出作为多个计算任务的输入时,获取所述计算任务输出的数据源,且从所述数据源读取数据;
第二输出模块,用于输出所读取数据至所述多个计算任务的执行设备,所述执行设备将根据所读取数据执行计算任务。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第五判断模块,用于判断多个计算任务间是否存在执行顺序;
第二并列执行模块,用于当多个计算任务间不存在执行顺序时,使执行设备并列执行多个计算任务。
13.一种执行计算任务的系统,其特征在于,所述系统包括如权利要求7—12任一项所述的执行计算任务的装置,以及,执行设备;所述执行设备,用于根据执行计算任务的装置所输出的读取数据,执行计算任务。
CN201510994422.XA 2015-12-25 2015-12-25 执行计算任务的方法、装置及系统 Pending CN106919443A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510994422.XA CN106919443A (zh) 2015-12-25 2015-12-25 执行计算任务的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510994422.XA CN106919443A (zh) 2015-12-25 2015-12-25 执行计算任务的方法、装置及系统

Publications (1)

Publication Number Publication Date
CN106919443A true CN106919443A (zh) 2017-07-04

Family

ID=59454721

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510994422.XA Pending CN106919443A (zh) 2015-12-25 2015-12-25 执行计算任务的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN106919443A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1755689A (zh) * 2004-09-30 2006-04-05 微软公司 合并来自多个数据源的数据以在电子文档中使用的方法、系统和计算机可读介质
CN102096687A (zh) * 2009-12-14 2011-06-15 阿里巴巴集团控股有限公司 一种调度任务的方法和平台
CN103838626A (zh) * 2014-02-27 2014-06-04 华为技术有限公司 一种处理串行任务的数据处理装置及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1755689A (zh) * 2004-09-30 2006-04-05 微软公司 合并来自多个数据源的数据以在电子文档中使用的方法、系统和计算机可读介质
CN102096687A (zh) * 2009-12-14 2011-06-15 阿里巴巴集团控股有限公司 一种调度任务的方法和平台
CN103838626A (zh) * 2014-02-27 2014-06-04 华为技术有限公司 一种处理串行任务的数据处理装置及方法

Similar Documents

Publication Publication Date Title
CN106599317B (zh) 问答系统的测试数据处理方法、装置及终端
CN105808437B (zh) 基于测试用例数据表的自动化测试方法及系统
CN107391526A (zh) 一种基于区块链的数据处理方法及设备
CN104182405A (zh) 一种连接查询方法及装置
CN105988930A (zh) 测试用例生成方法和装置
CN104424256B (zh) 布隆过滤器生成方法和装置
CN103425632A (zh) 一种序列化的方法、装置及处理器
CN106651228A (zh) 用于查询物流跟踪信息的方法、装置及系统
CN106251122A (zh) 一种工作流处理方法和装置
CN107330572A (zh) 风控方法、装置及系统
WO2019033741A1 (zh) 投资产品的资源处理方法、装置、存储介质和计算机设备
CN107464083A (zh) 一种物料清单的生成方法、装置及设备
CN107085613A (zh) 入库文件的过滤方法和装置
CN104506636B (zh) 一种数据同步方法及装置
CN102855297B (zh) 一种控制数据传输的方法和连接器
CN101706915A (zh) 一种调整出库成本的系统及方法
CN106919443A (zh) 执行计算任务的方法、装置及系统
CN104572921B (zh) 一种跨数据中心的数据同步方法和装置
CN106899447A (zh) 一种链路确定的方法及装置
CN106095746A (zh) 文字情感辨识系统及方法
CN104424596B (zh) 基于通信日志的报文分析方法以及生产报文分析工具
CN107316190A (zh) 一种网络资源转移业务的处理方法及装置
CN110032664A (zh) 一种快速建立比特币区块链全节点地址索引的方法
CN101778110B (zh) 业务协议挖掘方法及装置
CN104750714A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170704