CN110362392A - 一种etl任务调度方法、系统、设备及存储介质 - Google Patents
一种etl任务调度方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN110362392A CN110362392A CN201910637658.6A CN201910637658A CN110362392A CN 110362392 A CN110362392 A CN 110362392A CN 201910637658 A CN201910637658 A CN 201910637658A CN 110362392 A CN110362392 A CN 110362392A
- Authority
- CN
- China
- Prior art keywords
- task
- etl
- computing resource
- resource
- execute
- 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
Classifications
-
- 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
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种ETL任务调度方法、系统、设备及存储介质。该方法包括:获取基于SQL的ETL任务;根据预设规则判断ETL任务为第一类型任务还是第二类型任务;若ETL任务为第一类型任务则选择第一计算资源执行ETL任务;若ETL任务为第二类型任务则选择第二计算资源执行ETL任务。本发明实施例通过根据基于预设规则将ETL任务分类,不同类型的ETL任务选择不同的计算资源执行,避免了通过统一计算资源执行ETL任务带来的排队时间过长、计算资源浪费问题。
Description
技术领域
本发明实施例涉及大数据调度技术领域,尤其涉及一种基于SQL的ETL任务调度方法、系统、设备及存储介质。
背景技术
大数据技术是当前各行各业争相推动和依赖的技术领域。尤其是在互联网、电子商务、消费金融等行业,日常需要运行数以万记的大数据ETL任务作为数据分析、业务决策的重要支撑。分布式计算引擎也是雨后春笋般出现,使用方式也多样化,对分析人员技术水平要求不同,基于成本,行业发展趋势趋于SQL化,降低使用难度。ETL的常见SQL执行流程中会设置单个任务执行资源,不会考虑单个SQL执行流程的执行效率和对资源的利用率。往往单个任务资源利用率非常低,浪费集群计算资源,并且集群队列并发排队情况多发导致排队申请资源浪费大量时间。
发明内容
本发明实施例提供一种ETL任务调度方法、系统、设备及存储介质,实现将ETL任务分类选择对应的计算资源执行。
第一方面,本发明实施例提供了一种ETL任务调度方法,包括:
获取基于SQL的ETL任务;
根据预设规则判断所述ETL任务为第一类型任务还是第二类型任务;
若所述ETL任务为第一类型任务则选择第一计算资源执行所述ETL任务;
若所述ETL任务为第二类型任务则选择第二计算资源执行所述ETL任务。
第二方面,本发明实施例还提供了一种ETL任务调度系统,包括:
任务获取模块,用于获取基于SQL的ETL任务;
任务判断模块,用于根据预设规则判断所述ETL任务为第一类型任务还是第二类型任务;
第一执行模块,用于当所述ETL任务为第一类型任务时选择第一计算资源执行所述ETL任务;
第二执行模块,用于当所述ETL任务为第二类型任务时选择第二计算资源执行所述ETL任务。
第三方面,本发明实施例还提供了一种ETL任务调度设备,包括存储器和处理器,存储器上存储有可在处理器运行的计算机程序,处理器执行计算机程序时实现前述的ETL任务调度方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被执行时实现前述的ETL任务调度方法。
本发明实施例提供的技术方案,通过预设规则将ETL任务归类为第一类型任务和第二类型任务,进而选择不同的计算资源执行对应类型的ETL任务,避免了传统ETL任务通过统一的计算资源执行所造成的资源浪费以及并发排队过多造成的时间浪费。
附图说明
图1是本发明实施例一中的ETL任务调度方法的流程图;
图2是本发明实施例一中的ETL任务调度方法的子流程图;
图3是本发明实施例一中的ETL任务调度方法的流程图;
图4是本发明实施例二中的第二类型任务执行流程图;
图5是本发明实施例二中的ETL任务调度系统的结构示意图;
图6是本发明实施例二中的任务判断模块结构示意图;
图7是本发明实施例二中的第二执行模块结构示意图;
图8是本发明实施例二中的ETL任务调度系统的结构示意图;
图9是本发明实施例三中的ETL任务调度设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第一速度差值为第二速度差值,且类似地,可将第二速度差值称为第一速度差值。第一速度差值和第二速度差值两者都是速度差值,但其不是同一速度差值。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。需要说明的是,当部被称为“固定于”另一个部,它可以直接在另一个部上也可以存在居中的部。当一个部被认为是“连接”到另一个部,它可以是直接连接到另一个部或者可能同时存在居中部。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述,只是为了说明的目的,并不表示是唯一的实施方式。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的一种ETL任务调度方法的流程图,本实施例可适用于在具有一个或多个ETL任务等待执行的情况,具体包括如下步骤:
步骤110、获取基于SQL的ETL任务。
ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。目前常用的ETL任务实现有多种方法,如使用ETL工具实现以及以SQL方式实现,基于SQL的方法较为灵活,且能提高ETL运行效率,因此本实施例选择以SQL方式实现ETL任务。
步骤120、根据预设规则判断ETL任务为第一类型任务还是第二类型任务。
在现有技术中,在执行ETL任务时通常并未考虑不同ETL任务之间的差异性,统一通过SPARK-SQL提交ETL任务,SPARK-SQL在接收到ETL任务执行请求后会申请集群算力资源用于执行ETL任务,但是这种方式存在一定的弊端:其未考虑到ETL任务对算力资源的需求不同,其向集群算力资源申请的单个任务执行资源并未考虑到ETL任务的实际算力需求,因而往往单个任务资源利用率较低,造成集群算力资源浪费;所有ETL任务都通过SPARK-SQL向集群申请算力资源执行导致多个任务需要执行时集群队列并发排队现象严重,在集群较忙时,有大量的ETL任务处于排队状态,通常SPARK-SQL申请YARN集群算力资源耗时大于30秒,在集群较忙时申请集群算力资源耗时近三分钟,这就导致在有ETL任务排队时大量时间浪费在向集群申请算力资源上。
因此为了针对不同的ETL任务针对性的进行执行优化,本实施例提供了两种ETL任务执行器,根据预设规则将ETL任务分为第一类型任务和第二类型任务,进而根据所述任务类型不同选择合适的执行方式执行ETL任务。
进一步的,ETL任务判断流程如图2所示,步骤120包括步骤121~122:
步骤121、根据集群总资源使用情况配置预设规则,预设规则包括任务执行时间阈值和/或任务资源利用率阈值。
在判断ETL任务所属任务类型之前,需要定义ETL任务的区分标准,考虑到本实施例区分ETL任务的意义在于针对现有ETL任务全部通过SPARK-SQL执行造成的资源浪费和排队浪费时间问题,而针对不同的集群算力资源使用情况,其出现资源浪费和排队浪费时间问题的可能性也不同,因此本实施例根据集群总资源的使用情况配置预设规则,预设规则包括任务执行时间阈值和/任务资源利用率阈值。
具体的,集群总资源的使用情况包括执行时间和资源利用率,其可以通过开源框架Dr-elephant进行收集分析,Dr-elephant作为一款Hadoop和Spark性能调节工具,能够对收集的数据进行分析,并将分析结果以一种简单且易于理解的形式展示出来。任务执行时间阈值和任务资源利用率阈值都是根据集群总资源使用情况配置的,具体配置方式可以是将集群总资源使用情况展示给用户后由用户自行设置,还可以是自定义关联关系由系统根据集群总资源使用情况自动配置,如定义集群总资源占用较高,和/或通过SPARK-SQL执行ETL任务排队情况较为严重时,适当的调高任务执行时间阈值和/或任务资源利用率阈值。
步骤122、根据ETL任务的情况判断ETL任务预计执行时间是否小于任务执行时间阈值和/或ETL任务预计资源利用率是否小于任务资源利用率阈值。
在确定了用于区分ETL任务的预设规则后,需要基于该预设规则对需要执行的ETL任务进行区分,具体的:若预设规则为任务执行时间阈值,则需要对ETL任务进行分析得到ETL任务的预计完成时间,进而比较ETL任务的预计完成时间是否小于任务执行时间阈值;若预设规则为任务资源利用率阈值,则需要对ETL任务进行分析得到ETL任务的预计资源利用率,进而比较ETL任务的预计资源利用率是否小于任务资源利用率阈值;当然,预设任务规则可以同时采用任务资源利用率阈值和任务执行时间阈值,此时可以获取一个对应比较结果作为判断依据也可获取两个比较结果作为判断依据,即可以设置为以ETL任务的预计完成时间与任务执行时间阈值比较结果或ETL任务的预计资源利用率与任务资源利用率阈值的比较结果的其中一个作为判断依据,只要其中一个比较结果满足小于预设规则即可视为判断结果小于预设规则,也可以设置为需要两个比较结果都满足小于预设规则时才视为判断结果小于预设规则,优选的,本实施例只需一个比较结果满足小于预设规则即可。
步骤123、若ETL任务预计执行时间小于任务执行时间阈值,和/或ETL任务预计资源利用率小于任务资源利用率阈值,则判断ETL任务为第二类型任务,否则为第一类型任务。
根据预设规则将ETL任务分为第一类型任务和第二类型任务的意义在于:将ETL任务按照执行需求算力资源和执行时间分类,能够将不需要占用过多算力资源和执行时间较短的ETL任务选择合适的执行器执行,减轻集群并发排队情况和资源浪费。
步骤130、若ETL任务为第一类型任务则选择第一计算资源执行ETL任务。
前述已经将ETL任务分为第一类型任务和第二类型任务,很显然二者需求的算力资源并不相同,用于执行第一类型任务的执行器需求的算力资源通常情况下多于用于执行第二类型任务的执行器需求的算力资源(当然当第二类型任务远远多于第一类型任务时情况相反),为了提高集群算力资源利用率和减轻并发排队情况,可以使用一个不需要进行排队且占用资源较少的执行器来执行第二类型的任务,本实施例提供了SPARK-SQL和SparkthriftServer两种执行器用于执行这两种任务,对应的用于SPARK-SQL的集群算力资源为第一计算资源,用于Spark thriftServer的集群算力资源为第二计算资源。根据预设规则可以得知,第一类型任务为预计执行时间大于任务执行时间阈值和/或预计资源利用率大于任务资源利用率阈值的ETL任务,即可以视为较大的任务,较大的任务需要占用的集群算力资源较多本实施例中这种任务仍采用SPARK-SQL执行第一类型任务,SPARK-SQL申请的算力资源能够满足较大的任务对算力资源的需求。
第一类型任务由于仍是通过SPARK-SQL执行,在具有多个第一类型任务等待执行时,第一类型任务会根据任务生成时间排序,SPARK-SQL根据排序顺序向第一计算资源申请算力资源以执行第一类型任务。
步骤140、若ETL任务为第二类型任务则选择第二计算资源执行ETL任务。
第二类型任务相较于第一类型任务可以视为较小的ETL任务,因此本实施例采用Spark thriftServer执行第二类型任务,Spark thriftServer的算力资源为预先配置好的,第二类型任务在通过Spark thriftServer执行时可以无需申请直接执行,减少了申请资源所需的时间也避免了参与排队所需的时间。
其中,第一计算资源和第二计算资源共同定义算力固定的集群总资源,即第一资源分配较多时第二计算资源就分配较少,第二计算资源的算力是预先分配的,第二计算资源的算力和第二类型任务的数量是相匹配的,进一步也是与预设规则相关的,当预设规则改变导致第二类型任务需求的算力资源增加时对应需要增加第二算力资源,当第二类型任务数量发生变化第二计算资源的算力也需要相应改变以适应需求。
参阅图3,替代实施中,在步骤140之前还包括:
步骤135、配置第二计算资源的动态资源范围,第二计算资源的动态资源范围最大值为第一计算资源的6-10倍。
第二计算资源的动态配置范围需要由一定的限制,若第二计算资源配置的算力过多会导致第一计算资源的算力过少,导致第一类型任务排队情况更加严重,而第二计算资源若分配资源过少则容易导致第二类型任务过多时任务执行效率不高,因此将第二计算资源设置为动态配置,即需求多则多分配,需求少则少分配,一般第二计算资源的动态资源范围最大值设置为第一计算资源的6-10倍即可。
在上述方案中基于预设规则将ETL任务分类成需求算力资源较多或执行较慢的第一类型任务和需求算力资源较少或执行较快的第二类型任务,通过将需求算力较少或执行较快的第二类型任务使用无需排队的第二计算资源执行,避免了通过统一计算资源执行ETL任务带来的排队时间过长、计算资源浪费问题,并且增加了集群中任务并发度提高了任务执行效率,动态配置第二计算资源的范围能够在第二计算资源算力需求较少时进行释放进一步提高了资源利用率。
实施例二
图4为本发明实施例二提供的一种ETL任务调度方法流程图,本实施例在实施例一的基础上进一步详细说明了通过第二计算资源执行第二类型任务的过程,具体包括:
步骤210、根据ETL任务利用最小值算法计算得到此时的空闲算力池。
执行器Spark thriftServer根据第二计算资源配置有多个算力池SparkthriftServer1、Spark thriftServer2、Spark thriftServer3……,当有被归类为第二类型任务的ETL任务通过Spark thriftServer执行时,通过最小值算法可以得到合适的空闲的算力池示例为Spark thriftServer2可以执行此ETL任务。
步骤220、根据空闲算力池进行可执行性判断。
当通过最小值算法得到合适的空闲算力池Spark thriftServer2可以执行该ETL任务后,由于执行器Spark thriftServer中可能有多个第二类型任务正在执行,需要通过可执行性判断来判断该ETL任务是否可以通过Spark thriftServer2执行,具体的:
判断空闲算力池Spark thriftServer2是否为异常算力池,判断空闲算力池SparkthriftServer2执行该ETL任务后是否会对其他正在执行的任务造成影响即判断空闲算力池Spark thriftServer2是否为并发高的算力池,若该空闲算力池Spark thriftServer2判断为异常或并发高的算力池则判断为不可执行,否则为可执行。若判断为可执行则跳转至步骤230,若判断为不可执行则需要跳转至步骤210重新计算得到新的空闲算力池。
步骤230、选择该空闲算力池执行ETL任务。
若空闲算力池Spark thriftServer2经可执行性判断为可执行则选择SparkthriftServer2执行该ETL任务。
当上述计算得到的空闲算力池Spark thriftServer2经可执行性判断为不可执行后需要重新通过最小值算法找到新的空闲算力池如Spark thriftServer3,并对SparkthriftServer3继续进行可执行性判断,若Spark thriftServer3经可执行性判断为可执行则选择Spark thriftServer3执行该ETL任务,若Spark thriftServer3仍被判断为不可执行则需要再次通过最小值算法找到新的空闲算力池并进行可执行性判断直到找到某一空闲算力池通过可执行性判断为可执行,则选择该空闲算力池执行该ETL任务。
本实施例在实施例一的基础上进一步提供了通过第二计算资源执行第二类型任务的过程,通过可执行性判断在执行第二类型任务时实现了去除异常或并发高的空闲算力池,避免了任务执行出错,保证了第二类型任务的正常执行,节省了任务异常检测时间。
实施例三
图5所示为本发明实施例三提供的一种ETL任务调度系统300的结构示意图,该ETL任务调度装置的具体结构如下:
任务获取模块310,用于获取基于SQL的ETL任务。
目前常用的ETL任务实现有多种方法,如使用ETL工具实现以及以SQL方式实现,基于SQL的方法较为灵活,且能提高ETL运行效率,因此本实施例选择以SQL方式实现ETL任务。
任务判断模块320,用于根据预设规则判断所述ETL任务为第一类型任务还是第二类型任务。
第一执行模块330,用于当ETL任务为第一类型任务时选择第一计算资源执行ETL任务。
第二执行模块340,用于当ETL任务为第二类型任务时选择第二计算资源执行ETL任务。
为了针对不同的ETL任务针对性的进行执行优化,本实施例提供了两种ETL任务执行器,根据预设规则将ETL任务分为第一类型任务和第二类型任务,进而根据所述任务类型不同选择合适的执行方式执行ETL任务。
具体的,如图6所示,任务判断模块320包括:
预设规则配置单元321,用于根据集群总资源使用情况配置预设规则,预设规则包括任务执行时间阈值和/或任务资源利用率阈值。
ETL任务判断单元322,用于根据ETL任务的情况判断ETL任务预计执行时间是否小于任务执行时间阈值和/或ETL任务预计资源利用率是否小于任务资源利用率阈值。
ETL任务归类单元单元323,若ETL任务预计执行时间小于任务执行时间阈值,和/或ETL任务预计资源利用率小于任务资源利用率阈值,则判断ETL任务为第二类型任务,否则为第一类型任务。
进一步的,第二执行模块340还包括:
空闲算力池计算单元341,用于根据ETL任务利用最小值算法计算得到此时的空闲算力池。
可执行性判断单元342,用于根据空闲算力池进行可执行性判断,当判断为可执行时通过执行单元343执行对应任务,当判断为不可执行时通过空闲算力池计算单元341重新计算空闲算力池。
执行单元343,用于当判断可执行时选择空闲算力池执行ETL任务。
进一步的,如图8所示,还包括第二计算资源配置模块350,用于配置第二计算资源的动态资源范围,第二计算资源的动态资源范围最大值为第一计算资源的6-10倍。
本实施例进一步提供了一种ETL任务调度系统,基于预设规则将ETL任务分类成需求算力资源较多或执行较慢的第一类型任务和需求算力资源较少或执行较快的第二类型任务,通过将需求算力较少或执行较快的第二类型任务使用无需排队的第二计算资源执行,避免了通过统一计算资源执行ETL任务带来的排队时间过长、计算资源浪费问题,并且增加了集群中任务并发度提高了任务执行效率,动态配置第二计算资源的范围能够在第二计算资源算力需求较少时进行释放进一步提高了资源利用率。
本发明实施例所提供了一种ETL任务调度系统可执行本发明前述实施例所提供的一种ETL任务调度方法,其具备执行方法相应的功能模块和有益效果。
实施例四
图9为本发明实施例四提供的一种ETL任务调度设备400的结构示意图,如图9所示,该种ETL任务调度设备包括存储器410、处理器420,ETL任务调度设备中处理器420的数量可以是一个或多个,图9中以一个处理器420为例;ETL任务调度设备中的存储器410、处理器420可以通过总线或其他方式连接,图9中以通过总线连接为例。
存储器410作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的ETL任务调度方法对应的程序指令/模块(例如,ETL任务调度系统中的任务获取模块310、任务判断模块320、第一执行模块330、第二执行模块340、第二计算资源配置模块350)。处理器420通过运行存储在存储器410中的软件程序、指令以及模块,从而执行ETL任务调度设备的各种功能应用以及数据处理,即实现上述的ETL任务调度方法。
其中,所述处理器420用于运行存储在存储器410中的计算机可执行程序,以实现如下步骤:步骤110、获取基于SQL的ETL任务;步骤120、根据预设规则判断ETL任务为第一类型任务还是第二类型任务;步骤130、若ETL任务为第一类型任务则选择第一计算资源执行ETL任务;步骤140、若ETL任务为第二类型任务则选择第二计算资源执行ETL任务。
当然,本发明实施例所提供的一种ETL任务调度设备,该ETL任务调度设备不限于如上所述的方法操作,还可以执行本发明实施例任意实施例所提供的ETL任务调度方法中的相关操作。
存储器410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接至ETL任务调度设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述产品可执行本发明任意实施例所提供的ETL任务调度方法,具备执行方法相应的功能模块和有益效果。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种ETL任务调度方法,该ETL任务调度方法包括:
获取基于SQL的ETL任务;
根据预设规则判断ETL任务为第一类型任务还是第二类型任务;
若ETL任务为第一类型任务则选择第一计算资源执行ETL任务;
若ETL任务为第二类型任务则选择第二计算资源执行ETL任务。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的ETL任务调度方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,ETL任务调度设备,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述ETL任务调度装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种ETL任务调度方法,其特征在于,包括:
获取基于SQL的ETL任务;
根据预设规则判断所述ETL任务为第一类型任务还是第二类型任务;
若所述ETL任务为第一类型任务则选择第一计算资源执行所述ETL任务;
若所述ETL任务为第二类型任务则选择第二计算资源执行所述ETL任务。
2.根据权利要求1所述的ETL任务调度方法,其特征在于,所述第一计算资源与所述第二计算资源共同定义算力固定的集群总资源,所述第二计算资源的算力为预先分配,所述第二计算资源的算力和所述第二类型任务的数量匹配。
3.根据权利要求2所述的ETL任务调度方法,其特征在于,所述根据预设规则判断所述ETL任务为第一类型任务还是第二类型任务包括:
根据所述集群总资源使用情况配置预设规则,所述预设规则包括任务执行时间阈值和/或任务资源利用率阈值;
根据所述ETL任务的情况判断所述ETL任务预计执行时间是否小于所述任务执行时间阈值和/或所述ETL任务预计资源利用率是否小于所述任务资源利用率阈值;
若所述ETL任务预计执行时间小于所述任务执行时间阈值,和/或所述ETL任务预计资源利用率小于所述任务资源利用率阈值,则判断所述ETL任务为第二类型任务否则为第一类型任务。
4.根据根据权利要求1所述的ETL任务调度方法,其特征在于,所述第一类型任务为多个时,多个所述第一类型任务根据任务生成的时间排序,按所述排序依次向所述第一计算资源申请算力资源以执行所述第一类型任务。
5.根据权利要求1所述的ETL任务调度方法,其特征在于,所述若所述ETL任务为第二类型任务则选择第二计算资源执行所述ETL任务之前还包括:
配置所述第二计算资源的动态资源范围,所述第二计算资源的动态资源范围最大值为第一计算资源的6-10倍。
6.根据权利要求1-5所述的ETL任务调度方法,其特征在于,所述第二计算资源包括多个算力池,若所述ETL任务为第二类型任务则选择第二计算资源执行所述ETL任务包括:
根据所述ETL任务利用最小值算法计算得到此时的空闲算力池;
根据所述空闲算力池进行可执行性判断;
若判断可执行则选择所述空闲算力池执行所述ETL任务;
若判断不可执行则重新计算获取新的空闲算力池并进行可执行判断直到判断可执行时选择此时计算得到的空闲算力池执行所述ETL任务。
7.根据权利要求6所述的ETL任务调度方法,其特征在于,所述根据所述空闲算力池进行可执行判断包括:
判断所述空闲算力池是否为异常或并发高的算力池,若判断所述空闲算力池为异常或并发高的算力池则判断为不可执行。
8.一种ETL任务调度系统,其特征在于,包括:
任务获取模块,用于获取基于SQL的ETL任务;
任务判断模块,用于根据预设规则判断所述ETL任务为第一类型任务还是第二类型任务;
第一执行模块,用于当所述ETL任务为第一类型任务时选择第一计算资源执行所述ETL任务;
第二执行模块,用于当所述ETL任务为第二类型任务时选择第二计算资源执行所述ETL任务。
9.一种ETL任务调度设备,其特征在于,包括存储器和处理器,所述存储器上存储有可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7的ETL任务调度方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被执行时实现如权利要求1-7任意一项所述的ETL任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910637658.6A CN110362392A (zh) | 2019-07-15 | 2019-07-15 | 一种etl任务调度方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910637658.6A CN110362392A (zh) | 2019-07-15 | 2019-07-15 | 一种etl任务调度方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110362392A true CN110362392A (zh) | 2019-10-22 |
Family
ID=68219307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910637658.6A Pending CN110362392A (zh) | 2019-07-15 | 2019-07-15 | 一种etl任务调度方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110362392A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144701A (zh) * | 2019-12-04 | 2020-05-12 | 中国电子科技集团公司第三十研究所 | 一种分布式环境下etl作业调度资源分类评估的方法 |
CN112068954A (zh) * | 2020-08-18 | 2020-12-11 | 弥伦工业产品设计(上海)有限公司 | 一种网络计算资源调度的方法及系统 |
CN113051064A (zh) * | 2019-12-26 | 2021-06-29 | 中移(上海)信息通信科技有限公司 | 任务调度方法、装置、设备及存储介质 |
CN113127185A (zh) * | 2019-12-31 | 2021-07-16 | 北京懿医云科技有限公司 | 任务执行队列处理方法及装置、存储介质、电子设备 |
CN113535405A (zh) * | 2021-07-30 | 2021-10-22 | 上海壁仞智能科技有限公司 | 云端服务系统及其操作方法 |
WO2021212965A1 (zh) * | 2020-04-21 | 2021-10-28 | 华为技术有限公司 | 一种资源调度方法及相关装置 |
CN113867882A (zh) * | 2020-06-30 | 2021-12-31 | 中国电信股份有限公司 | 容器资源调度方法和装置、计算机可读存储介质 |
CN115904671A (zh) * | 2023-02-20 | 2023-04-04 | 中国华能集团清洁能源技术研究院有限公司 | 一种边缘计算环境下的任务调度方法、装置、设备及介质 |
CN116360990A (zh) * | 2023-03-27 | 2023-06-30 | 合芯科技有限公司 | 分布式计算任务合理性预判方法、系统、设备和存储介质 |
CN117170848A (zh) * | 2023-09-11 | 2023-12-05 | 赛尔新技术(北京)有限公司 | 一种资源调度方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252381A (zh) * | 2013-06-30 | 2014-12-31 | 北京百度网讯科技有限公司 | 一种用于调度etl任务的方法与设备 |
CN107944004A (zh) * | 2017-12-07 | 2018-04-20 | 深圳乐信软件技术有限公司 | Spark‑SQL调度的方法、系统、设备及存储介质 |
US9984135B2 (en) * | 2016-06-23 | 2018-05-29 | International Business Machines Corporation | Shipping of data through ETL stages |
CN108196959A (zh) * | 2018-02-07 | 2018-06-22 | 聚好看科技股份有限公司 | Etl系统的资源管理方法及装置 |
CN108920261A (zh) * | 2018-05-23 | 2018-11-30 | 中国航天系统科学与工程研究院 | 一种适于大规模并行数据处理任务的两级自适应调度方法 |
-
2019
- 2019-07-15 CN CN201910637658.6A patent/CN110362392A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104252381A (zh) * | 2013-06-30 | 2014-12-31 | 北京百度网讯科技有限公司 | 一种用于调度etl任务的方法与设备 |
US9984135B2 (en) * | 2016-06-23 | 2018-05-29 | International Business Machines Corporation | Shipping of data through ETL stages |
CN107944004A (zh) * | 2017-12-07 | 2018-04-20 | 深圳乐信软件技术有限公司 | Spark‑SQL调度的方法、系统、设备及存储介质 |
CN108196959A (zh) * | 2018-02-07 | 2018-06-22 | 聚好看科技股份有限公司 | Etl系统的资源管理方法及装置 |
CN108920261A (zh) * | 2018-05-23 | 2018-11-30 | 中国航天系统科学与工程研究院 | 一种适于大规模并行数据处理任务的两级自适应调度方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144701A (zh) * | 2019-12-04 | 2020-05-12 | 中国电子科技集团公司第三十研究所 | 一种分布式环境下etl作业调度资源分类评估的方法 |
CN111144701B (zh) * | 2019-12-04 | 2022-03-22 | 中国电子科技集团公司第三十研究所 | 一种分布式环境下etl作业调度资源分类评估的方法 |
CN113051064A (zh) * | 2019-12-26 | 2021-06-29 | 中移(上海)信息通信科技有限公司 | 任务调度方法、装置、设备及存储介质 |
CN113051064B (zh) * | 2019-12-26 | 2024-05-24 | 中移(上海)信息通信科技有限公司 | 任务调度方法、装置、设备及存储介质 |
CN113127185A (zh) * | 2019-12-31 | 2021-07-16 | 北京懿医云科技有限公司 | 任务执行队列处理方法及装置、存储介质、电子设备 |
CN113127185B (zh) * | 2019-12-31 | 2023-11-10 | 北京懿医云科技有限公司 | 任务执行队列处理方法及装置、存储介质、电子设备 |
EP4123449A4 (en) * | 2020-04-21 | 2023-07-26 | Huawei Cloud Computing Technologies Co., Ltd. | RESOURCE PLANNING PROCESS AND ASSOCIATED MECHANISM |
WO2021212965A1 (zh) * | 2020-04-21 | 2021-10-28 | 华为技术有限公司 | 一种资源调度方法及相关装置 |
CN113867882A (zh) * | 2020-06-30 | 2021-12-31 | 中国电信股份有限公司 | 容器资源调度方法和装置、计算机可读存储介质 |
CN113867882B (zh) * | 2020-06-30 | 2024-03-15 | 中国电信股份有限公司 | 容器资源调度方法和装置、计算机可读存储介质 |
CN112068954A (zh) * | 2020-08-18 | 2020-12-11 | 弥伦工业产品设计(上海)有限公司 | 一种网络计算资源调度的方法及系统 |
CN113535405A (zh) * | 2021-07-30 | 2021-10-22 | 上海壁仞智能科技有限公司 | 云端服务系统及其操作方法 |
CN115904671B (zh) * | 2023-02-20 | 2023-06-27 | 中国华能集团清洁能源技术研究院有限公司 | 一种边缘计算环境下的任务调度方法、装置、设备及介质 |
CN115904671A (zh) * | 2023-02-20 | 2023-04-04 | 中国华能集团清洁能源技术研究院有限公司 | 一种边缘计算环境下的任务调度方法、装置、设备及介质 |
CN116360990A (zh) * | 2023-03-27 | 2023-06-30 | 合芯科技有限公司 | 分布式计算任务合理性预判方法、系统、设备和存储介质 |
CN116360990B (zh) * | 2023-03-27 | 2024-01-09 | 合芯科技有限公司 | 分布式计算任务合理性预判方法、系统、设备和存储介质 |
CN117170848A (zh) * | 2023-09-11 | 2023-12-05 | 赛尔新技术(北京)有限公司 | 一种资源调度方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110362392A (zh) | 一种etl任务调度方法、系统、设备及存储介质 | |
US10474504B2 (en) | Distributed node intra-group task scheduling method and system | |
US8578381B2 (en) | Apparatus, system and method for rapid resource scheduling in a compute farm | |
Sedaghat et al. | Unifying cloud management: Towards overall governance of business level objectives | |
US20120331476A1 (en) | Method and system for reactive scheduling | |
CN105808334A (zh) | 一种基于资源重用的MapReduce短作业优化系统及方法 | |
CN106557369A (zh) | 一种多线程的管理方法及系统 | |
CN103491024B (zh) | 一种面向流式数据的作业调度方法及装置 | |
US11435802B2 (en) | Work load scheduling for multi core systems with under-provisioned power delivery | |
CN111026519B (zh) | 基于分布式的任务优先级调度方法和系统及存储介质 | |
CN104268018A (zh) | 一种Hadoop集群中的作业调度方法和作业调度器 | |
CN112799817A (zh) | 一种微服务资源调度系统和方法 | |
CN101836190A (zh) | 用于将多个作业分配给多个计算机的方法、系统和计算机程序 | |
Goux et al. | Solving large MINLPs on computational grids | |
CN114968601B (zh) | 一种按比例预留资源的ai训练作业的调度方法和调度系统 | |
CN106339802A (zh) | 任务分配的方法和装置、电子设备 | |
CN104598311A (zh) | 一种面向Hadoop的实时作业公平调度的方法和装置 | |
Wang et al. | Task scheduling for MapReduce in heterogeneous networks | |
CN109634714B (zh) | 一种智能调度的方法及装置 | |
CN110825212B (zh) | 节能调度方法及装置、计算机可存储介质 | |
Nudd et al. | Performance‐based middleware for Grid computing | |
Xu et al. | Hybrid scheduling deadline-constrained multi-DAGs based on reverse HEFT | |
Bagga et al. | Moldable load scheduling using demand adjustable policies | |
Saroja et al. | Multi-criteria decision-making for heterogeneous multiprocessor scheduling | |
Du et al. | OctopusKing: A TCT-aware task scheduling on spark platform |
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 |
Application publication date: 20191022 |
|
RJ01 | Rejection of invention patent application after publication |