CN105824809B - 一种etl调度的实现方法及装置 - Google Patents

一种etl调度的实现方法及装置 Download PDF

Info

Publication number
CN105824809B
CN105824809B CN201510001683.7A CN201510001683A CN105824809B CN 105824809 B CN105824809 B CN 105824809B CN 201510001683 A CN201510001683 A CN 201510001683A CN 105824809 B CN105824809 B CN 105824809B
Authority
CN
China
Prior art keywords
task
parameter
pending
maximum
time
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
Application number
CN201510001683.7A
Other languages
English (en)
Other versions
CN105824809A (zh
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.)
China Mobile Group Hebei Co Ltd
Original Assignee
China Mobile Group Hebei Co 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 China Mobile Group Hebei Co Ltd filed Critical China Mobile Group Hebei Co Ltd
Priority to CN201510001683.7A priority Critical patent/CN105824809B/zh
Publication of CN105824809A publication Critical patent/CN105824809A/zh
Application granted granted Critical
Publication of CN105824809B publication Critical patent/CN105824809B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Complex Calculations (AREA)

Abstract

本发明实施例公开了一种ETL调度的实现方法及装置;其中,所述方法包括:建立待执行任务的依赖关系,基于所述依赖关系获得所述待执行任务的第一参数;所述第一参数用于表征所述待执行任务的后续总任务的计算量;获得所述待执行任务的第二参数,所述第二参数用于表征所述待执行任务的紧急程度;基于所述第一参数和所述第二参数按第一预设规则生成第三参数;确定满足第一预设条件且所述第三参数最大时,执行最大的第三参数对应的任务。

Description

