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

技术编号:18860525 阅读:27 留言:0更新日期:2018-09-05 14:09
本发明专利技术实施例提供一种数据仓库的调度方法及装置。所述方法包括获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态;若判断获知任一待执行任务满足预设的执行条件,则获得对应的任务结果;根据待执行任务的任务ID获得对应的校验规则,并根据校验规则对任务结果进行校验;若校验通过,则将待执行任务的任务状态标记为成功状态;其中,成功状态用于判断待执行任务的下游任务是否满足预设的执行条件,本发明专利技术实施例通过对得到的任务结果进行校验来确保所述任务结果的可靠和正确性,从而提高了整个任务依赖列表中待执行任务的执行效率和准确率,节省了大量的校验时间。

A scheduling method and device for data warehouse

The embodiment of the invention provides a scheduling method and device for data warehouse. The method includes acquiring all the tasks to be executed in the current scheduling cycle and combining them into a dependency table according to their interdependencies, in which each task to be executed includes at least task ID and task status, and obtaining corresponding task results if it is judged that any task to be executed meets the preset execution conditions. According to the task ID of the task to be executed, the corresponding checking rules are obtained, and the result of the task is checked according to the checking rules; if the checking passes, the task state of the task to be executed is marked as a successful state; wherein the successful state is used to determine whether the downstream task of the task to be executed meets the preset execution conditions, and the invention provides a checking rule for the task result. The implementation ensures the reliability and correctness of the task results by checking the obtained task results, thereby improving the execution efficiency and accuracy of the tasks to be executed in the whole task dependency list, and saving a lot of checking time.

【技术实现步骤摘要】
一种数据仓库的调度方法及装置
本专利技术实施例涉及计算机
,尤其涉及一种数据仓库的调度方法及装置。
技术介绍
数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。它是面向主题、集成的、具有稳定性和时变性。在数据仓库的整个数据执行流程中,调度系统必不可缺。整个数据仓库包含4部分的内容,包含数据源,数据仓库,联机分析执行系统(OLAP,on-lineanalyticalprocessing)以及前端报表,数据挖掘,推荐等应用系统。在从数据源到数据仓库以及应用产出的整个数据流动过程中,调度系统作为一系统软件在数据仓库架构中占据重要地位。目前作业调度系统在各个公司都有应用,从最简单的Contab,Quartz单机定时调度程序到知名开源系统如Oozie,azkaban,zeus等都会存在,拥有大型数据团队的公司也会定制适合自己业务场景的调度系统。总体来讲,目前市面上的作业调度系统根据功能定位,主要分为两大类方向:定时分片类作业调度系统和数据库可用性组(DatabaseAvailabilityGroup,DAG)工作流类作业调度系统。这两类系统的架构和功能实现通常存在很大的差异,下面分别举例说明:1.Crontab:crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。crontab是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表,属于第一种基于定时分片类作业调度系统。2.Azkaban:Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪工作流,属于第二种DAG工作流类调度作业系统。但这两类作业调度系统各有不足,第一类定时触发的调度方法,在有依赖作业的情况下无法保证任务的执行先后顺序,无法对依赖关系作出判断,很容易造成任务数据的不可用。另一方面,如果存在大量任务在同一时间段内被调起,很容易造成机器资源紧张,对机器资源的分配无法优化。第二类DAG工作流类调度方法解决了第一类调度方法的某些不足,在执行大量调度任务时,通过任务间依赖形成DAG有向无环图,从而可以根据任务依赖顺序执行。大部分的此类调度系统,在判断一个任务的失败与成功都是基于任务是否正常执行完成为判断依据,但在实际应用中很多场景下,任务正常执行成功并不一定代表业务理解上的“成功”,即执行的结果质量无法保证,例如,执行一条插入数据SQL(结构化查询语言)语句,任务状态返回成功,但实际并未插入数据,这将对下游依赖任务的执行产生影响。如果这种情况发生在顶层依赖,将会对下游依赖的大批任务进行回刷,影响了任务的时效性,并对人力,集群资源也造成浪费。
技术实现思路
本专利技术实施例提供一种数据仓库的调度方法及装置,用以解决现有技术中任务的时效性差,并对人力,集群资源也造成浪费的问题。第一方面,本专利技术实施例提供了一种数据仓库的调度方法,包括:获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;若校验通过,则将所述待执行任务的任务状态标记为成功状态;其中,所述成功状态用于判断所述待执行任务的下游任务是否满足预设的执行条件。第二方面,本专利技术实施例提供了一种数据仓库的调度装置,包括:元数据管理模块,用于获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;任务执行管理模块,用于若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;数据质量校验模块,用于根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;所述数据质量校验模块,还用于若校验通过,则将所述待执行任务的任务状态标记为成功状态;其中,所述成功状态用于判断所述待执行任务的下游任务是否满足预设的执行条件。第三方面,本专利技术实施例还提供了一种电子设备,包括:执行器、存储器、通信接口和总线;其中,所述执行器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于该电子设备的通信设备之间的信息传输;所述存储器存储有可被所述执行器执行的程序指令,所述执行器调用所述程序指令能够执行如下方法:获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;若校验通过,则将所述待执行任务的任务状态标记为成功状态;其中,所述成功状态用于判断所述待执行任务的下游任务是否满足预设的执行条件。第四方面,本专利技术实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被执行器执行时实现如下方法:获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;若校验通过,则将所述待执行任务的任务状态标记为成功状态;其中,所述成功状态用于判断所述待执行任务的下游任务是否满足预设的执行条件。本专利技术实施例提供的数据仓库的调度方法及装置,通过对待执行任务执行后得到的任务结果进行校验来确保所述任务结果的可靠和正确性,从而提高了整个任务依赖列表中所有待执行任务的执行效率和准确率,节省了大量的校验时间。附图说明图1为本专利技术实施例的数据仓库的调度方法流程图;图2为本专利技术实施例的另一数据仓库的调度方法流程图;图3为本专利技术实施例的数据仓库的调度装置结构示意图;图4为本专利技术实施例的电子设备结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他本文档来自技高网
...

【技术保护点】
1.一种数据仓库的调度方法,其特征在于,包括:获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;若校验通过,则将所述待执行任务的任务状态标记为成功状态;其中,所述成功状态用于判断所述待执行任务的下游任务是否满足预设的执行条件。

【技术特征摘要】
1.一种数据仓库的调度方法,其特征在于,包括:获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;若校验通过,则将所述待执行任务的任务状态标记为成功状态;其中,所述成功状态用于判断所述待执行任务的下游任务是否满足预设的执行条件。2.根据权利要求1所述的方法,其特征在于,所述执行条件为所述待执行任务无所述前置任务或者所有前置任务的任务状态均变为成功状态;其中,所述前置任务为所述依赖关系表中所述待执行任务依赖的其它待执行任务。3.根据权利要求1所述的方法,其特征在于,所述根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;具体为:若所述待执行任务中包括校验标记,则根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:若校验失败,且与所述待执行任务对应的失败数量达到预设失败阈值,则将所述待执行任务的任务状态标记为校验失败状态。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:若无法获得所述待执行任务的任务结果,且与所述待执行任务相对应的执行次数达到预设的执行阈值,则将所述待执行任务的任务状态标记为执行失败状态。6.根据权利要求1所述的方法,其特征在于,所述若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;具体为:若判断获知任一待执行任务满足预设的执行条件,则将所述待执行任务存入待处理资源池;在所述待处理资源池中依据存入的时间先后顺序提取所述待执行任务进行处理,以获取所述待执行任务的任务结果。7.根据权利要求1所述的方法,其特征在于,所述获取当前调度周期内所有待执行任务,并根据相互...

【专利技术属性】
技术研发人员:崔金辉
申请(专利权)人:链家网北京科技有限公司
类型:发明
国别省市:北京,11

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

1