CN108491254A - 一种数据仓库的调度方法及装置 - Google Patents
一种数据仓库的调度方法及装置 Download PDFInfo
- Publication number
- CN108491254A CN108491254A CN201810124428.5A CN201810124428A CN108491254A CN 108491254 A CN108491254 A CN 108491254A CN 201810124428 A CN201810124428 A CN 201810124428A CN 108491254 A CN108491254 A CN 108491254A
- Authority
- CN
- China
- Prior art keywords
- task
- pending
- status
- pending task
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种数据仓库的调度方法及装置。所述方法包括获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态;若判断获知任一待执行任务满足预设的执行条件,则获得对应的任务结果;根据待执行任务的任务ID获得对应的校验规则,并根据校验规则对任务结果进行校验;若校验通过,则将待执行任务的任务状态标记为成功状态;其中,成功状态用于判断待执行任务的下游任务是否满足预设的执行条件,本发明实施例通过对得到的任务结果进行校验来确保所述任务结果的可靠和正确性,从而提高了整个任务依赖列表中待执行任务的执行效率和准确率,节省了大量的校验时间。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据仓库的调度方法及装置。
背景技术
数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。它是面向主题、集成的、具有稳定性和时变性。在数据仓库的整个数据执行流程中,调度系统必不可缺。整个数据仓库包含4部分的内容,包含数据源,数据仓库,联机分析执行系统(OLAP,on-line analyticalprocessing)以及前端报表,数据挖掘,推荐等应用系统。在从数据源到数据仓库以及应用产出的整个数据流动过程中,调度系统作为一系统软件在数据仓库架构中占据重要地位。
目前作业调度系统在各个公司都有应用,从最简单的Contab,Quartz单机定时调度程序到知名开源系统如Oozie,azkaban,zeus等都会存在,拥有大型数据团队的公司也会定制适合自己业务场景的调度系统。总体来讲,目前市面上的作业调度系统根据功能定位,主要分为两大类方向:定时分片类作业调度系统和数据库可用性组(DatabaseAvailability Group,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为本发明实施例的数据仓库的调度方法流程图,如图1所示,所述方法包括:
步骤S01、获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务。
在调度系统中存在大量需要周期性执行的待执行任务,这些待执行任务可以被保存在一个任务管理表中,然后根据执行周期的不同以及实际的需求,在每个执行周期开始时,就可以从任务管理表中将与该执行周期相关的所有待执行任务组合成一个启动列表。然后对该启动列表中的所有待执行任务进行初始化操作,赋予每个待执行任务一个任务ID用来唯一标识该待执行任务,并将所述待执行任务的任务状态标记为初始化,所述任务ID可以是每次新的执行周期初始化时产生的新的任务ID,也可以是与所述待执行任务产生时就确定的任务ID,在此不作具体限定。
将在启动列表中经过初始化操作后的待执行任务,根据获取到的所有待执行任务间依赖关系,将该执行周期内的所有待执行任务组合成一个依赖关系表,其中每个待执行任务依赖的其它待执行任务称为该待执行任务的前置任务,而该待执行任务为所述前置任务的下游任务。例如所述依赖关系表中包括任务A、任务B、任务C和任务D,其中所述任务C依赖任务A和任务B,所述任务D依赖于任务C,则所述任务A和任务B为所述任务C的前置任务,所述任务C为所述任务D的前置任务,所述任务C为所述任务A和任务B的下游任务,所述任务D为所述任务C的下游任务,即只有当所述前置任务任务A和任务B执行完成并得到相对应的任务结果后,所述下游任务任务C才能够被执行,而只有当任务C执行完成并得到相对应的任务结果后,所述任务D才能够被执行。
步骤S02、若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果。
在所述依赖关系表生成后,需要对所述依赖关系表中所有待执行任务的任务状态进行实时的监测,来判断所有的待执行任务是否满足预设的执行条件,若获知任一待执行任务满足执行条件,则执行该待执行任务以获得对应的任务结果。
进一步地,所述执行条件为所述待执行任务无所述前置任务或者所有前置任务的任务状态均变为成功状态;其中,所述前置任务为所述依赖关系表中所述待执行任务依赖的其它待执行任务。
在所述依赖关系表生成时,先提取出没有前置任务的待执行任务,也就是所述依赖关系表中位于表头,不需要依赖其它待执行任务的待执行任务,并执行这些没有前置任务的待执行任务。例如,若所述任务A和任务B不依赖于其它待执行任务,则先执行所述任务A和任务B,其中任务A和任务B的执行顺序可以根据两者的优先级的高低来区分或者随机排列。
在对待执行任务进行后续的执行过程中,随着所处的执行阶段的不同其任务状态也会发生变化,例如在对所述待执行任务完成执行并校验通过后,其任务状态会变为成功状态。在对所述依赖关系表进行实时监测过程中若监测到任一待执行任务的前置任务均变为成功状态,则判定可以执行该待执行任务。例如,若监测到所述任务C的前置任务任务A和任务B的任务状态均变为成功,则判定可以执行所述任务C。
对所述依赖关系表的构建和监测的过程的方法有很多,除了直接对依赖关系表中的所有待执行任务的任务状态进行实时监测外,还可以构建任务调度列表来进行实时监测,具体的实施过程如下:
在将与该执行周期相关的所有待执行任务组合成一个启动列表后,将该启动列表中的所有待执行任务存入到任务调度列表中并进行初始化操作,赋予每个待执行任务一个任务ID用来唯一标识该待执行任务,并将所述待执行任务的任务状态标记为初始化状态。
根据所述任务调度列表中所有待执行任务间依赖关系,形成一个依赖关系表,其中每个待执行任务依赖的其它待执行任务称为该待执行任务的前置任务,而该待执行任务为所述前置任务的下游任务。
在所述依赖关系表生成后,先提取出没有前置任务的待执行任务,并执行。在后续对所述待执行任务的执行过程中,若所述待执行任务的任务状态发生了变化,需要即时同步到所述调度列表中,并实时监测所述任务调度列表中所有待执行任务的任务状态变化。监测过程中若发现有待执行任务的任务状态变为成功,去检查所述依赖关系表中该待执行任务的下游任务是否满足执行条件,即若所述下游任务的所有前置任务的任务状态均变为成功,则将所述下游任务所对应的待执行任务可以被执行。
步骤S03、根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验。
虽然完成了所述待执行任务并得到了对应的任务结果,但如果任务结果是错误的,这样可能会造成其下游任务的任务结果错误,从而导致整个依赖关系表中大量的待执行任务的任务结果出错。为此,需要对得到的任务结果进行校验。
先要根据该待执行任务的任务ID获取相对应的校验规则。所述校验规则可以预存在一个存储空间中,例如规则管理器,所述规则管理器中存放所有的校验配置信息,可以包括校验脚本、校验类型、结果判断和程序路径待管理信息,并通过任务ID找到相对应的校验类型的校验器环境执行所需代码,即校验规则。通过校验规则对任务结果进行校验。
步骤S04、若校验通过,则将所述待执行任务的任务状态标记为成功状态;其中,所述成功状态用于判断所述待执行任务的下游任务是否满足预设的执行条件。
上述校验过程可以在数据校验器中进行,当数据校验通过后,可以将所述待执行任务的任务状态标记为成功状态,并判定所述待执行任务执行完成。
由于所述待执行任务的任务状态发生的变化,在依赖关系表中,该待执行任务的下游任务中,若所述下游任务的所有前置任务的任务状态均已变为成功状态,则可以执行该下游任务所对应的待执行任务。
本发明实施例通过对待执行任务执行后得到的任务结果进行校验来确保所述任务结果的可靠和正确性,从而提高了整个任务依赖列表中所有待执行任务的执行效率和准确率,节省了大量的校验时间。
图2为本发明实施例的另一数据仓库的调度方法流程图,如图2所示,所述步骤S03具体为:
步骤S031、若所述待执行任务中包括校验标记,则根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验。
虽然校验可以确保任务结果的正确性,但由于每个待执行任务的种类有很多,其得到的任务结果以及对于下游任务的影响也各不相同,所以为了节省校验的时间,提高系统任务调度的效率,并不需要对每一个待执行任务进行校验。
若待执行任务需要对任务结果进行校验,则可以预先在该待执行任务中加入校验标记。在获得所述待执行任务的任务结果后,需要先去查看所述待执行任务中是否存在校验标记。
若存在,则判定需要对该待执行任务的任务结果进行校验,然后再通过任务ID从规则管理器中得到相对应的校验规则,并对任务结果进行校验。
若没有找到校验标记,则可以判定无需对该任务结果进行校验,至此就可以直接将该待执行任务的任务状态标记为成功状态,并判定该待执行任务执行完成。
本发明实施例通过对待执行任务执行后得到的任务结果进行校验来确保所述任务结果的可靠和正确性,并在对需要进行校验的待执行任务中加入校验标记,节省了大量的校验时间,从而提高了整个任务依赖列表中所有待执行任务的执行效率和准确率,节省了大量的校验时间。
基于上述实施例,进一步地,所述方法还包括:
若校验失败,且与所述待执行任务对应的失败数量达到预设失败阈值,则将所述待执行任务的任务状态标记为校验失败状态。
在对得到的任务结果进行校验的过程中,若得到的校验结果为失败,则判定任务结果错误,需要重新执行对应的待执行任务,以得到新的任务结果。然后再对得到的新的任务结果再次用对应的校验规则进行校验,直到检验通过为止。
当然为了限制重复校验的次数,会预设一个失败阈值,例如3,并在每次校验失败后记录与所述待执行任务的任务ID相对应的失败数量。若失败数量达到失败阈值,同时将该待执行任务的任务状态标记为校验失败,同时判定该待执行任务执行完成。由于该待执行任务的任务状态标记为校验失败状态,所以可知在所述依赖关系表中该待执行任务的下游任务在本次执行周期内将无法被执行。
本发明实施例通过在需要进行校验的待执行任务中加入校验标记,对待执行任务执行后得到的任务结果进行校验来确保所述任务结果的可靠和正确性,从而提高了整个任务依赖列表中所有待执行任务的执行效率和准确率,节省了大量的校验时间。
基于上述实施例,进一步地,所述方法还包括:
若无法获得所述待执行任务的任务结果,且与所述待执行任务相对应的执行次数达到预设的执行阈值,则将所述待执行任务的任务状态标记为执行失败状态。
在执行待执行任务的过程中可能会因为各种原因导致执行失败,从而无法得到任务结果,此时可以将该待执行任务重新执行,并同时对执行次数进行记录。为了防止重复执行的次数过多导致整个调度系统的任务阻塞,可以预先设置执行阈值,当执行次数达到所述执行阈值且依然没有得到任务结果时,则将所述待执行任务的任务状态标记为执行失败状态,且判定所述待执行任务执行完成。可知在所述依赖关系表中该待执行任务的下游任务在本次执行周期内也将无法被执行。
本发明实施例通过设置执行阈值,从而在对待执行任务的执行过程对多次无法得到任务结果后,将任务状态标记为执行失败状态,从而提高了整个任务依赖列表中所有待执行任务的执行效率,节省了大量的校验时间。
基于上述实施例,进一步地,所述步骤S02,具体为:
若判断获知任一待执行任务满足预设的执行条件,则将所述待执行任务存入待处理资源池;
在所述待处理资源池中依据存入的时间先后顺序提取所述待执行任务进行处理,以获取所述待执行任务的任务结果。
对于待执行任务的执行过程可以有很多种方法,本实施例也仅给出了其中的一种举例。
在形成所述依赖关系表后,若判断任一待执行任务满足执行条件,则将所述待执行任务存入到待执行资源池中。若存在空闲的资源或者线程,对于存入到所述待执行资源池中的待执行任务,会根据存入的先后顺序,依次提取其中的所述待执行任务,然后在指定的机器上启动计算计划,即创建任务执行单元来对所述待执行任务进行执行,从而得到所述待执行任务的任务结果。其中所述待执行资源池中的内存空间可以为一个环形队列,即在保存时依次循环存入空闲的内存空间,提取时也依次循环提取。
所述任务执行单元在得到任务结果后并不会马上释放资源去执行下一个待执行任务,而是根据所述待执行任务的任务状态,在判定该待执行任务执行完成后,才可以释放资源,即所述待执行任务的任务状态为成功状态、校验失败状态或者执行失败状态等情况时。
当所述资源被翻放后就可以再从所述待执行资源池中提取下一个待执行任务来执行,直到所述待执行资源池为空。
本发明实施例,通过将满足执行条件的待执行任务存入待执行资源池中再根据空闲资源的数量来依次执行所述待执行资源池中的待执行任务,直到所述待执行资源池为空,从而提高了整个任务依赖列表中所有待执行任务的执行效率,节省了大量的校验时间。
基于上述实施例,进一步地,所述步骤S01-S03具体为:
获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,所述任务状态标记为初始化状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;
若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果,并将对应的任务状态标记为计算成功状态;
根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验,且将所述待执行任务的任务状态标记为校验中状态。
调度系统在对每个待执行任务进行执行的过程中,为了方便对每个待执行任务的监控,可以将其中的各个阶段命名相对应的任务状态。具体的全名规则可以根据实际的需要来设置,本发明实施例仅是其中的一种举例。
在调度系统中存在大量需要周期性执行的待执行任务,这些待执行任务可以被保存在一个任务管理表中,然后根据执行周期的不同以及实际的需求,在每个执行周期开始时,就可以从任务管理表中将与该执行周期相关的所有待执行任务组合成一个启动列表。然后对该启动列表中的所有待执行任务进行初始化操作,赋予每个待执行任务一个任务ID用来唯一标识该待执行任务,并将所述待执行任务的任务状态标记为初始化状态。
根据获取到的所有待执行任务间依赖关系,将该执行周期内的所有待执行任务组合成一个依赖关系表,其中每个待执行任务依赖的其它待执行任务称为该待执行任务的前置任务,而该待执行任务为所述前置任务的下游任务。
在所述依赖关系表生成后,需要对所述依赖关系表中所有待执行任务的任务状态进行实时的监测。先提取出没有前置任务的待执行任务,并存入待执行资源池中,并将对应的任务状态标记为等待状态。
然后在实时监测过程中若发现任一待执行任务的任务状态发生了变化,则监测是否存在待执行任务的所有前置任务的任务状态均变为成功。若均变为成功,则将所述待执行任务存入所述待执行资源池,并将相对应的任务状态标记为等待状态。
若存在空闲的资源或者线程,对于存入到所述待执行资源池中的待执行任务,会根据存入的先后顺序,依次提取其中的所述待执行任务,然后在指定的机器上启动计算计划,即创建任务执行单元来对所述待执行任务进行执行,同时将相对应的任务状态标记为执行中。在得到所述待执行任务的任务结果后,再将相对应的任务状态标记为计算成功状态。
然后根据该待执行任务的任务ID在预存的规则管理器中找到相对应的校验规则,然后通过校验规则对任务结果进行校验,并同时将相对应的任务状态标记为校验中状态。
本发明实施例通过在对待执行任务执行的过程中通过任务状态进行监控,再对待执行任务执行后得到的任务结果进行校验来确保所述任务结果的可靠和正确性,从而提高了整个任务依赖列表中所有待执行任务的执行效率和准确率,节省了大量的校验时间。
图3为本发明实施例的数据仓库的调度装置结构示意图,如图3所示,所述装置至少包括:元数据管理模块10、任务执行管理模块11和数据质量校验模块12,其中:
所述元数据管理模块10用于获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;所述任务执行管理模块11用于若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;所述数据质量校验模块12用于根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;所述数据质量校验模块12还用于若校验通过,则将所述待执行任务的任务状态标记为成功状态;其中,所述成功状态用于判断所述待执行任务的下游任务是否满足预设的执行条件。具体为:
在所述元数据管理模块10中存在大量需要周期性执行的待执行任务,这些待执行任务可以被保存在一个任务管理表中,然后根据执行周期的不同以及实际的需求,在每个执行周期开始时,就可以从任务管理表中将与该执行周期相关的所有待执行任务组合成一个启动列表。然后对该启动列表中的所有待执行任务进行初始化操作,赋予每个待执行任务一个任务ID用来唯一标识该待执行任务,并将所述待执行任务的任务状态标记为初始化状态。
所述元数据管理模块10根据获取到的所有待执行任务间依赖关系,将该执行周期内的所有待执行任务组合成一个依赖关系表,其中每个待执行任务依赖的其它待执行任务称为该待执行任务的前置任务,而该待执行任务为所述前置任务的下游任务。
在所述依赖关系表生成后,所述元数据管理模块10需要对所述依赖关系表中所有待执行任务的任务状态进行实时的监测。先提取出没有前置任务的待执行任务,并发送给所述任务执行管理模块11来执行。
所述元数据管理模块10在实时监测过程中若发现有待执行任务的任务状态变为成功状态,则监测其下游任务的所有前置任务的任务状态均变为成功。若均为成功,则将所述下游任务发送给所述任务执行管理模块11进行执行。
所述任务执行管理模块11若存在空闲的资源或者线程,则执行从所述无数据管理模块10发送的待执行任务,并得到对应的任务结果,然后将所述任务结果和相对应的任务ID发送给所述数据质量校验模块12。
所述数据质量校验模块12先要根据该待执行任务的任务ID在预存的规则管理器中找到相对应的校验规则,并通过校验规则对任务结果进行校验。
上述校验过程可以在数据校验器中进行,当数据校验成功后,可以将所述待执行任务的任务状态标记为成功状态并将该任务状态发送给任务执行管理模块11和所述元数据管理模块10。所述任务执行管理模块11判定所述待执行任务执行完成,并将用于执行该待执行任务的资源释放,被释放的资源又可以执行下一个待执行任务。
由于所述待执行任务的任务状态发生的变化,所述元数据模块10会查看在依赖关系表中,该待执行任务的下游任务中,若所述下游任务的所有前置任务的任务状态均已变为成功状态,则可以执行该下游任务所对应的待执行任务
本发明实施例提供的装置用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。
本发明实施例通过对待执行任务执行后得到的任务结果进行校验来确保所述任务结果的可靠和正确性,从而提高了整个任务依赖列表中所有待执行任务的执行效率和准确率,节省了大量的校验时间。
图4为本发明实施例的电子设备结构示意图。如图4所示,所述电子设备,包括:执行器(processor)601、存储器(memory)602和总线603;
其中,所述执行器601和所述存储器602通过所述总线603完成相互间的通信;
所述执行器601用于调用所述存储器602中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;若校验通过,则将所述待执行任务的任务状态标记为成功状态;其中,所述成功状态用于判断所述待执行任务的下游任务是否满足预设的执行条件。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;若校验通过,则将所述待执行任务的任务状态标记为成功状态;其中,所述成功状态用于判断所述待执行任务的下游任务是否满足预设的执行条件。
进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;若校验通过,则将所述待执行任务的任务状态标记为成功状态;其中,所述成功状态用于判断所述待执行任务的下游任务是否满足预设的执行条件。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据仓库的调度方法,其特征在于,包括:
获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;
若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;
根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;
若校验通过,则将所述待执行任务的任务状态标记为成功状态;其中,所述成功状态用于判断所述待执行任务的下游任务是否满足预设的执行条件。
2.根据权利要求1所述的方法,其特征在于,所述执行条件为所述待执行任务无所述前置任务或者所有前置任务的任务状态均变为成功状态;其中,所述前置任务为所述依赖关系表中所述待执行任务依赖的其它待执行任务。
3.根据权利要求1所述的方法,其特征在于,所述根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;具体为:
若所述待执行任务中包括校验标记,则根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若校验失败,且与所述待执行任务对应的失败数量达到预设失败阈值,则将所述待执行任务的任务状态标记为校验失败状态。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若无法获得所述待执行任务的任务结果,且与所述待执行任务相对应的执行次数达到预设的执行阈值,则将所述待执行任务的任务状态标记为执行失败状态。
6.根据权利要求1所述的方法,其特征在于,所述若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;具体为:
若判断获知任一待执行任务满足预设的执行条件,则将所述待执行任务存入待处理资源池;
在所述待处理资源池中依据存入的时间先后顺序提取所述待执行任务进行处理,以获取所述待执行任务的任务结果。
7.根据权利要求1所述的方法,其特征在于,所述获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;具体为:
获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,所述任务状态标记为初始化状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;
若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果,并将对应的任务状态标记为计算成功状态;
根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验,且将所述待执行任务的任务状态标记为校验中状态。
8.一种数据仓库的调度装置,其特征在于,包括:
元数据管理模块,用于获取当前调度周期内所有待执行任务,并根据相互间的依赖关系,组合成依赖关系表;其中,每个待执行任务至少包括任务ID和任务状态,且依赖于任一待执行任务的其它待执行任务称为所述任一待执行任务的下游任务;
任务执行管理模块,用于若判断获知任一待执行任务满足预设的执行条件,则获得所述待执行任务对应的任务结果;
数据质量校验模块,用于根据所述待执行任务的任务ID获得对应的校验规则,并根据所述校验规则对所述任务结果进行校验;
所述数据质量校验模块,还用于若校验通过,则将所述待执行任务的任务状态标记为成功状态;其中,所述成功状态用于判断所述待执行任务的下游任务是否满足预设的执行条件。
9.一种电子设备,其特征在于,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810124428.5A CN108491254A (zh) | 2018-02-07 | 2018-02-07 | 一种数据仓库的调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810124428.5A CN108491254A (zh) | 2018-02-07 | 2018-02-07 | 一种数据仓库的调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108491254A true CN108491254A (zh) | 2018-09-04 |
Family
ID=63344760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810124428.5A Pending CN108491254A (zh) | 2018-02-07 | 2018-02-07 | 一种数据仓库的调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108491254A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542616A (zh) * | 2018-10-26 | 2019-03-29 | 深圳点猫科技有限公司 | 一种教育系统的多节点间数据计算的调度方法及电子设备 |
CN110109740A (zh) * | 2019-05-08 | 2019-08-09 | 宜人恒业科技发展(北京)有限公司 | 一种Crontab命令的执行方法及装置 |
CN110688211A (zh) * | 2019-09-24 | 2020-01-14 | 四川新网银行股份有限公司 | 一种分布式作业调度方法 |
CN111475275A (zh) * | 2020-05-19 | 2020-07-31 | 北京爱笔科技有限公司 | 一种调度方法及调度服务器 |
CN111815200A (zh) * | 2020-07-31 | 2020-10-23 | 深圳壹账通智能科技有限公司 | 任务调度方法及装置、计算机设备、存储介质 |
CN112507171A (zh) * | 2020-12-03 | 2021-03-16 | 深圳市易平方网络科技有限公司 | 一种任务调度方法、智能终端及存储介质 |
CN112667383A (zh) * | 2020-12-31 | 2021-04-16 | 北京高途云集教育科技有限公司 | 一种任务执行及调度方法、系统、装置、计算设备及介质 |
CN113238838A (zh) * | 2021-04-22 | 2021-08-10 | 中国银联股份有限公司 | 一种任务调度方法、装置及计算机可读存储介质 |
CN113312164A (zh) * | 2021-07-28 | 2021-08-27 | 浙江九州云信息科技有限公司 | 一种适用于云计算系统的资源数据读取方法 |
CN116627958A (zh) * | 2023-07-21 | 2023-08-22 | 中邮消费金融有限公司 | 大数据质量校验方法、装置、设备及存储介质 |
CN116882716A (zh) * | 2023-09-08 | 2023-10-13 | 长城证券股份有限公司 | 任务调度方法、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1992021182A1 (en) * | 1991-05-23 | 1992-11-26 | Telefonaktiebolaget Lm Ericsson | Reconfiguration of a cellular communications network |
CN104199979A (zh) * | 2014-09-24 | 2014-12-10 | 国云科技股份有限公司 | 一种模型化的数据源管理系统及其方法 |
CN104462243A (zh) * | 2014-11-19 | 2015-03-25 | 上海烟草集团有限责任公司 | 一种结合数据校验的etl调度系统及方法 |
CN106329730A (zh) * | 2016-09-14 | 2017-01-11 | 国网江苏省电力公司连云港供电公司 | 基于智能电网调度系统的变站监控信息自动验收系统 |
-
2018
- 2018-02-07 CN CN201810124428.5A patent/CN108491254A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1992021182A1 (en) * | 1991-05-23 | 1992-11-26 | Telefonaktiebolaget Lm Ericsson | Reconfiguration of a cellular communications network |
CN104199979A (zh) * | 2014-09-24 | 2014-12-10 | 国云科技股份有限公司 | 一种模型化的数据源管理系统及其方法 |
CN104462243A (zh) * | 2014-11-19 | 2015-03-25 | 上海烟草集团有限责任公司 | 一种结合数据校验的etl调度系统及方法 |
CN106329730A (zh) * | 2016-09-14 | 2017-01-11 | 国网江苏省电力公司连云港供电公司 | 基于智能电网调度系统的变站监控信息自动验收系统 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542616A (zh) * | 2018-10-26 | 2019-03-29 | 深圳点猫科技有限公司 | 一种教育系统的多节点间数据计算的调度方法及电子设备 |
CN110109740B (zh) * | 2019-05-08 | 2021-08-10 | 宜人恒业科技发展(北京)有限公司 | 一种Crontab命令的执行方法及装置 |
CN110109740A (zh) * | 2019-05-08 | 2019-08-09 | 宜人恒业科技发展(北京)有限公司 | 一种Crontab命令的执行方法及装置 |
CN110688211A (zh) * | 2019-09-24 | 2020-01-14 | 四川新网银行股份有限公司 | 一种分布式作业调度方法 |
CN110688211B (zh) * | 2019-09-24 | 2023-06-06 | 四川新网银行股份有限公司 | 一种分布式作业调度方法 |
CN111475275A (zh) * | 2020-05-19 | 2020-07-31 | 北京爱笔科技有限公司 | 一种调度方法及调度服务器 |
CN111815200A (zh) * | 2020-07-31 | 2020-10-23 | 深圳壹账通智能科技有限公司 | 任务调度方法及装置、计算机设备、存储介质 |
CN112507171A (zh) * | 2020-12-03 | 2021-03-16 | 深圳市易平方网络科技有限公司 | 一种任务调度方法、智能终端及存储介质 |
CN112667383A (zh) * | 2020-12-31 | 2021-04-16 | 北京高途云集教育科技有限公司 | 一种任务执行及调度方法、系统、装置、计算设备及介质 |
CN112667383B (zh) * | 2020-12-31 | 2024-02-09 | 北京高途云集教育科技有限公司 | 一种任务执行及调度方法、系统、装置、计算设备及介质 |
CN113238838A (zh) * | 2021-04-22 | 2021-08-10 | 中国银联股份有限公司 | 一种任务调度方法、装置及计算机可读存储介质 |
CN113312164A (zh) * | 2021-07-28 | 2021-08-27 | 浙江九州云信息科技有限公司 | 一种适用于云计算系统的资源数据读取方法 |
CN116627958A (zh) * | 2023-07-21 | 2023-08-22 | 中邮消费金融有限公司 | 大数据质量校验方法、装置、设备及存储介质 |
CN116882716A (zh) * | 2023-09-08 | 2023-10-13 | 长城证券股份有限公司 | 任务调度方法、设备及存储介质 |
CN116882716B (zh) * | 2023-09-08 | 2024-03-08 | 长城证券股份有限公司 | 任务调度方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491254A (zh) | 一种数据仓库的调度方法及装置 | |
US11392561B2 (en) | Data migration using source classification and mapping | |
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
US11847103B2 (en) | Data migration using customizable database consolidation rules | |
US20200104377A1 (en) | Rules Based Scheduling and Migration of Databases Using Complexity and Weight | |
US7761530B2 (en) | Configuration change management tool | |
US20180270122A1 (en) | Automatic microservice problem detection in enterprise applications | |
US20170255886A1 (en) | Workflow execution | |
US7328134B1 (en) | Enterprise integration test tool | |
US7865382B2 (en) | Compliance control framework | |
CN111400011B (zh) | 一种实时任务调度方法、系统、设备及可读存储介质 | |
CN105095970A (zh) | 第三方应用的执行方法及系统 | |
US20100121668A1 (en) | Automated compliance checking for process instance migration | |
US9430219B2 (en) | Revision safe upgrade in a hybrid cloud landscape | |
US20050165809A1 (en) | Technique for improving staff queries in a workflow management system | |
CN112286661B (zh) | 任务调度方法及装置、存储介质、终端 | |
CN111754079A (zh) | 一种基于敏捷管理的项目研发方法、设备及介质 | |
CN110347735A (zh) | 配置化的数据转发异常补处理方法、装置及可读存储介质 | |
US11068487B2 (en) | Event-stream searching using compiled rule patterns | |
CN113407973A (zh) | 软件功能权限管理方法、系统、服务器及存储介质 | |
US20200348926A1 (en) | System and method for automating environment management of one or more software applications | |
US10339037B1 (en) | Recommendation engine for recommending prioritized performance test workloads based on release risk profiles | |
CN115167896A (zh) | 一种更新软件版本的方法、装置、存储介质及电子设备 | |
CN110221952B (zh) | 业务数据的处理方法及装置、业务数据处理系统 | |
CN113419829A (zh) | 作业调度方法、装置、调度平台及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100085 Floor 102-1, Building No. 35, West Second Banner Road, Haidian District, Beijing Applicant after: Seashell Housing (Beijing) Technology Co., Ltd. Address before: 100085 Floor 102-1, Building No. 35, West Second Banner Road, Haidian District, Beijing Applicant before: Chain home network (Beijing) Technology Co., Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180904 |