一种数据仓库中任务的调度方法、装置.pdf

上传人:1** 文档编号:6062679 上传时间:2019-04-05 格式:PDF 页数:16 大小:1.01MB
返回 下载 相关 举报
摘要
申请专利号:

CN201511021515.0

申请日:

2015.12.30

公开号:

CN106933857A

公开日:

2017.07.07

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效 IPC(主分类):G06F 17/30申请日:20151230|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

阿里巴巴集团控股有限公司

发明人:

张世晶

地址:

英属开曼群岛大开曼资本大厦一座四层847号邮箱

优先权:

专利代理机构:

北京国昊天诚知识产权代理有限公司 11315

代理人:

许志勇

PDF下载: PDF下载
内容摘要

本申请公开了一种数据仓库中任务的调度方法、装置,当用户需要批量启动某一批任务节点时,数据仓库调度系统根据用户的输入信息执行如下步骤:接收用户输入的新建虚拟任务节点的操作;接收用户输入的将所述新建的虚拟任务节点与所述批量启动的某一批任务节点关联的操作;当所述新建的虚拟任务节点启动后,所述数据仓库调度系统从所述新建的虚拟任务节点开始至所述批量启动的某一批任务节点的叶子节点路径上各任务节点的执行顺序调度各任务节点执行任务;当各任务节点执行完任务后,输出所述批量启动的某一批任务节点的执行结果给用户。可以解决现有的任务的调度和管理效率低的问题。

权利要求书

1.一种数据仓库中任务的调度方法,当用户需要批量启动某一批任
务节点时,数据仓库调度系统根据用户的输入信息执行如下步骤:
接收用户输入的新建虚拟任务节点的操作;
接收用户输入的将所述新建的虚拟任务节点与所述批量启动的某一
批任务节点关联的操作;
当所述新建的虚拟任务节点启动后,所述数据仓库调度系统从所述新
建的虚拟任务节点开始至所述批量启动的某一批任务节点的叶子节点路
径上各任务节点的执行顺序调度各任务节点执行任务;
当各任务节点执行完任务后,输出所述批量启动的某一批任务节点的
执行结果给用户。
2.根据权利要求1所述的方法还包括:
检测到用户点击新建虚拟任务节点的按钮,向用户展示待启动的任务
节点的任务流图和输入界面,所述任务流图中包括所述待启动的任务节点
的所有上游任务节点的标识和依赖关系。
3.根据权利要求2所述的方法还包括:
检测到用户在所述输入界面中输入所述待启动的任务节点的若干上
游根任务节点的标识,建立所述新建的虚拟任务节点与所述待启动的任务
节点的若干上游根任务节点的关联关系。
4.根据权利要求3所述的方法还包括:
检测到用户点击所述新建的虚拟任务节点的启动按钮,将与所述新建
的虚拟任务节点关联的若干上游根任务节点作为一个执行单位,创建一个
任务执行进程进行整体调度。
5.根据权利要求4所述的方法还包括:
分别确定所述若干上游根任务节点到所述待启动的任务节点的叶子
节点路径;
根据每个叶子节点路径上各上游任务节点的执行顺序调度各上游任
务节点执行任务;
当每个叶子节点路径上任务节点的任务执行完毕之后,将每个叶子节
点路径的任务执行结果输出给所述待启动的任务节点进行任务执行。
6.一种数据仓库中任务的调度装置,位于数据仓库调度系统中,其特
征在于,当用户需要批量启动某一批任务节点时,数据仓库调度系统包括:
接收模块,用于接收用户输入的新建虚拟任务节点的操作;
所述接收模块,还用于接收用户输入的将所述新建的虚拟任务节点与
所述批量启动的某一批任务节点关联的操作;
调度模块,用于当所述新建的虚拟任务节点启动后,所述数据仓库调
度系统从所述新建的虚拟任务节点开始,根据所述批量启动的某一批任务
节点的叶子节点路径上各任务节点的执行顺序调度各任务节点执行任务;
输出模块,用于当各任务节点执行完任务后,输出所述批量启动的某
一批任务节点的执行结果给用户。
7.根据权利要求6所述的装置,其特征在于,还包括:
展示模块,用于在检测到用户点击新建虚拟任务节点的按钮,向用户
展示待启动的任务节点的任务流图和输入界面,所述任务流图中包括所述
待启动的任务节点的所有上游任务节点的标识和依赖关系。
8.根据权利要求7所述的装置,其特征在于,还包括:
关联模块具体用于:在检测到用户在所述输入界面中输入所述待启动
的任务节点的若干上游根任务节点的标识,建立所述新建的虚拟任务节点
与所述待启动的任务节点的若干上游根任务节点的关联关系。
9.根据权利要求8所述的装置,其特征在于,还包括:
启动模块具体用于:检测到用户点击所述新建的虚拟任务节点的启动
按钮,将与所述新建的虚拟任务节点关联的若干上游根任务节点作为一个
执行单位,创建一个任务执行进程进行整体调度。
10.根据权利要求9所述的装置,其特征在于:
所述调度模块具体用于:分别确定所述若干上游根任务节点到所述待
启动的任务节点的叶子节点路径;根据每个叶子节点路径上各上游任务节
点的执行顺序调度各上游任务节点执行任务;当每个叶子节点路径上任务
节点的任务执行完毕之后,将每个叶子节点路径的任务执行结果输出给所述
待启动的任务节点进行任务执行。