一种ETL调度的实现方法及装置
技术领域
本发明涉及计算机技术,具体涉及一种ETL调度的实现方法及装置。
背景技术
随着大数据时代的到来,数据分析受到了广泛的重视。作为数据分析的基础工作,数据抽取、转换和加载(ETL,Extract-Transform-Load)也越来越繁重。特别当数据来源广泛,数据格式各异,数据内容千差万别时,ETL的组织合理与否一定程度上影响数据分析的及时性。
现有技术的问题在于忽略了系统计算资源的有限性,没有提及调度任务在时间维度的分布,特别是当任务数量巨大时,对于某一时刻如何从多个任务中选择并启动一个最佳的任务,相关技术中,对于该问题,尚无有效解决方案。以至于虽然应用服务器资源得到了充分运用,但调度任务没能按规定的时间点完成,无法满足业务上的需求。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种ETL调度的实现方法及装置,实现ETL调度的优化,提升ETL的调度效率。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种ETL调度的实现方法,所述方法包括:
建立待执行任务的依赖关系,基于所述依赖关系获得所述待执行任务的第一参数;所述第一参数用于表征所述待执行任务的后续总任务的计算量;
获得所述待执行任务的第二参数,所述第二参数用于表征所述待执行任务的紧急程度;
基于所述第一参数和所述第二参数按第一预设规则生成第三参数;
确定满足第一预设条件且所述第三参数最大时,执行最大的第三参数对应的任务。
上述方案中,所述第一参数表征所述待执行任务后续链路任务的计算量总和;
所述第一参数满足表达式为:∑∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)};
其中,∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)}为所述待执行任务的后续链路任务的计算量;P(Ti,Tj)=1表示任务n依赖任务m,仅当任务m完成后任务n才能开始运行;P(Ti,Tj)=0表示任务n不依赖任务m;tj为任务j的历史运行时间的平均值;
所述第二参数满足表达式为:
其中,tnow为当前时间,tse为所述任务最迟起始执行时间。
上述方案中,所述基于所述第一参数和所述第二参数按第一预设规则生成第三参数;包括:
所述第三参数Staskn满足表达式为:
其中,a和b为预设调节系数。
上述方案中,所述满足第一预设条件,包括:
当前已运行的任务量与待运行的任务量的总和小于预设任务运行量;
和,当运行所述待执行任务后,所有任务占用的输入输出I/O带宽小于允许占用的I/O带宽的极限值;
和,当运行所述待执行任务后,所有任务需占用的中央处理器CPU的使用率小于100%。
上述方案中,所述任务最迟起始执行时间tse满足表达式为:
tsen=ten-tn
其中,ten表示任务n要求完成的最终时间;Tn表示任务n的历史运行时间的平均值;
其中,所述表示任务n要求完成的最终时间ten满足表达式为:
ten=Max(∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)})。
上述方案中,所述执行最大的第三参数对应的任务之前,所述方法还包括:判断当前时间是否晚于所述最大的第三参数对应的任务的最早执行时间;确定所述当前时间晚于所述最大的第三参数对应的任务的最早执行时间时,执行所述最大的第三参数对应的任务。
本发明实施例还提供了一种ETL调度的实现装置,所述装置包括:建立单元、第一获取单元、第二获取单元、生成单元和执行单元;其中,
所述建立单元,用于建立待执行任务的依赖关系;
所述第一获取单元,用于基于所述建立单元建立的所述依赖关系获得所述待执行任务的第一参数;所述第一参数用于表征所述待执行任务的后续总任务的计算量;
所述第二获取单元,用于获得所述待执行任务的第二参数,所述第二参数用于表征所述待执行任务的紧急程度;
所述生成单元,用于基于所述第一获取单元获得的所述第一参数和所述第二获取单元获取的所述第二参数按第一预设规则生成第三参数;
所述执行单元,用于确定满足第一预设条件且所述生成单元生成的所述第三参数最大时,执行最大的第三参数对应的任务。
上述方案中,所述第一获取单元获取的所述第一参数表征所述待执行任务后续链路任务的计算量总和;
所述第一参数满足表达式为:∑∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)};
其中,∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)}为所述待执行任务的后续链路任务的计算量;P(Ti,Tj)=1表示任务n依赖任务m,仅当任务m完成后任务n才能开始运行;P(Ti,Tj)=0表示任务n不依赖任务m;tj为任务j的历史运行时间的平均值;
所述第二获取单元获取的所述第二参数满足表达式为:
其中,tnow为当前时间,tse为所述任务最迟起始执行时间。
上述方案中,所述生成单元生成的所述第三参数Staskn满足表达式为:
其中,a和b为预设调节系数。
上述方案中,所述执行单元,用于确定当前已运行的任务量与待运行的任务量的总和小于预设任务运行量;和,当运行所述待执行任务后,所有任务占用的输入输出I/O带宽小于允许占用的I/O带宽的极限值;和,当运行所述待执行任务后,所有任务需占用的中央处理器CPU的使用率小于100%时,且所述生成单元生成的所述第三参数最大时,执行最大的第三参数对应的任务。
上述方案中,所述任务最迟起始执行时间tse满足表达式为:
tsen=ten-tn
其中,ten表示任务n要求完成的最终时间;Tn表示任务n的历史运行时间的平均值;
其中,所述表示任务n要求完成的最终时间ten满足表达式为:
ten=Max(∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)})。
上述方案中,所述执行单元,还用于执行最大的第三参数对应的任务之前,判断当前时间是否晚于所述最大的第三参数对应的任务的最早执行时间;确定所述当前时间晚于所述最大的第三参数对应的任务的最早执行时间时,执行所述最大的第三参数对应的任务。
本发明实施例提供的ETL调度的实现方法及装置,通过建立待执行任务的依赖关系,基于所述依赖关系获得所述待执行任务的第一参数;所述第一参数用于表征所述待执行任务的后续总任务的计算量;获得所述待执行任务的第二参数,所述第二参数用于表征所述待执行任务的紧急程度;基于所述第一参数和所述第二参数按第一预设规则生成第三参数;确定满足第一预设条件且所述第三参数最大时,执行最大的第三参数对应的任务。如此,采用本发明实施例的技术方案,基于任务之间的依赖关系,通过任务的紧急程度和所述任务的后续依赖任务的运行时间这两个维度对ETL调度进行优化,在保证任务即时运行的情况下充分利用资源,避免了后续的任务无法按时完成,一方面解决了分析系统数据处理的及时性问题,为业务部门提供服务,尽早发现生产经营中存在的问题,及时调整策略,适应市场;另一方面可以在满足生产需求的前提下,充分发挥经营分析系统产能,减少系统建设投入;此外,还会明显降低人工维护系统、组织安排调度所投入的人力成本,提升复杂调度系统的易用性。
附图说明
图1为本发明实施例的ETL调度的实现方法的流程示意图;
图2为本发明实施例中任务间的依赖关系示意图;
图3为本发明实施例的ETL调度的实现装置的组成结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步详细的说明。
本发明实施例提供了一种ETL调度的实现方法。图1为本发明实施例的ETL调度的实现方法的流程示意图;如图1所示,所述方法包括:
步骤101:建立待执行任务的依赖关系,基于所述依赖关系获得所述待执行任务的第一参数;所述第一参数用于表征所述待执行任务的后续总任务的计算量。
本实施例中,首先建立依赖关系模型,所述依赖关系模型为待执行的所有任务之间的依赖关系模型。任务间存在着错综复杂的依赖关系,一个调度可被多个任务依赖,一个任务可能需要依赖多个任务。一方面,当一个任务完成时,会通知后续任务开始执行。另一方面,当前置任务全部完成时,当前任务才能够开始执行。另外,整个任务链条由起始任务完成后的接口数据到达时触发执行。图2为本发明实施例中任务间的依赖关系示意图;如图2所示,任务1被后续多个任务所依赖,任务8的生成取决于前置任务1、任务4、任务5和任务6。
具体的,Taskn为待运行的第n个任务,则Taskn与其运行时间以及自身与其他任务的依赖关系相关;Taskn满足的表达式如公式(1)所示:
Taskn={Tn,Rn} (1)
其中,Tn表示任务n的历史运行时间的平均值;Rn表示任务n与其他任务的关系;
其中,满足的表达式如公式(2)所示:
Rn={P(Tm,Tn)|m,n∈(1,2,...,z),m≠n} (2)
其中,当P(Tm,Tn)=1时,表示任务n依赖任务m,仅当任务m完成后任务n才能开始运行;当P(Tm,Tn)=0时,表示任务n不依赖任务m。
本步骤中,所述待执行任务的第一参数为所述待执行任务的后续总任务的计算量,即后续链路任务的计算量总和;以图2中所述的任务5为例,所述任务5的后续任务包括任务6、任务8、任务9和任务10,则所述任务5的后续总任务的计算量为所述任务6、任务8、任务9和任务10的计算量;当所述待执行任务的后续总任务的计算量越大,说明为所述待执行任务预留的执行时间应该越长,则所述待执行任务应尽早执行。基于上述依赖模型,所述第一参数满足公式(3)所示:
∑∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)} (3)
其中,∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)}为所述待执行任务的后续链路任务的计算量;P(Ti,Tj)=1表示任务n依赖任务m,仅当任务m完成后任务n才能开始运行;P(Ti,Tj)=0表示任务n不依赖任务m;tj为任务j的历史运行时间的平均值。其中,所述待执行任务的后续链路任务的计算量与后续链路任务的的历史平均运行时间tj相关,则可以理解为,所述后续链路任务的计算量为所述后续链路任务的运行时间。
步骤102:获得所述待执行任务的第二参数,所述第二参数用于表征所述待执行任务的紧急程度。
本实施例中,所述表征所述待执行任务的紧急程度的第二参数如公式(4)表示:
公式(4)中,tnow为当前时间,tse为所述任务最迟起始执行时间,则tse-tnow为所述任务最迟起始执行时间与当前时间之间的时间差,所述时间差越小,说明对应任务需执行的紧急程度越大;相应的所述时间差越小,则公式(4)表征的所述第二参数的数值则越大。
本实施例中,每一个任务的完成时间存在最终期限;任务可早于所述最终期限完成,但不可晚于所述最终期限完成。结合步骤101中所述的依赖关系模型,所述最终期限Te的表达式如公式(5)所示:
Te={te1,te2,te3,...,ten} (5)
其中,ten表示任务n要求完成的最终时间,即所述任务n不能晚于ten完成,否则后续的任务将无法按时完成。则某一任务的后续任务所需的运行时间总和为:
∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)} (6)
其中,公式(6)中所示的1至n表示所述任务后的1至n个任务。则所述任务n要求完成的最终时间ten为所述任务n后续各任务的运行时间之和的最大值;则ten的表达式如公式(7)所示:
ten=Max(∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)}) (7)
基于公式(7),则所述任务最迟起始执行时间tse的表达式如公式(8)所示:
tsen=ten-tn (8)
其中,tsen表示任务n最迟起始执行时间;ten表示任务n要求完成的最终时间;Tn表示任务n的历史运行时间的平均值。
步骤103:基于所述第一参数和所述第二参数按第一预设规则生成第三参数。
本实施例中,所述基于所述第一参数和所述第二参数按第一预设规则生成第三参数;包括:
所述第三参数Stask满足的表达式如公式(9)所示:
其中,a和b为预设调节系数,可根据实际情况或经验值预先设定;Staskn为任务n的第三参数;为步骤102中生成的所述第二参数;∑∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)}为步骤101中获得的所述第一参数。
从公式(9)中可以看出,所述第三参数与表征待执行任务的紧急程度的第二参数和表征待执行任务的后续总任务的计算量的第一参数相关;所述第二参数越大,说明当前时间距离所述待实行任务的最迟起始执行时间越近,即紧急程度越大;所述第一参数越大,说明所述待执行任务的后续链路任务的总的计算量越大,需要的时间也越多;因此,对于所有待执行任务,获得每个待执行任务的Stask值,将获得的Stask值由大到小排列,Stask值越大,对应的任务需要尽早运行。
步骤104:确定满足第一预设条件且所述第三参数最大时,执行最大的第三参数对应的任务。
本实施例中,Taskn所需系统资源主要由两部分构成:一部分为系统输入输出(I/O,Input/Output)资源;另一部分由任务所占用的CPU资源。基于将系统资源得到充分的、高效的运用,步骤104中,所述满足第一预设条件,包括:
当前已运行的任务量与待运行的任务量的总和小于预设任务运行量;
和,当运行所述待执行任务后,所有任务占用的输入输出I/O带宽小于允许占用的I/O带宽的极限值;
和,当运行所述待执行任务后,所有任务需占用的中央处理器(CPU)的使用率小于100%。
其中,所述当前已运行的任务量与待运行的任务量的总和小于预设任务运行量满足公式(10)所示:
Prun+Pstart<Pmax (10)
其中,Prun表示当前运行的任务数量;Pstart表示待运行的任务数量;Pmax表示允许运行的任务总量;
所述当运行所述待执行任务后,所有任务占用的输入输出I/O带宽小于允许占用的I/O带宽的极限值满足公式(11)所示:
其中,Sused表示当前运行任务已占用的I/O带宽;Rreadi表示任务i需要占用的I/O带宽;表示待运行的n个任务需要占用的I/O带宽的总和;Sreadmax表示允许占用的I/O带宽的极限值;
所述当运行所述待执行任务后,所有任务需占用的中央处理器(CPU)的使用率小于100%满足公式(12)所示:
其中,Dcpuused表示当前CPU的使用率;Tcpui表示任务i需要占用的CPU的计算时间;Tcpui/(tei-tnow)表示任务i在运行时间内的CPU使用率;表示待运行的n个任务在运行时间内的CPU的使用率的总和。
也就是说,所述满足第一预设条件为:运行的任务量应小于预设的任务运行量,并且运行任务需要占用的I/O带宽应小于许占用的I/O带宽的极限值,并且运行任务需占用的CPU使用率应小于100%。在满足上述第一预设条件下,筛选出满足所述第一预设条件的M个任务,再基于所述M个任务的Stask值优先选择所述Stask值最大的任务运行。
采用本发明实施例的技术方案,基于任务之间的依赖关系,通过任务的紧急程度和所述任务的后续依赖任务的运行时间这两个维度对ETL调度进行优化,在保证任务即时运行的情况下充分利用资源,避免了后续的任务无法按时完成,一方面解决了分析系统数据处理的及时性问题,为业务部门提供服务,尽早发现生产经营中存在的问题,及时调整策略,适应市场;另一方面可以在满足生产需求的前提下,充分发挥经营分析系统产能,减少系统建设投入;此外,还会明显降低人工维护系统、组织安排调度所投入的人力成本,提升复杂调度系统的易用性。
依据本发明实施例的另一实施例,所述执行最大的第三参数对应的任务之前,所述方法还包括:判断当前时间是否晚于所述最大的第三参数对应的任务的最早执行时间;确定所述当前时间晚于所述最大的第三参数对应的任务的最早执行时间时,执行所述最大的第三参数对应的任务。
在本实施例中,每一个任务还存在一个最早执行时间;任务可晚于所述最早执行时间开始执行,但不可早于所述最早执行时间执行。具体的,任务的最早执行时间由前置依赖任务的完成情况决定;当所述前置依赖任务全部完成时,所述任务即可触发执行。因此,所述任务的最早执行时间可基于所述前置依赖任务完成的接口数据到达时间以及所述前置依赖任务的完成情况获得。
具体的,所述任务的最早执行时间的表达式满足公式(13)所示:
ts={ts1,ts2,…tsn} (13)
其中,tsn表示任务n最早执行时间,即所述任务n不能早于Tsn执行。则某一任务的前置依赖任务所需的运行时间总和为:
∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)} (14)
其中,公式(14)中所示的1至n表示所述任务之前的1至n个任务。则所述任务n的最早执行时间tsn为所述任务n的前置依赖任务的运行时间之和的最大值;则tsn的表达式如公式(15)所示:
tsn=Max(∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)}) (15)
基于步骤101至步骤104所述的ETL调度的实现方法,在实际应用中,具体的ETL调度过程包括以下步骤:
步骤一:获得任务的依赖关系,计算每个任务的最早执行时间ts。
这里,所述最早执行时间ts的计算过程可如上述方法获得,这里不再赘述。
步骤二:确定此时允许运行的任务总量Pmax。
步骤三:检查当前的待运行任务量P,当P<Pmax时,执行步骤四,否则,不执行任何操作。
步骤四:依据公式(9)计算所有待运行任务的第三参数Stask,并筛选出满足公式(10)至公式(12)所示条件的待运行任务,将满足所述条件的待运行任务按所述第三参数Stask由大到小进行排序,按顺序依次运行待运行任务。
步骤五:定时监测是否有任务运行结束。当没有任务运行结束时,不做任务处理;当有任务运行结束时,记录所述任务运行时长到历史表,并重新执行步骤二。
本发明实施例还提供了一种ETL调度的实现装置。图3为本发明实施例的ETL调度的实现装置的组成结构示意图;如图3所示,所述装置包括:建立单元31、第一获取单元32、第二获取单元33、生成单元34和执行单元35;其中,
所述建立单元31,用于建立待执行任务的依赖关系;
所述第一获取单元32,用于基于所述建立单元31建立的所述依赖关系获得所述待执行任务的第一参数;所述第一参数用于表征所述待执行任务的后续总任务的计算量;
所述第二获取单元33,用于获得所述待执行任务的第二参数,所述第二参数用于表征所述待执行任务的紧急程度;
所述生成单元34,用于基于所述第一获取单元32获得的所述第一参数和所述第二获取单元33获取的所述第二参数按第一预设规则生成第三参数;
所述执行单元35,用于确定满足第一预设条件且所述生成单元34生成的所述第三参数最大时,执行最大的第三参数对应的任务。
本实施例中,所述第一获取单元32获取的所述第一参数表征所述待执行任务后续链路任务的计算量总和;
所述第一参数满足表达式为:∑∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)};
其中,∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)}为所述待执行任务的后续链路任务的计算量;P(Ti,Tj)=1表示任务n依赖任务m,仅当任务m完成后任务n才能开始运行;P(Ti,Tj)=0表示任务n不依赖任务m;tj为任务j的历史运行时间的平均值;
所述第二获取单元33获取的所述第二参数满足表达式为:
其中,tnow为当前时间,tse为所述任务最迟起始执行时间。
所述任务最迟起始执行时间tse满足表达式为:
tsen=ten-tn
其中,ten表示任务n要求完成的最终时间;Tn表示任务n的历史运行时间的平均值;
其中,所述表示任务n要求完成的最终时间ten满足表达式为:
ten=Max(∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)})。
本实施例中,所述生成单元34生成的所述第三参数Staskn满足表达式为:
其中,a和b为预设调节系数。
本实施例中,所述执行单元35,用于确定当前已运行的任务量与待运行的任务量的总和小于预设任务运行量;和,当运行所述待执行任务后,所有任务占用的输入输出I/O带宽小于允许占用的I/O带宽的极限值;和,当运行所述待执行任务后,所有任务需占用的中央处理器CPU的使用率小于100%时,且所述生成单元34生成的所述第三参数最大时,执行最大的第三参数对应的任务。
依据本实施例的另一实施例,所述执行单元35,还用于执行最大的第三参数对应的任务之前,判断当前时间是否晚于所述最大的第三参数对应的任务的最早执行时间;确定所述当前时间晚于所述最大的第三参数对应的任务的最早执行时间时,执行所述最大的第三参数对应的任务。
本领域技术人员应当理解,本发明实施例的ETL调度的实现装置中各处理单元的功能,可参照前述ETL调度的实现方法的相关描述而理解,本发明实施例的ETL调度的实现装置中各处理单元,可通过实现本发明实施例所述的功能的模拟电路而实现,也可以通过执行本发明实施例所述的功能的软件在智能终端上的运行而实现。
在本发明实施例中,所述ETL调度的实现装置中的建立单元31、第一获取单元32、第二获取单元33、生成单元34和执行单元35,在实际应用中均可由所述ETL调度的实现装置中的中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital SignalProcessor)或可编程门阵列(FPGA,Field-Programmable Gate Array)实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (12)

