大数据ETL任务调度方法及装置与流程

文档序号:12034835阅读:987来源:国知局
大数据ETL任务调度方法及装置与流程

本发明实施例涉及大数据处理技术,尤其涉及一种大数据etl任务调度方法及装置。



背景技术:

大数据技术是当前各行各业争相推动和依赖的技术领域。尤其是在互联网、电子商务、消费金融等行业,日常需要运行数以万记的大数据etl(extraction-transformation-loading,数据抽取、转换、装载的过程)任务作为数据分析、业务决策的重要支撑。

etl任务需要按照业务情况配置对应的任务流,一个任务流可以看做一个具有根节点的有向无环图,任务之间有严格的先后顺序。常用的调度方案(如crontab等定时调度器),到指定时间即刻触发任务流运行,不考虑上一轮次调度流程是否完成,每个新轮次的任务流都是独立的一个过程。

如图1所示,同个任务,不同轮次有可能会重叠运行,造成数据结果出错,管理混乱;不同轮次的多个任务同时运行,会造成系统资源耗尽,服务器崩溃。



技术实现要素:

有鉴于此,本发明实施例提供一种大数据etl任务调度方法及装置,以避免数据结果出错,节省系统资源。

第一方面,本发明实施例提供了一种大数据etl任务调度方法,所述方法包括:

配置至少两个etl任务流中每个etl任务流对应的调度方案;

根据每个etl任务流对应的调度方案,对所述每个etl任务流进行调度,以保证每个etl任务流在同一时间只执行同一轮次。

第二方面,本发明实施例还提供了一种大数据etl任务调度装置,所述装置包括:

调度方案配置模块,用于配置至少两个etl任务流中每个etl任务流对应的调度方案;

etl任务流调度模块,用于根据每个etl任务流对应的调度方案,对所述每个etl任务流进行调度,以保证每个etl任务流在同一时间只执行同一轮次。

本发明实施例的技术方案,通过配置至少两个etl任务流中每个etl任务流对应的调度方案,根据每个etl任务流对应的调度方案,对每个etl任务流进行调度,以保证每个etl任务流在同一时间只执行同一轮次,避免了不同轮次的相同etl任务流同时执行导致的数据混乱,避免了数据结果出错,提高了数据结果的准确性,节省了系统资源。

附图说明

图1是现有技术中的大数据etl任务调度方案的调度效果示意图;

图2是本发明实施例一提供的一种大数据etl任务调度方法的流程图;

图3是本发明实施例二提供的一种大数据etl任务调度方法的流程图;

图4是本发明实施例提供的大数据etl任务调度方法中的第一调度方案的流程图;

图5是本发明实施例提供的大数据etl任务调度方法中的第一调度方案的调度效果示意图;

图6是本发明实施例提供的大数据etl任务调度方法中的第二调度方案的流程图;

图7是本发明实施例三提供的一种大数据etl任务调度装置的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。

实施例一

图2是本发明实施例一提供的一种大数据etl任务调度方法的流程图,本实施例可适用于对大数据etl任务进行调度的情况,该方法可以由大数据etl任务调度装置来执行,该装置可以由软件和/或硬件来实现,一般可集成于服务器中,该方法具体包括如下步骤:

步骤110,配置至少两个etl任务流中每个etl任务流对应的调度方案。

大数据etl任务需要按照业务情况配置对应的etl任务流,因此会包括多个etl任务流,即至少两个etl任务流。在调度etl任务流时,需要配置每个etl任务流的调度方案,具体配置时,可以接收管理人员配置的每个etl任务流的调度方案,也可以根据管理人员预先配置的etl任务流的重要程度,自动配置每个etl任务流对应的调度方案。配置的每个etl任务流对应的调度方案,需要保证该etl任务流在同一时间只执行一次,保证不重复执行。

步骤120,根据每个etl任务流对应的调度方案,对所述每个etl任务流进行调度,以保证每个etl任务流在同一时间只执行同一轮次。

具体对每个etl任务流进行调度时,可以由调度器进行调度,调度器需要接收每个etl任务流对应的调度方案的配置信息,识别每个etl任务流对应的调度方案的配置信息,根据该配置信息,调度每个etl任务流的执行。

每个etl任务流对应的调度方案,保证了该etl任务流在同一时间只执行一次,即在同一时间只执行相同etl任务流中的一个任务,避免重复执行。

本实施例的技术方案,通过配置至少两个etl任务流中每个etl任务流对应的调度方案,根据每个etl任务流对应的调度方案,对每个etl任务流进行调度,以保证每个etl任务流在同一时间只执行同一轮次,避免了不同轮次的相同etl任务流同时执行导致的数据混乱,避免了数据结果出错,提高了数据结果的准确性,节省了系统资源。

实施例二