说明书

一种数据仓库中任务的调度方法、装置

技术领域

本申请涉及数据仓库的技术领域,具体地说,涉及一种数据仓库中任务
的调度方法、装置。

背景技术

数据仓库是一个独立的数据环境,通过抽取过程将数据从联机事务处理
环境、外部数据源和脱机的数据存储介质导入到数据仓库中。它的目的是建
立结构化的数据存储空间,将不同数据源的数据分离出来,形成统一、有效
的数据集,并最终加工、整合成所需要的数据。

ETL(Extraction-Transformation-Loading)是数据抽取、清洗、转换
和装载的过程。是构建数据仓库的重要一环,用户从数据库抽取出所需的数
据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数
据仓库中去。

随着数据规模和数据分析业务的快速增长,ETL任务的数量和复杂度也
随之快速增长,但由于ETL包括众多的处理任务,且这些处理任务之间有一
定的依赖关系,而目前缺乏有效的任务调度方法,影响了对任务的调度和管
理效率,也影响了数据仓库开发效率和资源利用率

发明内容

有鉴于此,本申请提供一种数据仓库中任务的调度方法、装置,可以解
决现有的任务的调度和管理效率低的问题。

为了解决上述技术问题,本申请第一方面提供一种数据仓库中任务的调
度方法,当用户需要批量启动某一批任务节点时,数据仓库调度系统根据
用户的输入信息执行如下步骤:

接收用户输入的新建虚拟任务节点的操作;

接收用户输入的将所述新建的虚拟任务节点与所述批量启动的某一
批任务节点关联的操作;

当所述新建的虚拟任务节点启动后,所述数据仓库调度系统从所述新
建的虚拟任务节点开始,根据所述批量启动的某一批任务节点的叶子节点
路径上各任务节点的执行顺序调度各任务节点执行任务;

当各任务节点执行完任务后,输出所述批量启动的某一批任务节点的
执行结果给用户。

其中,所述的方法还包括:

检测到用户点击新建虚拟任务节点的按钮,向用户展示待启动的任务
节点的任务流图和输入界面,所述任务流图中包括所述待启动的任务节点
的所有上游任务节点的标识和依赖关系。

其中,所述的方法还包括:

检测到用户在所述输入界面中输入所述待启动的任务节点的若干上
游根任务节点的标识,建立所述新建的虚拟任务节点与所述待启动的任务
节点的若干上游根任务节点的关联关系。

其中,所述的方法还包括:

检测到用户点击所述新建的虚拟任务节点的启动按钮,将与所述新建
的虚拟任务节点关联的若干上游根任务节点作为一个执行单位,创建一个
任务执行进程进行整体调度。

其中,所述的方法还包括:

分别确定所述若干上游根任务节点到所述待启动的任务节点的叶子
节点路径;

根据每个叶子节点路径上各上游任务节点的执行顺序调度各上游任
务节点执行任务;

当每个叶子节点路径上任务节点的任务执行完毕之后,将每个叶子节
点路径的任务执行结果输出给所述待启动的任务节点进行任务执行。

本发明还提供一种数据仓库中任务的调度装置,位于数据仓库调度系统
中,当用户需要批量启动某一批任务节点时,数据仓库调度系统包括:

接收模块,用于接收用户输入的新建虚拟任务节点的操作;

所述接收模块,还用于接收用户输入的将所述新建的虚拟任务节点与
所述批量启动的某一批任务节点关联的操作;

调度模块,用于当所述新建的虚拟任务节点启动后,所述数据仓库调
度系统从所述新建的虚拟任务节点开始,根据所述批量启动的某一批任务
节点的叶子节点路径上各任务节点的执行顺序调度各任务节点执行任务;

输出模块,用于当各任务节点执行完任务后,输出所述批量启动的某
一批任务节点的执行结果给用户。

其中,所述的装置还包括:

展示模块,用于在检测到用户点击新建虚拟任务节点的按钮,向用户
展示待启动的任务节点的任务流图和输入界面,所述任务流图中包括所述
待启动的任务节点的所有上游任务节点的标识和依赖关系。

其中,所述的装置还包括:

关联模块具体用于:在检测到用户在所述输入界面中输入所述待启动
的任务节点的若干上游根任务节点的标识,建立所述新建的虚拟任务节点
与所述待启动的任务节点的若干上游根任务节点的关联关系。

其中,所述的装置还包括:

启动模块具体用于:检测到用户点击所述新建的虚拟任务节点的启动
按钮,将与所述新建的虚拟任务节点关联的若干上游根任务节点作为一个
执行单位,创建一个任务执行进程进行整体调度。

其中,所述调度模块具体用于:分别确定所述若干上游根任务节点到
所述待启动的任务节点的叶子节点路径;根据每个叶子节点路径上各上游
任务节点的执行顺序调度各上游任务节点执行任务;当每个叶子节点路径
上任务节点的任务执行完毕之后,将每个叶子节点路径的任务执行结果输出
给所述待启动的任务节点进行任务执行。

本发明实施例中,当用户需要批量启动某一批任务节点时,可以向用户
展示该某一批任务节点的任务流图,以便用户新建虚拟任务节点并关联所述
批量启动的某一批任务节点,当用户启动该新建虚拟任务节点,即可将所
述批量启动的某一批任务节点进行整体调度,并从所述新建的虚拟任务节
点至所述批量启动的某一批任务节点的叶子节点路径上各任务节点的执
行顺序调度各任务节点执行任务,当所有任务节点执行完任务后,输出所
述批量启动的某一批任务节点的执行结果给用户。本发明的技术方案使得
所有任务节点的总执行时间得到了尽可能的短,提升任务调度的效率,也使
得系统的资源利用率尽可能提高。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部
分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的
不当限定。在附图中:

图1为一种数据仓库的任务流的示意图;

图2为本发明实施例提供的一种数据仓库中任务的调度方法的流程图;

图3为本发明实施例提供的一种数据仓库中任务的调度方法的流程图;

图4为本发明实施例采用的一种数据仓库调度系统的架构图;

图5为本发明实施例提供的一种数据仓库中任务的调度方法的流程图;

图6本发明实施例新增虚拟任务后的任务流图;

图7为本发明实施例提供的一种数据仓库中任务的调度装置的结构图。

具体实施方式

