一种数据仓库的任务调度方法及装置制造方法

文档序号:6487847阅读:241来源:国知局
一种数据仓库的任务调度方法及装置制造方法
【专利摘要】本申请公开了一种数据仓库的任务调度方法,应用于数据仓库进行任务调度,首先为每种任务设置调度类型,然后读取任务,提取任务的调度类型,按照任务的调度类型,选择任务执行的触发方式,最后根据触发方式,触发执行任务。同时还公开了一种数据数仓的任务调度装置,包括调度类型设置模块,调度扫描模块和任务执行模块,通过为每个任务设置调度类型,并按照调度类型选择不同的触发方法进行处理,可以灵活的根据用户的需求来处置任务,并能够有效降低资源的急剧消耗带来宕机的风险,提高用户的满意度。
【专利说明】一种数据仓库的任务调度方法及装置
【技术领域】
[0001]本申请涉及数据库【技术领域】,尤其涉及数据仓库的任务调度方法及装置。
【背景技术】
[0002]随着90年代后期Internet的兴起与飞速发展,我们进入了一个新的时代,大量的信息和数据,迎面而来,用科学的方法去整理数据,从而从不同视角对企业经营各方面信息的精确分析、准确判断,比以往更为迫切。数据仓库(Data Warehouse)的概念应运而生,数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合。随着企业信息化程度的不断提高,企业内部积累了大量的业务数据,数据仓库用于对这些相互独立、分散的数据进行统一的处理,以满足企业高层决策与分析需要。随着数据仓库系统带来的良好效果,各行各业的单位,已经能很好的接受“整合数据,从数据中找知识,运用数据知识、用数据说话”等新的关系到改良生产活动各环节、提高生产效率、发展生产力的理念。
[0003]任务在数据仓库的概念中就是最小处理数据动作的一种技术实现,在一个数据仓库中,数据的处理都是由成千上万的各种处理任务完成。在当前流行的数据仓库平台中,任务调度一般都实现了根据任务依赖关系,进行任务并发调度,并可以设置任务运行的并发度及任务的优先级,优先级越高,任务会优先触发执行。但在一些实际使用场景中,仍然存在种种问题,例如:由于数据平台运算资源不够,发生整个平台宕掉;任务的触发时间和完成时间没有达到业务方的需求等等。
[0004]特别地,在传统的任务调度方法中,首先进行触发时间判断,触发时间判断为判断读取到的可用任务是否满足时间触发条件,只有当读取到可用任务时的时间大于设置的触发时间,才继续往下判断,否则终止判断,退出,并进行下一个等待任务的触发判断;然后进行并发数判断,每类任务类型都设有可运行的最大并发数,当读取到的任务相应的任务类型正在运行的并发数小于等于设置的最大并发数时,那么触发执行该任务,否则终止,退出,并进行下一个等待任务的触发判断。
[0005]可见在传统的任务调度方法中可以设置任务的触发时间和通过设置任务类型的最大并发数做到资源的控制,但实际使用过程中,并不准确,也做不到很好的控制,主要原因为,调度本身并不能准确的知道被触发执行的任务到底使用了多少资源,需要运行多少时间,也许少量几个任务就能把机器运算资源使用光,导致运算资源不足,延误运算时间,甚至运算平台岩掉。
[0006]因此现有的任务调度方法没办法真实的解决资源使用/时间控制的问题,到最后经常发生运算平台负载过重甚至宕机的现象,而且任务的运算时间也难以把握,导致很多时候满足不了业务方的时间需求。

【发明内容】