1.一种数据抽取、转换和加载ETL调度的实现方法,其特征在于,所述方法包括:
建立待执行任务的依赖关系,基于所述依赖关系获得所述待执行任务的第一参数;所述第一参数用于表征所述待执行任务的后续总任务的计算量;
获得所述待执行任务的第二参数,所述第二参数用于表征所述待执行任务的紧急程度;
基于所述第一参数和所述第二参数按第一预设规则生成第三参数;
确定满足第一预设条件且所述第三参数最大时,执行最大的第三参数对应的任务。
2.根据权利要求1所述的方法,其特征在于,所述第一参数表征所述待执行任务后续链路任务的计算量总和;
所述第一参数满足表达式为:∑ ∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)};
其中,∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)}为所述待执行任务的后续链路任务的计算量;P(Ti,Tj)=1表示任务n依赖任务m,仅当任务m完成后任务n才能开始运行;P(Ti,Tj)=0表示任务n不依赖任务m;tj为任务j的历史运行时间的平均值;
所述第二参数满足表达式为:
其中,tnow为当前时间,tse为所述任务最迟起始执行时间。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一参数和所述第二参数按第一预设规则生成第三参数;包括:
所述第三参数Staskn满足表达式为:
其中,a和b为预设调节系数。
4.根据权利要求1所述的方法,其特征在于,所述满足第一预设条件,包括:
当前已运行的任务量与待运行的任务量的总和小于预设任务运行量;
和,当运行所述待执行任务后,所有任务占用的输入输出I/O带宽小于允许占用的I/O带宽的极限值;
和,当运行所述待执行任务后,所有任务需占用的中央处理器CPU的使用率小于100%。
5.根据权利要求2所述的方法,其特征在于,所述任务最迟起始执行时间tse满足表达式为:
tsen=ten-tn
其中,ten表示任务n要求完成的最终时间;Tn表示任务n的历史运行时间的平均值;
其中,所述表示任务n要求完成的最终时间ten满足表达式为:
ten=Max(∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)})。
6.根据权利要求1所述的方法,其特征在于,所述执行最大的第三参数对应的任务之前,所述方法还包括:判断当前时间是否晚于所述最大的第三参数对应的任务的最早执行时间;确定所述当前时间晚于所述最大的第三参数对应的任务的最早执行时间时,执行所述最大的第三参数对应的任务。
7.一种ETL调度的实现装置,其特征在于,所述装置包括:建立单元、第一获取单元、第二获取单元、生成单元和执行单元;其中,
所述建立单元,用于建立待执行任务的依赖关系;
所述第一获取单元,用于基于所述建立单元建立的所述依赖关系获得所述待执行任务的第一参数;所述第一参数用于表征所述待执行任务的后续总任务的计算量;
所述第二获取单元,用于获得所述待执行任务的第二参数,所述第二参数用于表征所述待执行任务的紧急程度;
所述生成单元,用于基于所述第一获取单元获得的所述第一参数和所述第二获取单元获取的所述第二参数按第一预设规则生成第三参数;
所述执行单元,用于确定满足第一预设条件且所述生成单元生成的所述第三参数最大时,执行最大的第三参数对应的任务。
8.根据权利要求7所述的装置,其特征在于,所述第一获取单元获取的所述第一参数表征所述待执行任务后续链路任务的计算量总和;
所述第一参数满足表达式为:∑ ∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)};
其中,∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)}为所述待执行任务的后续链路任务的计算量;P(Ti,Tj)=1表示任务n依赖任务m,仅当任务m完成后任务n才能开始运行;P(Ti,Tj)=0表示任务n不依赖任务m;tj为任务j的历史运行时间的平均值;
所述第二获取单元获取的所述第二参数满足表达式为:
其中,tnow为当前时间,tse为所述任务最迟起始执行时间。
9.根据权利要求8所述的装置,其特征在于,所述生成单元生成的所述第三参数Staskn满足表达式为:
其中,a和b为预设调节系数。
10.根据权利要求7所述的装置,其特征在于,所述执行单元,用于确定当前已运行的任务量与待运行的任务量的总和小于预设任务运行量;和,当运行所述待执行任务后,所有任务占用的输入输出I/O带宽小于允许占用的I/O带宽的极限值;和,当运行所述待执行任务后,所有任务需占用的中央处理器CPU的使用率小于100%时,且所述生成单元生成的所述第三参数最大时,执行最大的第三参数对应的任务。
11.根据权利要求8所述的装置,其特征在于,所述任务最迟起始执行时间tse满足表达式为:
tsen=ten-tn
其中,ten表示任务n要求完成的最终时间;Tn表示任务n的历史运行时间的平均值;
其中,所述表示任务n要求完成的最终时间ten满足表达式为:
ten=Max(∑P(Ti,Tj)tj{i≠j,i,j∈(1,2,3,...,n)})。
12.根据权利要求7所述的装置,其特征在于,所述执行单元,还用于执行最大的第三参数对应的任务之前,判断当前时间是否晚于所述最大的第三参数对应的任务的最早执行时间;确定所述当前时间晚于所述最大的第三参数对应的任务的最早执行时间时,执行所述最大的第三参数对应的任务。
CN201510001683.7A 2015-01-04 2015-01-04 一种etl调度的实现方法及装置 Active CN105824809B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510001683.7A CN105824809B (zh) 2015-01-04 2015-01-04 一种etl调度的实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510001683.7A CN105824809B (zh) 2015-01-04 2015-01-04 一种etl调度的实现方法及装置