以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请
如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解
并据以实施。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/
输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器
(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。
内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由
任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、
程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存
(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他
类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存
储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器
(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁
磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计
算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑
可读媒体(transitory media),如调制的数据信号和载波。

如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技
术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明
书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能
上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包
含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可
接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问
题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接
的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表
所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段
间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施
方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请
的范围。本申请的保护范围当视所附权利要求所界定者为准。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵
盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些
要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者
系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限
定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要
素。

数据仓库是一个为决策者提供联机分析处理(如决策支持、数据挖掘)
所需要信息的仓储,它是面向主题的、集成的、随时间改变的、持久的数据
集合,主要用于支持经营管理中的决策制定多工程。数据仓库中的数据是按
主题组织的,具有不同的粒度级别,并支持多种前端分析应用。因此,数据
仓库中的处理过程众多,包括建立数据仓库的数据抽取、转换、加载、数据
集市生成、数据立方生成过程,数据仓库管理的更新、归档过程以及应用报
表生成程序等。对于企业级数据仓库系统,其中的处理程序成千上万,如何
有效率地调度和管理这些处理任务是数据仓库管理中非常重要的工作,也是
提高数据仓库性能和资源利用率的关键。

图1为一种数据仓库的任务流的示意图,如图1所示,数据仓库中的各
种任务处理过程以及任务之间的相互依赖关系构成了一个有向图,其中,每
个任务的运行依赖的顺序如箭头所示。例如,数据仓库在回溯Z任务的数据
时,在现有技术中,数据仓库管理员会先把A/C这两个任务分别手工启动起
来,等待这两个任务运行完成后,再启动E任务。启动A/C任务之后再手工
启动B/F/I/G任务、D/H任务、K任务,当B任务运行完成后F/I两个任务
会自动运行,而G/J两个任务需要数据仓库管理员手工启动。待Z任务以上
所有任务按依赖顺序完成之后,最后运行Z任务。这中间的过程都需要数据
仓库管理员手工启动任务,并且需要实时关注任务的运行状况再决定下一步
任务何时开始。但是,数据仓库系统中作业的数量巨大,完全由数据仓库管
理员手工安排是不现实的,即使可以安排,也是粒度很粗的安排,启动任务
效率低且容易出错。

因此,需要研究在满足某种要求前提下的数据仓库中任务的自动调度策
略。为此,本发明申请提供基于任务流的思想和方法来完成任务流的调度。

在进行本发明申请的任务流调度的说明之前,首先明确几个与数据仓库
任务调度相关的基本概念。

任务:一个任务是一个在特定环境下运行的一个程序或命令,也称为作
业。一个任务有很多描述其调度和执行需求的属性。任务调度系统利用任务
的属性和系统的资源信息以及调度策略,决定何时何地如何运行一个任务,
在一个实际数据仓库系统中,一个任务可以是一个数据集的抽取程序或一个
报表的生成程序等。

任务调度:就是按照一定的策略将任务按照他们之间的依赖关系先后调
度执行的过程。

任务依赖:描述了在一个任务流中任务执行的顺序,一个任务T1依赖
于另一个任务T2达到某种状态或满足某种条件时,才能开始执行,称任务
T1依赖于T2,称T2为T1的前导任务上游任务。一个任务只有在它的所有
前导任务上游任务都运行结束之后才能开始执行。在数据仓库中,任务间的
依赖关系体现在,一个任务的前导任务上游任务的输出(数据集)是该任务
的输入。很多情况下,一个任务可能需要多个数据集作为输入。

如图1所示,一个任务的所有前导任务上游任务之间的关系是“与”关
系,即只有一个任务的所有前导任务上游任务都完成,它才可以开始执行。
在数据仓库环境下,任务流具有动态性,这体现在两个方面,一方面是随着
数据仓库系统中应用数量的改变,任务流中的任务数和任务的连接关系在动
态的改变;另一方面,任务流中各任务的估计执行时间在改变,这是因为随
着时间的推移,数据源不断有新数据到达,各个任务处理的数据量在动态的
变化,因而各个任务的执行时间在动态的变化。

任务调度问题的关键是如何找出数据仓库及其应用中任务之间的时序
关系,并按照一定的策略选择一批任务投入运行,使得所有任务的执行所占
CPU的时间尽可能短,并能够监视和控制任务的执行。

本发明申请衡量任务调度的指标是使得所有任务的总的周转时间尽可
能短,所谓一批任务的周转时间是指从他们开始运行到全部运行结束所经历
的时间。

根据图1中的任务流图中描述的任务间的时序关系,控制对任务的排
序,对任务进行合理分批,目标是使得系统的资源利用率尽可能提高。

本发明技术方案的思想是:由于所有待调度的任务是可以预先知道的,
因此调度执行也具有相对的稳定性;具体方法:在每一次调度任务时,寻找
任务流图中的叶子节点路径,将具有同一个叶子节点路径内部的任务进行拓
扑排序,一个叶子节点路径作为一个执行单位整体进行调度,排序在前的任
务先执行,排序在后的任务后执行。

图2为本发明实施例提供的一种数据仓库中任务的调度方法的流程图;
位于数据仓库调度系统中执行,当用户需要批量启动某一批任务节点时,数
据仓库调度系统根据用户的输入信息执行如图2所示的步骤:

201、接收用户输入的新建虚拟任务节点的操作;

具体地步骤201在实现时包括:

检测到用户点击新建虚拟任务节点的按钮,向用户展示待启动的任务节
点的任务流图和输入界面,所述任务流图中包括所述待启动的任务节点的所
有上游任务节点的标识和依赖关系。

202、接收用户输入的将所述新建的虚拟任务节点与所述批量启动的
某一批任务节点关联的操作;

基于步骤201中展示的任务流图和输入界面,步骤202在具体实现时:

检测到用户在所述输入界面中输入所述待启动的任务节点的若干上游
根任务节点的标识,建立所述新建的虚拟任务节点与所述待启动的任务节点
的若干上游根任务节点的关联关系。

203、当所述新建的虚拟任务节点启动后,所述数据仓库调度系统从
所述新建的虚拟任务节点开始至所述批量启动的某一批任务节点的叶子
节点路径上各任务节点的执行顺序调度各任务节点执行任务;

具体地步骤203在实现时包括:

检测到用户点击所述新建的虚拟任务节点的启动按钮,将与所述新建的
虚拟任务节点关联的若干上游根任务节点作为一个执行单位,创建一个任务
执行进程进行整体调度;

分别确定所述若干上游根任务节点到所述待启动的任务节点的叶子
节点路径;

根据每个叶子节点路径上各上游任务节点的执行顺序调度各上游任
务节点执行任务。

204、当各任务节点执行完任务后,输出所述批量启动的某一批任务
节点的执行结果给用户;

具体地步骤204在实现时包括:

当每个叶子节点路径上任务节点的任务执行完毕之后,将每个叶子节点路
径的任务执行结果输出给所述待启动的任务节点进行任务执行,并将所述待
启动的任务节点的任务执行结果给用户,即为所述批量启动的某一批任务
节点的执行结果。

本发明实施例中,当用户需要批量启动某一批任务节点时,可以向用户
展示该某一批任务节点的任务流图,以便用户新建虚拟任务节点并关联所述
批量启动的某一批任务节点,当用户启动该新建虚拟任务节点,即可将所
述批量启动的某一批任务节点进行整体调度,并从所述新建的虚拟任务节
点至所述批量启动的某一批任务节点的叶子节点路径上各任务节点的执
行顺序调度各任务节点执行任务,当所有任务节点执行完任务后,输出所
述批量启动的某一批任务节点的执行结果给用户。本发明的技术方案使得
所有任务节点的总执行时间得到了尽可能的短,提升任务调度的效率,也使
得系统的资源利用率尽可能提高。

图3为本发明实施例提供的一种数据仓库中任务的调度方法的流程图;
位于数据仓库调度系统中执行,如图3所示,包括:

301、检测到客户端发送的创建虚拟任务节点的操作请求;

其中,所述创建虚拟任务节点的操作请求中包括待启动的任务节点的标
识和与所述待启动的任务节点具有依赖关系的所有上游任务节点的标识;

在实际应用中,举例来说,当需要启动某一任务节点的时候,用户通过
客户端点击虚拟节点添加按钮即可触发创建虚拟任务节点的操作请求,此
时,客户端弹出一个对话框,用户可以在客户端弹出的对话框中添加关联节
点的信息,其中,关联节点是与待启动的任务节点具有依赖关系的所有上游
任务节点。当用户在对话框中添加关联节点的信息(上游任务节点的标识)
之后向任务调度系统发送创建虚拟任务节点的操作请求。

需要说明的是,本实施例中,上述关联节点的信息(上游任务节点的标
识)的获取方式例如包括:

根据所述待启动的任务节点的标识,获取所述待启动的任务节点的任务
配置信息;

根据所述任务配置信息中包括的依赖关系信息,确定与所述待启动的任
务节点具有依赖关系的所有上游任务节点的标识。

302、根据与所述待启动的任务节点具有依赖关系的所有上游任务节点
的标识,将所述虚拟任务节点与所有上游任务节点进行关联操作;

步骤302具体实现时例如包括:

根据与所述待启动的任务节点具有依赖关系的所有上游任务节点的标
识,获取每个上游任务节点的任务配置信息;

根据每个上游任务节点的任务配置信息中包括的任务执行顺序信息,确
定每个上游任务节点的任务执行顺序;

在所述虚拟任务节点中标记每个上游任务节点的任务执行顺序,对所有
上游任务节点进行拓扑排序,得到所有上游任务节点的拓扑序列。

303、启动所述虚拟任务节点,执行所述虚拟任务节点关联的所有上游
任务节点的任务;

步骤303具体实现时例如包括:

将所有上游任务节点所述任务子集对应的拓扑序列作为一个执行单位,
创建一个任务执行进程进行整体调度,并根据拓扑序列中的任务执行顺序执
行对应的任务。

304、在所有上游任务节点执行完任务后输出给所述待启动的任务节点
执行任务并输出执行结果。

需要说明的是,上述任务节点的任务配置信息的获取方式例如包括:

通过存储有任务及其任务配置信息的任务元数据管理器提供的应用程
序接口获取任务节点对应的任务配置信息;或者

通过预设的任务列表中获取任务节点对应的任务配置信息;或者

通过客户端提供的新增任务的应用程序接口,获取任务节点对应的任务
配置信息。

本发明实施例根据待启动任务节点对应的任务配置信息,确定与其存在
任务依赖关系的所有上游任务节点;在所有上游任务节点之前添加虚拟任务
节点,将该虚拟任务节点和所有上游任务节点进行关联,之后,启动虚拟任
务节点,将所有上游任务节点整体调度,按执行顺序执行每一个任务;由于
本发明实施例在每一次调度任务时,寻找该任务的叶子节点路径,将具有同
一个叶子节点路径内部的任务进行拓扑排序,一个叶子节点路径作为一个执
行单位整体进行调度,排序在前的任务先执行,排序在后的任务后执行,使
得所有任务集的总的执行时间得到了尽可能的短,因此可以提升任务调度的
效率,也使得系统的资源利用率尽可能提高。

下面通过具体的实现方式对本发明所述的技术方案进行详细的说明。

图4为本发明实施例采用的一种数据仓库调度系统的架构图,如图4所
示,数据仓库管理员通过任务登记器登记每个任务的编号和存放的物理路径
等任务配置信息,这些任务配置信息存放在元数据管理器中,任务登记器根
据这些任务配置信息,对任务的源码进行扫描,得到每个任务的输入数据集
和输出数据集,扫描结束,启动任务流生成器,任务流生成器根据任务登记
器提供的信息,得到每个任务的上游任务和后继任务,生成该数据仓库系统
中任务集的任务流图,假设生成的任务流图如图1所示。

基于图4数据仓库系统生成的如图1所示的任务流图,例如可以采集
Static Schedule的任务调度算法,图5为本发明实施例提供的一种数据仓
库中任务的调度方法的流程图,假设需要回溯任务节点Z的任务,如图5所
示,具体方法包括:

401、用户点击新建虚拟任务节点的按钮;

402、向用户展示待启动的任务节点Z的任务流程图和输入界面;

根据展示的任务流图,找出与任务节点Z具有依赖关系的所有上游任务
节点;

如图1所示的任务流图,例如,有编号分别为A、B、C、D、E、F、G、
H、I、J、K、L、M、N、O、Z共15个任务节点,它们之间的依赖关系如图1
所示,其中,任务节点A/B/C/D/K/E/F/G/H/I/J是任务节点Z所有的上游任
务节点,其中,任务节点A/B/C/D/K为任务节点Z的上游根任务节点。

403、用户在输入界面中输入任务节点Z的上游根任务节点。

即用户在输入界面中输入的任务节点A/B/C/D/K。

404、创建虚拟任务节点V,将虚拟任务节点V与任务节点A/B/C/D/K
进行关联。

图6本发明实施例新增虚拟任务后的任务流图,如图6所示,具体地,
在任务节点Z的所有上游根任务节点A/B/C/D/K之前创建虚拟任务节点V,
并标记虚拟任务节点V与任务节点A/B/C/D/K关联。

虚拟任务节点V也是数据仓库的任务节点,但是虚拟任务节点V不承担
任何计算逻辑,只标记任务节点之间运行的依赖关系。虚拟任务节点作为实
际任务节点的上游任务节点,实际任务节点都依赖于该虚拟任务节点。

405、用户点击启动虚拟任务节点V的按钮。

406、整体调度与虚拟任务节点V关联的任务节点A/B/C/D/K。

407、确定从任务节点A/B/C/D/K到任务节点Z的所有叶子节点路径。

如图6所示,从任务节点A/B/C/D/K到任务节点Z之间总共有7个叶子
节点路径。

408、根据每个叶子节点路径中各任务节点的执行顺序执行任务。

具体地,对任务节点Z的每个叶子节点路径中的各上游任务节点进行拓
扑排序,得到对应的拓扑序列,根据对应的拓扑序列,运行的顺序会自动按
照拓扑序列中的依赖关系依次运行下去。

409、将每个叶子节点路径的任务执行结果输出给任务节点Z进行任务
执行。

410、向用户输出任务节点Z的任务执行结果。

本发明实施例根据待启动的任务节点Z,创建虚拟任务节点,该创建的
虚拟任务节点可以关联任务节点Z的所有上游根任务节点,从而启动虚拟任
务节点整体调度上游根任务节点,并按照该创建的虚拟任务节点到任务节点
Z之间的各叶子节点路径中各上游任务节点之间的依赖关系以及时序关系,
对任务进行科学合理的分批和排序,使得所有任务集的总的执行时间得到了
尽可能的短,因此可以提升任务调度的效率,也使得系统的资源利用率尽可
能提高;同时,本发明只基于任务流图的连通性和拓扑结构进行调度执行,
调度简单,执行的拓扑序列在执行前便已经确定,不需要修改任务列表,调
度开销小。

图7为本发明实施例提供的一种数据仓库中任务的调度装置的结构图,
位于数据仓库调度系统中,当用户需要批量启动某一批任务节点时,数据
仓库调度系统如图7所示包括:

接收模块71,用于接收用户输入的新建虚拟任务节点的操作;

所述接收模块71,还用于接收用户输入的将所述新建的虚拟任务节点
与所述批量启动的某一批任务节点关联的操作;

调度模块72,用于当所述新建的虚拟任务节点启动后,所述数据仓库
调度系统从所述新建的虚拟任务节点开始,根据所述批量启动的某一批任
务节点的叶子节点路径上各任务节点的执行顺序调度各任务节点执行任
务;

输出模块73,用于当各任务节点执行完任务后,输出所述批量启动的
某一批任务节点的执行结果给用户。

其中,所述的装置还包括:

展示模块74,用于在检测到用户点击新建虚拟任务节点的按钮,向用
户展示待启动的任务节点的任务流图和输入界面,所述任务流图中包括所
述待启动的任务节点的所有上游任务节点的标识和依赖关系。

关联模块75具体用于:在检测到用户在所述输入界面中输入所述待启
动的任务节点的若干上游根任务节点的标识,建立所述新建的虚拟任务节
点与所述待启动的任务节点的若干上游根任务节点的关联关系。

启动模块76具体用于:

检测到用户点击所述新建的虚拟任务节点的启动按钮,将与所述新建
的虚拟任务节点关联的若干上游根任务节点作为一个执行单位,创建一个
任务执行进程进行整体调度。

调度模块72具体用于:

分别确定所述若干上游根任务节点到所述待启动的任务节点的叶子
节点路径;根据每个叶子节点路径上各上游任务节点的执行顺序调度各上
游任务节点执行任务;当每个叶子节点路径上任务节点的任务执行完毕之
后,将每个叶子节点路径的任务执行结果输出给所述待启动的任务节点进行
任务执行。

图7所示装置可以执行图2、图3和图5所示实施例所述的调度方法,
其实现原理和技术效果不再赘述。

上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理
解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,
而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,
通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改
动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护
范围内。

一种数据仓库中任务的调度方法、装置.pdf_第1页
第1页 / 共16页
一种数据仓库中任务的调度方法、装置.pdf_第2页
第2页 / 共16页
一种数据仓库中任务的调度方法、装置.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《一种数据仓库中任务的调度方法、装置.pdf》由会员分享,可在线阅读,更多相关《一种数据仓库中任务的调度方法、装置.pdf(16页珍藏版)》请在专利查询网上搜索。

本申请公开了一种数据仓库中任务的调度方法、装置,当用户需要批量启动某一批任务节点时,数据仓库调度系统根据用户的输入信息执行如下步骤:接收用户输入的新建虚拟任务节点的操作;接收用户输入的将所述新建的虚拟任务节点与所述批量启动的某一批任务节点关联的操作;当所述新建的虚拟任务节点启动后,所述数据仓库调度系统从所述新建的虚拟任务节点开始至所述批量启动的某一批任务节点的叶子节点路径上各任务节点的执行顺序调度。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1