[0007]本申请的目的是在传统调度方法的基础上,根据任务的调度类型来调度任务,避免由于数据平台运算资源不够,发生整个平台宕掉,或者任务的触发时间和完成时间没有达到业务方的需求。
[0008]一种数据仓库的任务调度方法,应用于数据仓库进行任务调度,所述数据仓库的任务均配置有调度类型,所述调度类型包括资源优先或时间优先,不同所述调度类型对应不同任务执行的触发方式,所述任务调度方法包括步骤:
[0009]读取任务,提取所述任务的调度类型,按照所述任务的调度类型,选择所述调度类型所对应的任务执行的触发方式;
[0010]以所述对应的任务执行的触发方式触发执行所述任务。
[0011]当所述的调度类型为资源优化时,以所述对应的任务执行的触发方式触发执行所述任务,包括步骤:
[0012]判断执行任务的运算资源平台的可用资源是否满足所述任务预计需要的任务资源,如果满足则进行下一步,否则返回去读取下一个任务;
[0013]触发执行所述任务;
[0014]收集所述任务实际使用资源信息。
[0015]进一步地,所述任务预计需要的任务资源是通过统计一定周期内每次运行时实际用到的资源情况,做平均值运算。
[0016]当所述调度类型为时间优先时,以所述对应的任务执行的触发方式触发执行所述任务,包括步骤:
[0017]判断读取到的任务是否满足时间触发条件,只有当读取到任务时的时间大于设置的触发时间,则进行下一步,否则返回到读取下一个任务;
[0018]触发执行所述任务。
[0019]本申请还提出了一种数据仓库的任务调度装置,应用于数据仓库进行任务调度,所述调度装置包括依次连接的调度类型设置模块,调度扫描模块和任务执行模块,其中:
[0020]所述调度类型设置模块,用于为每种任务设置调度类型,所述调度类型包括资源优先或时间优先,不同所述调度类型对应不同任务执行的触发方式;
[0021]所述调度扫描模块,用于读取任务,按照所述任务的调度类型,选择对应的任务执行的触发方式;
[0022]所述任务执行模块,用于根据所述的触发方式,触发执行所述的任务。
[0023]进一步地,所述任务执行模块还包括判断单元,用于在选择触发方式后,判断当前条件是否满足触发条件。
[0024]作为本申请的一种方式,所述任务执行模块还包括任务占用资源预估单元,用于收集所述任务实际使用资源信息,预估执行任务需要的任务资源。
[0025]作为本申请的另一种方式,所述任务执行模块还包括触发时间设置单元,用于设置任务的触发时间。
[0026]本申请的数据仓库的任务调度方法,让用户自己选择要满足的数据场景,如运算资源的稳定对整个平台比较重要,那么可以选择资源优先的调度策略,最大程度保障平台的稳定,如实现业务时间比较重要,那么可以选择时间优先的调度策略,最大程度保障任务执行时间接近业务要求的时间完成。本申请的数据仓库的任务调度装置,通过调度类型设置模块为任务设置调度类型,并根据调度类型选择触发方式,可以灵活的根据用户的需求来处置任务,并能够有效降低资源的急剧消耗带来宕机的风险,提高用户的满意度。【专利附图】