图3是本发明实施例二提供的一种大数据etl任务调度方法的流程图,本实施例在上述实施例的基础上进行了优化,给出了两种具体的调度方案,该方法具体包括如下步骤:

步骤210,配置至少两个etl任务流中每个etl任务流对应的调度方案。

步骤220,如果一个etl任务流对应的调度方案为第一调度方案,则在该etl任务流前一轮次的任务完成后,执行当前轮次的任务;和/或

如果一个etl任务流对应的调度方案为第二调度方案,则在到达该etl任务流的周期调度时间时,清理掉前一轮次的任务后,执行当前轮次的任务。

对应每个etl任务流配置单独的调度方案,在进行配置时,可以根据每个etl任务流中的任务的情况以及时间段来进行配置,配置的调度方案有两种,即第一调度方案和第二调度方案,不同时间段中同一etl任务流可以配置不同的调度方案。如果配置的一个etl任务流的调度方案为第一调度方案,那么在调度该etl任务流时,需要在该etl任务流的前一轮次的所有任务全部执行完毕后,再执行当前轮次的任务,保证了同一时间只执行一个etl任务流的同一轮次。如果配置的一个etl任务流的调度方案为第二调度方案,那么在调度该etl任务流时,根据每个轮次的周期调度时间进行调度,在到达该etl任务流的周期调度时间时,对于前一轮次的任务没有执行完毕时则清理掉前一轮次的任务,并执行当前轮次的任务,保证了同一时间只执行一个etl任务流的同一轮次。etl任务流中的每个任务具有具体的先后执行时间顺序。

本实施例的技术方案,在上述实施例的基础上,给出了具体的两种调度方案,即第一调度方案和第二调度方案,第一调度方案是在前一轮次的任务执行完毕后再执行当前轮次的任务,可以保证每一轮次etl任务流中所有的任务均执行完毕,第二调度方案是在到达周期调度时间时,清理掉前一轮次的任务后再执行当前轮次的任务,第一调度方案和第二调度方案均保证了同一时间只执行一个etl任务流的同一轮次,避免了任务重叠执行的情况,提高了数据结果的准确性,节省了系统资源,避免了服务器过载,提升了调度系统的稳定性。

在上述技术方案的基础上,图4是本发明实施例提供的大数据etl任务调度方法中的第一调度方案的流程图,如图4所示,在该etl任务流前一轮次的任务完成后,执行当前轮次的任务,可选包括:

步骤2211,通过第一定时器轮询是否到达该etl任务流的调度时间;

步骤2212,如果到达,则判断该etl任务流的前一轮次的任务是否执行完毕;

步骤2213,如果没有执行完毕,则继续执行前一轮次的任务设定延迟时间,返回执行步骤2211;

步骤2214,如果执行完毕,则执行当前轮次的任务,并根据前一轮次的任务流的执行时间确定当前轮次的任务流的周期调度时间。

其中,调度时间包括周期调度时间和设定延迟时间,周期调度时间是根据前一轮次的任务流的指向时间动态调整的。

首先通过第一定时器轮询是否到达周期调度时间,在没有到达时继续轮询,在到达时判断该etl任务流的前一轮次的任务是否执行完毕,如果没有执行完毕,则继续执行前一轮次的任务,并延迟执行设定延迟时间,将该设定延迟时间写进第一定时器,再通过第一定时器轮询是否到达设定延迟时间,在到达时,如果前一轮次的任务仍没有执行完毕,则再延迟执行设定延迟时间,将该设定延迟时间写进第一定时器继续轮询,直到前一轮次的任务执行完毕;如果前一轮次的任务执行完毕,则执行当前轮次的任务,并根据前一轮次的任务流的执行时间确定当前轮次的任务流的周期调度时间,将确定的周期调度时间写进第一定时器中,实现了动态更新周期调度时间。实现了周期调度时间的动态调整,保证每个etl任务流完全执行。

在上述技术方案的基础上,根据前一轮次的任务的执行时间确定当前轮次的任务流的周期调度时间,可选包括:

如果前一轮次的任务流的执行时间大于预设周期调度时间,则将前一轮次的任务流的执行时间确定为当前轮次的任务流的周期调度时间;

如果前一轮次的任务流的执行时间不大于预设周期调度时间,则将所述预设周期调度时间确定为当前轮次的任务流的周期调度时间。

其中,预设周期调度时间是提前设置的周期调度时间。

实时计算每一轮次的etl任务流的执行时间,并在前一轮次的任务流执行完毕时,将前一轮次的任务流的执行时间与预设周期调度时间进行对比,如果前一轮次的任务流的执行时间大于预设周期调度时间,则将前一轮次的任务流的执行时间确定为当前轮次的任务流的周期调度时间;如果前一轮次的任务流的执行时间不大于预设周期调度时间,则将预设周期调度时间确定为当前轮次的任务流的周期调度时间。实现了根据前一轮次的任务流的执行时间动态调整当前轮次的任务流的周期调度时间,对一个etl任务流来说,第一次调度时按照预设周期调度时间进行调度,后续如果系统性能受到影响,任务流的周期调度时间会相应延长,再后来如果修改了代码或者是硬件性能提升,则任务流的周期调度时间会相应缩短,最短为预设周期调度时间。图5是本发明实施例提供的大数据etl任务调度方法中的第一调度方案的调度效果示意图,如图5所示,任务a1、a2和a3构成了一个etl任务流,开始的周期调度时间为n小时,后来周期调度时间延长为x-n小时、y-x小时,可见周期调度时间可以动态调整,且保证了在同一时间只执行同一etl任务流的同一轮次。

在上述技术方案的基础上,图6是本发明实施例提供的大数据etl任务调度方法中的第二调度方案的流程图,如图6所示,在到达该etl任务流的周期调度时间时,清理掉前一轮次的任务后,执行当前轮次的任务,可选包括:

步骤2221,通过第二定时器轮询是否到达该etl任务流的周期调度时间;

步骤2222,如果到达,则判断该etl任务流的前一轮次的任务是否执行完毕;

步骤2223,如果没有执行完毕,则杀掉前一轮次的所有任务,或者是取消前一轮次中未执行的任务并继续执行正在执行的任务,并执行当前轮次的任务;

步骤2224,如果执行完毕,则执行当前轮次的任务。

其中,周期调度时间是提前设置的。

首先通过第二定时器轮询是否到达周期调度时间,在到达时判断该etl任务流的前一轮次的任务是否执行完毕,如果没有执行完毕,则清理前一轮次的任务,清理方式可以是直接杀掉前一轮次的所有任务,也可以是取消前一轮次中未执行的任务并继续执行正在执行的任务,在清理前一轮次的任务后,执行当前轮次的任务;如果前一轮次的任务执行完毕,则可以直接执行当前轮次的任务。通过清理,保证了在同一时间只执行同一etl任务流的同一轮次。

实施例三

图7是本发明实施例三提供的一种大数据etl任务调度装置的结构示意图,本实施例所述的大数据etl任务调度装置可以由软件和/或硬件来实现,一般可集成于服务器中,如图7所示,该装置包括:调度方案配置模块310和etl任务调度模块320。

其中,调度方案配置模块310,用于配置至少两个etl任务流中每个etl任务流对应的调度方案;

etl任务流调度模块320,用于根据每个etl任务流对应的调度方案,对所述每个etl任务流进行调度,以保证每个etl任务流在同一时间只执行同一轮次。

可选的,所述etl任务流调度模块包括:

第一调度单元,用于如果一个etl任务流对应的调度方案为第一调度方案,则在该etl任务流前一轮次的任务完成后,执行当前轮次的任务;和/或

第二调度单元,用于如果一个etl任务流对应的调度方案为第二调度方案,则在到达该etl任务流的周期调度时间时,清理掉前一轮次的任务后,执行当前轮次的任务。

可选的,所述第一调度单元包括:

第一轮询子单元,用于通过第一定时器轮询是否到达该etl任务流的调度时间;

第一判断子单元,用于如果到达,则判断该etl任务流的前一轮次的任务是否执行完毕;

延迟执行子单元,用于如果没有执行完毕,则继续执行前一轮次的任务设定延迟时间,触发轮询模块进行轮询;

动态调整子单元,用于如果执行完毕,则执行当前轮次的任务,并根据前一轮次的任务流的执行时间确定当前轮次的任务流的周期调度时间。

可选的,所述动态调整子单元具体用于:

如果执行完毕,则执行当前轮次的任务;

如果前一轮次的任务流的执行时间大于预设周期调度时间,则将前一轮次的任务流的执行时间确定为当前轮次的任务流的周期调度时间;

如果前一轮次的任务流的执行时间不大于预设周期调度时间,则将所述预设周期调度时间确定为当前轮次的任务流的周期调度时间。

可选的,所述第二调度单元包括:

第二轮询子单元,用于通过第二定时器轮询是否到达该etl任务流的周期调度时间;

第二判断子单元,用于如果到达,则判断该etl任务流的前一轮次的任务是否执行完毕;

任务处理子单元,用于如果没有执行完毕,则杀掉前一轮次的所有任务,或者是取消前一轮次中未执行的任务并继续执行正在执行的任务,并执行当前轮次的任务;

任务执行子单元,用于如果执行完毕,则执行当前轮次的任务。

上述大数据etl任务调度装置可执行本发明任意实施例所提供的大数据etl任务调度方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的大数据etl任务调度方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1