Publications (2)

Publication Number Publication Date
CN105824809A CN105824809A (zh) 2016-08-03
CN105824809B true CN105824809B (zh) 2019-05-28

Family

ID=56986722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510001683.7A Active CN105824809B (zh) 2015-01-04 2015-01-04 一种etl调度的实现方法及装置

Country Status (1)

Country Link
CN (1) CN105824809B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110083405B (zh) * 2019-04-28 2020-05-08 北京邮电大学 一种函数启动方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279888A (zh) * 2011-08-24 2011-12-14 北京新媒传信科技有限公司 一种任务调度方法和系统
CN103473345A (zh) * 2013-09-23 2013-12-25 深圳市融创天下科技股份有限公司 一种预估时长的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135117B2 (en) * 2012-12-10 2015-09-15 International Business Machines Corporation Recovery for long running multithreaded processes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279888A (zh) * 2011-08-24 2011-12-14 北京新媒传信科技有限公司 一种任务调度方法和系统
CN103473345A (zh) * 2013-09-23 2013-12-25 深圳市融创天下科技股份有限公司 一种预估时长的方法

Also Published As

Publication number Publication date
CN105824809A (zh) 2016-08-03

Similar Documents

Publication Publication Date Title
US9916183B2 (en) Scheduling mapreduce jobs in a cluster of dynamically available servers
Adnan et al. Energy efficient geographical load balancing via dynamic deferral of workload
US8595735B2 (en) Holistic task scheduling for distributed computing
CN103309946B (zh) 多媒体文件处理方法、装置及系统
US20170329643A1 (en) Distributed node intra-group task scheduling method and system
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
CN109788315A (zh) 视频转码方法、装置及系统
Bi et al. SLA-based optimisation of virtualised resource for multi-tier web applications in cloud data centres
CN102707995B (zh) 基于云计算环境的业务调度的方法及装置
CN104038392A (zh) 一种云计算资源服务质量评估方法
US10445209B2 (en) Prescriptive analytics based activation timetable stack for cloud computing resource scheduling
CN109861850B (zh) 一种基于sla的无状态云工作流负载均衡调度的方法
CN112685153A (zh) 微服务调度方法、装置以及电子设备
CN112332404B (zh) 采暖服务智能管理系统及方法
CN103218263A (zh) MapReduce参数的动态确定方法及装置
CN110781180B (zh) 一种数据筛选方法和数据筛选装置
US20180101404A1 (en) Resource and latency estimation-based scheduling
CN106339252B (zh) 分布式dag系统的自适应优化方法和装置
CN111198754B (zh) 一种任务调度方法及装置
CN109257399A (zh) 云平台应用程序管理方法及管理平台、存储介质
CN106293947B (zh) 虚拟化云环境下gpu-cpu混合资源分配系统和方法
CN105607952A (zh) 一种虚拟化资源的调度方法及装置
CN108549592A (zh) 一种数据库连接池的监控方法及监控设备、应用服务器
Sun et al. Learning-based Adaptation Framework for Elastic Software Systems.
CN103442087B (zh) 一种基于响应时间趋势分析的Web服务系统访问量控制装置和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant