任务调度方法、装置及系统制造方法及图纸

技术编号:18426054 阅读:25 留言:0更新日期:2018-07-12 01:55
本申请提供了一种任务调度方法、装置及系统。该方法包括:依据控制流中多个任务之间的依赖关系,确定各个任务的初始优先级,所述优先级反映同一控制流中的各个任务的执行顺序;以任务的执行顺序、任务的构成以及任务在多个处理器中的分配情况为约束规则,建立任务调度模型;对所述任务调度模型进行求解以确定任务调度方案,使得按照所述任务调度方案执行所述多个任务所需的时间最短,其中,所述任务调度方案包括所述多个任务的执行顺序。本发明专利技术实施例能够提供ETL并行任务调度中的最佳调度顺序。

Task scheduling method, device and system

The application provides a task scheduling method, device and system. The method includes: Based on the dependency relationship between multiple tasks in the control stream, the initial priority of each task is determined. The priority reflects the execution sequence of each task in the same control stream, and the execution order of the task, the composition of the task and the assignment of the task in multiple processors are established as the constraint rules. The task scheduling model is solved to determine the task scheduling scheme so that the time required to execute the multiple tasks described according to the task scheduling scheme is shortest, in which the task scheduling scheme includes the execution order of the multiple tasks. The embodiment of the invention can provide the optimal scheduling sequence in ETL parallel task scheduling.

【技术实现步骤摘要】
任务调度方法、装置及系统
本申请涉及由计算机实现的任务调度,尤其涉及ETL调度系统中任务调度的方法、装置和系统。
技术介绍
数据仓库(DW)能够为企业决策分析提供一个面向主题的、综合的、相对稳定的、反映历史变化的数据集合,能够提升数据的价值,因而成为实现企业商务智能(BI)的一种重要手段。建立数据仓库的三大核心技术是数据的抽取(Extract)、转化(Transform)和加载(Load),实现这几种技术的软件统称为ETL(Extract-Transform-Load)调度系统。ETL调度系统能够按照统一的规则实现从数据源到数据仓库的数据处理过程。现有技术中的ETL调度系统适合处理控制流中串行的顺序执行的任务,当一个被依赖的前序任务完成后再顺序执行下一个任务。但是对于多个同时并发执行的控制流中的任务,ETL缺乏合理的并行调度控制机制,执行并行任务是无序的,通常会随机地将并行任务分配给CPU执行,容易发生多个并发控制流在同一时间内执行多个并行任务时争夺资源而导致相互等待的死锁现象,需要由维护人员进行人工手动干预才能顺利完成调度。这加大了维护压力,也影响了系统的运行效率。此外,ETL调度系统缺乏对并行任务数量的控制,因此,当达到处理机所能处理的极限时,ETL调度系统仍然会增加新任务,导致任务大量积压,处理效率大幅度下降,出现ETL过载甚至宕机的情况,因而维护人员还需要时刻关注当前的运行的任务数量与处理机的性能。
技术实现思路
本专利技术实施例提供了一种任务调度方法、装置及系统,能够提供ETL任务调度中的最佳调度顺序。本专利技术的实施例提供了一种任务调度方法,包括:依据控制流中多个任务之间的依赖关系,确定各个任务的初始优先级,所述优先级反映同一控制流中的各个任务的执行顺序;以任务的执行顺序、任务的构成以及任务在多个处理器中的分配情况为约束规则,建立任务调度模型;对所述任务调度模型进行求解以确定任务调度方案,使得按照所述任务调度方案执行所述多个任务所需的时间最短,其中,所述任务调度方案包括所述多个任务的执行顺序。本专利技术的实施例提供了一种任务调度装置,包括:初始优先级确定模块,用于依据控制流中多个任务之间的依赖关系,确定各个任务的初始优先级,所述优先级反映同一控制流中的各个任务的执行顺序;任务调度模型建立模块,用于以任务的执行顺序、任务的构成以及任务在多个处理器中的分配情况为约束规则,建立任务调度模型;任务调度方案确定模块,用于对所述任务调度模型进行求解以确定任务调度方案,使得按照所述任务调度方案执行所述多个任务所需的时间最短,其中,所述任务调度方案包括所述多个任务的执行顺序。本申请的实施例还提供了一种任务调度系统,包括根据上述实施例的任务调度装置。本专利技术的实施例根据ETL调度系统中任务的依赖关系确定任务在并行调度中的初始优先级,并根据任务执行的顺序、任务的构成和任务的分配情况建立ETL任务调度的模型,在此基础上对ETL任务调度模型求解并优化任务调度,根据任务实际处理数据的情况动态的调整并行任务的优先级并确定并行任务的数量,输出最佳的任务调度顺序作为任务调度模型的最优解。因此,本申请实施例弥补了现有技术中典型的ETL调度系统对并行任务处理杂乱无序、缺乏统一优化控制策略的不足,更充分发挥了ETL系统处理并行任务的能力。通过对并行任务的合理调度,提高了CPU的处理效率,节省了所有任务的处理时间,实现了高效处理复杂多任务功能的目的,从而进一步提高了ETL调度系统在构建用于经营分析的数据仓库的实用性。附图说明此处所说明的附图用来提供对本专利技术实施例的进一步理解,构成本申请的一部分,用于说明目的而不是意在将本申请局限于这些具体形式。在附图中:图1示意性地示出了ETL调度系统在数据处理中的作用;图2为ETL调度系统的基本架构示意图;图3为本专利技术实施例中任务调度方法的流程示意图;图4为本专利技术实施例中并行任务调度的示意图;图5为本专利技术实施例中进行任务调度模型求解的示意性流程图;图6为本专利技术实施例中任务调度装置的结构示意图。具体实施方式下面将结合本专利技术的具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实现方式,而不是全部的可能实现方式。基于本申请中的实施例,本领域普通技术人员能够获得其他实施例。随着经济的迅速发展,很多数据密集型企业每天都会产生数以亿计的庞大的交易数据,这些海量的数据需要进行处理。ETL是从源数据到目标数据转换的中间环节,图1示意性地示出了ETL调度系统在数据处理中的作用。如图1所示,ETL能够对来自数据源的数据进行抽取、转化、清洗、分析、计算、汇总、加载等,将这些数据从营业系统等数据源装载到用于经营分析的数据仓库中,对各种执行过程分配资源、进行调度控制以及监控运行状况等,是构建和维护数据仓库实现商务智能的核心技术手段。典型的ETL产品包括国外的DataStage、PowerCenter、Automation和Kettle,以及国内的华为ETL、亚信ETL等。ETL调度系统通常是由一个管理节点和多个执行节点组成的分布式架构的系统。图2示出了典型的ETL调度系统的基本架构。如图2所示,ETL服务器执行ETL管理中心功能,构成系统中的管理节点,主要包括元数据服务引擎、控制中心服务引擎、监控服务引擎和报告存储服务引擎,这些引擎之间能够彼此通信,并能够访问相应的(本地或远程)数据库。ETL服务器通过有线或无线的网络链路连接到多个ETL节点机,这些ETL节点机作为系统中的执行节点,分别包括各自的控制流执行引擎和数据流管理引擎。图2还示出了ETL管理中心各个引擎的主要功能。例如,元数据服务引擎可以包括用于控制流元数据、数据流元数据、系统参数配置、安全验证管理等的功能组件,控制中心服务引擎可以包括用于管理执行计划、定期触发启动控制流、管理执行流程、管理节点机的服务状态、分发任务等的功能组件。监控服务引擎可以包括用于监控系统状态、监控控制流的运行状态、监控数据流的运行状态、用户控制请求提交等的功能组件。报告存储服务引擎可以包括存储执行完成控制流实例、保存任务日志、存储会话状态等的功能组件。图3是示出本专利技术实施例的任务调度方法的流程示意图,该方法可以大致包括如下步骤。S101:依据控制流中多个任务之间的依赖关系,确定各个任务的初始优先级,所述优先级反映同一控制流中的各个任务的执行顺序。S102:以任务的执行顺序、任务的构成以及任务在多个处理器中的分配情况为约束规则,建立任务调度模型。S103:对所述任务调度模型进行求解以确定任务调度方案,使得按照所述任务调度方案执行所述多个任务所需的时间最短,其中,所述任务调度方案包括所述多个任务的执行顺序。根据本申请的实施例,首先根据ETL中任务的依赖关系确定该任务在并行调度中的初始优先级。优先级表明任务的重要性以及执行的优先顺序,优先级高说明任务重要性高,将被优先执行。然后,根据任务执行的顺序、任务的构成和任务的分配情况建立ETL任务调度的模型,在满足约束条件的情况下,目标是要求ETL执行完所有任务的时间最短。接着,对该ETL任务调度模型求解并优化任务调度,根据任务实际处理数据的情况动态的调整并行任务的优先级并确定并行任务的数量,输出所获得的任务本文档来自技高网...