【附图说明】
[0027]图1为本申请数据仓库的任务调度方法的流程图;
[0028]图2为本申请资源优化触发方式下调度方法流程图;
[0029]图3为本申请时间优化触发方式下调度方法流程图;
[0030]图4为本申请数据仓库的任务调度装置结构示意图。
【具体实施方式】
[0031]下面结合附图和实施例对本申请技术方案做进一步详细说明,以下实施例不构成对本申请的限定。
[0032]本申请数据仓库任务调度方法流程图如图1所示,包括步骤:
[0033]步骤101、为每种任务配置调度类型。
[0034]具体地,每种任务都配置有调度类型,调度类型包括资源优先或时间优先,当然也可以根据其他主题来进行配置,本实施例仅以资源优先和时间优先来进行说明。用户在配置任务属性信息时,任务的调度类型作为一个属性信息配置进去,让用户自己选择需要保证的对象,如需要保证资源的可用性,选择配置调度类型为资源优先;需要保证业务时间的准时性,选择配置调度类型为时间优先。
[0035]需要说明的是,调度类型配置的方法不限于采用用户主动配置的方法,也可以由系统根据任务的种类采用该种类默认的调度类型来自动为任务设置调度类型。或者采用其他方式来确定任务的调度类型,如根据任务的优先级,或者根据任务的发起对象等。
[0036]步骤102、读取任务,按照任务的调度类型,选择任务执行的触发方式。
[0037]数据仓库通过调度扫描来读取任务,一般来说,读取的时候按照优先级读取处于等待运行的可用任务,等待运行的可用任务为符合依赖条件的处于等待运行的任务,也就是说当一个任务的父任务都是成功结束状态,那么该任务即为一个等待运行的可用任务。调度扫描读取一个等待运行的可用任务,读取的时候按照优先级读取,读取后首先提取该任务的调度类型,按照该任务的调度类型,选择任务执行的触发方式。
[0038]步骤103、按照所选择的触发方式,触发执行该任务。
[0039]需要说明的是,数据仓库为每种调度类型设置了各自对应的触发方式,每种触发方式又对应了不同的触发条件。调度扫描将按照每种任务设置的调度类型,选择任务执行的触发方式,如果是资源优先,则选择资源优先的触发方式,判断是否满足资源优先的触发条件,如果满足则执行,否则返回到步骤102去读取下一个任务;如果是时间优先,则选择时间优先的触发方式,判断是否满足时间优先的触发条件,如果满足则执行,否则返回到步骤102去读取下一个任务。
[0040]具体地,当当前任务的调度类型为资源优先时,本申请的按照所选择的触发方式,触发执行该任务的步骤如图2所示,还包括:
[0041]步骤201、判断可用资源是否满足当前任务预计需要的任务资源,如果满足则进行下一步,否则返回去读取下一个任务;
[0042]步骤202、触发执行任务;
[0043]步骤203、收集该任务实际使用资源信息。[0044]需要说明的是,在资源优先触发方式下,执行任务的运算资源平台的可用资源的计算,目前大部分运算平台都有比较成熟的计算方法,如开源的hadoop分布式平台,阿里巴巴的DataEngine分布式平台,都可以用程序实例化instance数来计算;传统数据库可以使用机器负载/内存使用数量来计算。本申请并不限于可用资源的计算采用哪种方法,这里不再赘述。
[0045]在资源优先触发方式下,等待运行任务的资源需求预估,本申请采用统计一定周期内(比如7天)每次运行该任务时实际用到的资源情况,做平均值运算。当待运行的是一个新任务时,可以预先设置一个资源需求预估值,也可以不设置,系统默认为0,等一次运行以后则根据历史数据来进行预估。需要说明的是,预估的周期可以自由设定,也可以采用其他资源需求预估的办法来进行资源需求预估,这里不再赘述。
[0046]具体地,当当前任务的调度类型为时间优先时,本申请的按照所选择的触发方式,触发执行该任务的步骤如图3所示,还包括:
[0047]步骤301、判断读取到的任务是否满足时间触发条件,只有当读取到任务时的时间大于设置的触发时间,则进行下一步,否则返回到读取下一个任务;
[0048]步骤302、执行任务。
[0049]需要说明的是,一般情况下,一些执行时间短平快的任务比较适合选择时间优先,而一些比较耗运算资源的任务适合选择资源优先。
[0050]本申请同时提出了一种数据仓库的任务调度装置,应用于数据仓库进行任务调度,如图4所示,包括依次相连的调度类型设置模块41,调度扫描模块42和任务执行模块43。
[0051]具体地,调度类型设置模块41用于为每种任务设置调度类型,为任务设置的调度类型包括资源优先或时间优先。当然也可以根据其他主题来进行设置不同的调度类型,本实施例仅以资源优先和时间优先来进行说明。
[0052]调度扫描模块42用于读取任务,一般来说,读取的时候按照优先级读取处于等待运行的可用任务,处于等待运行的可用任务为符合依赖条件的处于等待运行的任务,也就是说当一个任务的父任务都是成功结束状态,那么该任务即为一个等待运行的任务。调度扫描模块42读取一个等待运行的可用任务,读取的时候按照优先级读取,读取后首先提取该任务的调度类型,按照该任务的调度类型,选择任务执行的触发方式。
[0053]任务执行模块43用于接收调度扫描模块42传送的触发方式,触发执行调度扫描模块42读取的任务。
[0054]具体地,任务执行模块43还包括判断单元432,用于判断当前任务是否满足触发条件。当当前的任务是资源优先时,判断可用资源是否满足当前任务预计需要的任务资源,如果满足则执行,否则返回去读取下一个任务;当当前任务是时间优先时,判断触发时间是否满足当前任务,满足则执行任务,否则返回到读取下一个任务。
[0055]作为本申请的一个实施例,任务执行模块43还包括任务占用资源预估单元433,用于收集任务实际使用资源信息,预估执行任务需要的任务资源,并将预估的任务需要的任务资源信息提供给判断单元432,便于判断单元432作出判断。
[0056]作为本申请的另一个实施例,任务执行模块43还包括触发时间设置单元431,用于设置任务的触发时间,提供给判断单元432,便于判断单元432作出判断。[0057]以上实施例仅用以说明本申请的技术方案而非对其进行限制,在不背离本申请精神及其实质的情况下,熟悉本领域的技术人员当可根据本申请作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请所附的权利要求的保护范围。
【权利要求】
1.一种数据仓库的任务调度方法,应用于数据仓库进行任务调度,其特征在于,所述数据仓库的任务均配置有调度类型,所述调度类型包括资源优先或时间优先,不同所述调度类型对应不同任务执行的触发方式,所述任务调度方法包括步骤: 读取任务,提取所述任务的调度类型,按照所述任务的调度类型,选择所述调度类型所对应的任务执行的触发方式; 以所述对应的任务执行的触发方式触发执行所述任务。
2.如权利要求1所述的任务调度方法,其特征在于,当调度类型为资源优先时,以所述对应的任务执行的触发方式触发执行所述任务,包括步骤: 判断执行任务的运算资源平台的可用资源是否满足所述任务预计需要的任务资源,如果满足则进行下一步,否则返回去读取下一个任务; 触发执行所述任务; 收集所述任务实际使用资源信息。
3.如权利要求2所述的任务调度方法,其特征在于,所述任务预计需要的任务资源是通过统计一定周期内每次运行时实际用到的资源情况,做平均值运算。
4.如权利要求1所述的任务调度方法,其特征在于,当所述调度类型为时间优先时,以所述对应的任务执行的触发方式触发执行所述任务,,包括步骤: 判断读取到的任务是否满足时间触发条件,只有当读取到任务时的时间大于设置的触发时间,则进行下一步,否则返回到读取下一个任务; 触发执行所述任务。
5.一种数据仓库的任务调度装置,应用于数据仓库进行任务调度,其特征在于,所述调度装置包括依次连接的调度类型设置模块,调度扫描模块和任务执行模块,其中: 所述调度类型设置模块,用于为每种任务设置调度类型,所述调度类型包括资源优先或时间优先,不同所述调度类型对应不同任务执行的触发方式; 所述调度扫描模块,用于读取任务,按照所述任务的调度类型,选择对应的任务执行的触发方式; 所述任务执行模块,用于根据所述的触发方式,触发执行所述的任务。
6.如权利要求5所述的任务调度装置,其特征在于,所述任务执行模块还包括判断单元,用于在选择触发方式后,判断当前条件是否满足触发条件。
7.如权利要求6所述的任务调度装置,其特征在于,所述任务执行模块还包括任务占用资源预估单元,用于收集所述任务实际使用资源信息,预估执行任务需要的任务资源。
8.如权利要求6所述的任务调度装置,其特征在于,所述任务执行模块还包括触发时间设置单元,用于设置任务的触发时间。
【文档编号】G06F9/46GK103593232SQ201210289275
【公开日】2014年2月19日 申请日期:2012年8月15日 优先权日:2012年8月15日
【发明者】高继军 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1