【技术保护点】
1.一种任务调度方法,其特征在于,包括:依据控制流中多个任务之间的依赖关系,确定各个任务的初始优先级,所述优先级反映同一控制流中的各个任务的执行顺序;以任务的执行顺序、任务的构成以及任务在多个处理器中的分配情况为约束规则,建立任务调度模型;对所述任务调度模型进行求解以确定任务调度方案,使得按照所述任务调度方案执行所述多个任务所需的时间最短,其中,所述任务调度方案包括所述多个任务的执行顺序。

【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:依据控制流中多个任务之间的依赖关系,确定各个任务的初始优先级,所述优先级反映同一控制流中的各个任务的执行顺序;以任务的执行顺序、任务的构成以及任务在多个处理器中的分配情况为约束规则,建立任务调度模型;对所述任务调度模型进行求解以确定任务调度方案,使得按照所述任务调度方案执行所述多个任务所需的时间最短,其中,所述任务调度方案包括所述多个任务的执行顺序。2.按照权利要求1所述的方法,其特征在于,确定任务调度方案的步骤包括:步骤A,基于所述初始优先级确定当前方案,以所述当前方案作为所述任务调度模型的输入值,计算执行所述多个任务所需的时间Z(C);步骤B,以对所述当前方案进行调整而得到的新方案作为所述任务调度模型的输入值,计算执行所述多个任务所需的新时间Z’(C);步骤C,计算时间差ΔZ(C)=Z'(C)-Z(C);步骤D,当所述时间差ΔZ(C)的数值小于零时,将所述当前方案更新为所述新方案,并执行步骤F;步骤E,当所述时间差ΔZ(C)的数值大于或等于零时,执行步骤F;步骤F,若所述ΔZ(C)的数值连续大于或等于零的次数未达到阈值次数,则返回执行所述步骤B;若所述ΔZ(C)的数值连续大于或等于零的次数达到所述阈值次数,则将所述当前方案确定为所述任务调度方案。3.按照权利要求1所述的方法,其特征在于,确定各个任务的初始优先级的步骤包括:依据所述各个任务中每一任务的后续任务的数量,确定该任务的初始优先级,使得后续任务的数量越多,该任务的初始优先级越高。4.按照权利要求1所述的方法,其特征在于,所述任务调度模型由以下表达式确定:j∈[1,mi],o∈[1,l];并且,r(ti,j,ti,k)=1→zs(ti,k)-ze(ti,j)≥0,j≠k,j,k∈[1,mi];其中,l表示处理器的总数,n表示控制流的总数,mi表示第i个控制流中的任务的总数;ti,k表示第i个控制流中的第k个任务;表示第i个控制流中的第j个任务ti,j被分配到第o个处理器co上执行的概率;π(co)表示处理器co中等待任务队列的数量阈值;表示任务与任务ti,k的执行顺序关系,若任务ti,k是任务的后续任务,则的值取为1,否则为0;表示任务ti,j在处理器...

【专利技术属性】
技术研发人员:李湛田江涛刘毅闫振英
申请(专利权)人:中国移动通信集团河北有限公司中国移动通信集团公司
类型:发明
国别省市:河北,13

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1