CN110825507A - 一种支持多任务重跑的调度方法 - Google Patents
一种支持多任务重跑的调度方法 Download PDFInfo
- Publication number
- CN110825507A CN110825507A CN201911052270.6A CN201911052270A CN110825507A CN 110825507 A CN110825507 A CN 110825507A CN 201911052270 A CN201911052270 A CN 201911052270A CN 110825507 A CN110825507 A CN 110825507A
- Authority
- CN
- China
- Prior art keywords
- task
- jobs
- ready
- execution
- tables
- 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.)
- Granted
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种支持多任务重跑的调度方法。它具体包括如下步骤:解析每个job中的sql,得到读取的表列表、写入的表列表;每个job包装一个前置任务,一个后置任务,前置任务检查读取的表列表是否准备就绪,如果就绪继续执行当前job,如果还没有准备就绪,改任务一直轮询直到所有表准备就绪;后置任务用来标记所有写入表的状态为就绪状态,以便后续依赖这些表的任务执行;在后台展示所有job的依赖关系图,用一种颜色表示执行失败,当遇到执行失败时,只要修复好当前节点涉及的表,其他任务就能自动往下执行。本发明的有益效果是:能够大大节省数据异常时,补数据的时间;根据数据血缘关系图可以优化业务数仓的设计。
Description
技术领域
本发明涉及数据处理相关技术领域,尤其是指一种支持多任务重跑的调度方法。
背景技术
现在常用的Azkaban框架是按照project、flow、job来管理的,一个project中包含多个调度流程flow,每个调度流程flow中可以有多个job,每个job可以根据实际需要完成任务(如:读取表,写入表)。现有技术中,当某个job失败后,只能快速重跑job所在的flow。现有Azkaban方案遇到任务失败,只能针对单个flow重跑任务,而实际业务可能存在需要多个任务重跑。例如:flow1-job1成功后会将结果记录写到表table1,flow1-job2、flow2-job1、flow3-job1可能都依赖table1的数据,如果flow1-job1执行失败,table1没有数据将影响到多个任务,这时候我们需要逐个手动处理,而这样的操作方式使得数据异常时,补数据的时间大大增加了。
发明内容
本发明是为了克服现有技术中存在上述的不足,提供了一种能够节省补数据时间的支持多任务重跑的调度方法。
为了实现上述目的,本发明采用以下技术方案:
一种支持多任务重跑的调度方法,具体包括如下步骤:
(1)在Azkaban框架下按照project、flow、job依次来管理的,即一个project中包含多个调度流程flow,每个调度流程flow中有多个job;
(2)解析每个job中的sql,得到读取的表列表、写入的表列表;
(3)每个job包装一个前置任务,前置任务检查读取的表列表是否准备就绪,如果就绪继续执行当前job,如果还没有准备就绪,该前置任务一直轮询直到所有表准备就绪;
(4)与此同时,每个job包装一个后置任务,后置任务用来标记所有写入的表列表的状态为就绪状态,以便后续依赖这些表的任务执行;
(5)在后台展示所有job的依赖关系图,用一种颜色表示执行失败,当遇到执行失败时,只要修复好当前节点涉及的表,其他任务就能自动往下执行。
通过本方法的设计,当某个job失败后,不需要重跑job所在的调度流程flow,而是针对该job进行一直轮询,故而能够大大节省数据异常时,补数据的时间;还可以根据表的依赖关系得到数据血缘关系图,根据数据血缘关系图可以优化业务数仓的设计。
作为优选,在步骤(2)中,通过以下两个阶段来得到读取的表列表、写入的表列表:第一阶段是人工整理并录入数据库,第二阶段是通过封装apache hive这个开源项目里面的SQL解析模块来实现。
作为优选,在步骤(3)和步骤(4)中,前置任务会一直轮询依赖资源的状态,当依赖的资源已准备就绪,才启动job执行,保证job在执行的时候所有资源都准备就绪了;后置任务主要是将自己完成修改的资源状态修改为就绪,方便其他下游任务及时检测到,并启动job;通过将状态记录到数据库,方便写入和读取;前置任务、job、后置任务是对一个job的封装,是串行结构。
作为优选,在步骤(5)中,在后台展示所有job的依赖关系图,用一种颜色表示执行成功,另一种颜色表示执行失败,从而根据表的依赖关系得到数据血缘关系图,根据数据血缘关系图,当遇到执行失败时,只要修复好当前节点涉及的表,其他任务就能自动往下执行。
本发明的有益效果是:能够大大节省数据异常时,补数据的时间;还可以根据表的依赖关系得到数据血缘关系图,根据数据血缘关系图可以优化业务数仓的设计。
具体实施方式
下面结合具体实施方式对本发明做进一步的描述。
一种支持多任务重跑的调度方法,具体包括如下步骤:
(1)在Azkaban框架下按照project、flow、job依次来管理的,即一个project中包含多个调度流程flow,每个调度流程flow中有多个job;
(2)解析每个job中的sql,得到读取的表列表、写入的表列表;通过以下两个阶段来得到读取的表列表、写入的表列表:第一阶段是人工整理并录入数据库,第二阶段是通过封装apache hive这个开源项目里面的SQL解析模块来实现;
(3)每个job包装一个前置任务,前置任务检查读取的表列表是否准备就绪,如果就绪继续执行当前job,如果还没有准备就绪,该前置任务一直轮询直到所有表准备就绪;
(4)与此同时,每个job包装一个后置任务,后置任务用来标记所有写入的表列表的状态为就绪状态,以便后续依赖这些表的任务执行;
其中:前置任务会一直轮询依赖资源的状态,当依赖的资源已准备就绪,才启动job执行,保证job在执行的时候所有资源都准备就绪了;后置任务主要是将自己完成修改的资源状态修改为就绪,方便其他下游任务及时检测到,并启动job;通过将状态记录到数据库,方便写入和读取;前置任务、job、后置任务是对一个job的封装,是串行结构;例如(前置任务、job1、后置任务)、(前置任务、job2、后置任务),假设job2的前置任务依赖job1的后置任务的输出,那是会有影响的;
(5)在后台展示所有job的依赖关系图,用一种颜色表示执行失败,当遇到执行失败时,只要修复好当前节点涉及的表,其他任务就能自动往下执行;具体地,在后台展示所有job的依赖关系图,用一种颜色表示执行成功,另一种颜色表示执行失败,从而根据表的依赖关系得到数据血缘关系图,根据数据血缘关系图,当遇到执行失败时,只要修复好当前节点涉及的表,其他任务就能自动往下执行;其中:任务执行是一个动态过程,血缘关系图是一个静态数据,我们可以提前通过解析SQL得到血缘关系图。
通过本方法的设计,当某个job失败后,不需要重跑job所在的调度流程flow,而是针对该job进行一直轮询,故而能够大大节省数据异常时,补数据的时间;还可以根据表的依赖关系得到数据血缘关系图,根据数据血缘关系图可以优化业务数仓的设计。
Claims (4)
1.一种支持多任务重跑的调度方法,其特征是,具体包括如下步骤:
(1)在Azkaban框架下按照project、flow、job依次来管理的,即一个project中包含多个调度流程flow,每个调度流程flow中有多个job;
(2)解析每个job中的sql,得到读取的表列表、写入的表列表;
(3)每个job包装一个前置任务,前置任务检查读取的表列表是否准备就绪,如果就绪继续执行当前job,如果还没有准备就绪,该前置任务一直轮询直到所有表准备就绪;
(4)与此同时,每个job包装一个后置任务,后置任务用来标记所有写入的表列表的状态为就绪状态,以便后续依赖这些表的任务执行;
(5)在后台展示所有job的依赖关系图,用一种颜色表示执行失败,当遇到执行失败时,只要修复好当前节点涉及的表,其他任务就能自动往下执行。
2.根据权利要求1所述的一种支持多任务重跑的调度方法,其特征是,在步骤(2)中,通过以下两个阶段来得到读取的表列表、写入的表列表:第一阶段是人工整理并录入数据库,第二阶段是通过封装apache hive这个开源项目里面的SQL解析模块来实现。
3.根据权利要求1所述的一种支持多任务重跑的调度方法,其特征是,在步骤(3)和步骤(4)中,前置任务会一直轮询依赖资源的状态,当依赖的资源已准备就绪,才启动job执行,保证job在执行的时候所有资源都准备就绪了;后置任务主要是将自己完成修改的资源状态修改为就绪,方便其他下游任务及时检测到,并启动job;通过将状态记录到数据库,方便写入和读取;前置任务、job、后置任务是对一个job的封装,是串行结构。
4.根据权利要求1所述的一种支持多任务重跑的调度方法,其特征是,在步骤(5)中,在后台展示所有job的依赖关系图,用一种颜色表示执行成功,另一种颜色表示执行失败,从而根据表的依赖关系得到数据血缘关系图,根据数据血缘关系图,当遇到执行失败时,只要修复好当前节点涉及的表,其他任务就能自动往下执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911052270.6A CN110825507B (zh) | 2019-10-31 | 2019-10-31 | 一种支持多任务重跑的调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911052270.6A CN110825507B (zh) | 2019-10-31 | 2019-10-31 | 一种支持多任务重跑的调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110825507A true CN110825507A (zh) | 2020-02-21 |
CN110825507B CN110825507B (zh) | 2022-03-11 |
Family
ID=69551649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911052270.6A Active CN110825507B (zh) | 2019-10-31 | 2019-10-31 | 一种支持多任务重跑的调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110825507B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111400013A (zh) * | 2020-03-23 | 2020-07-10 | 清华大学 | 一种多核处理器的数据流的处理方法及系统 |
CN111782679A (zh) * | 2020-06-22 | 2020-10-16 | 深圳市酷开网络科技有限公司 | 数据处理过程的监管方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354083A (zh) * | 2015-09-30 | 2016-02-24 | 北京京东尚科信息技术有限公司 | 一种检查调度任务前置条件的方法及装置 |
CN106874084A (zh) * | 2017-01-04 | 2017-06-20 | 北京百度网讯科技有限公司 | 一种分布式工作流调度的方法和装置 |
CN107256247A (zh) * | 2017-06-07 | 2017-10-17 | 九次方大数据信息集团有限公司 | 大数据数据治理方法和装置 |
US20180196867A1 (en) * | 2017-01-09 | 2018-07-12 | Alexander WIESMAIER | System, method and computer program product for analytics assignment |
CN110069380A (zh) * | 2019-03-20 | 2019-07-30 | 浙江工业大学 | 一种基于微服务的Web分布式软件演化与监控方法 |
-
2019
- 2019-10-31 CN CN201911052270.6A patent/CN110825507B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354083A (zh) * | 2015-09-30 | 2016-02-24 | 北京京东尚科信息技术有限公司 | 一种检查调度任务前置条件的方法及装置 |
CN106874084A (zh) * | 2017-01-04 | 2017-06-20 | 北京百度网讯科技有限公司 | 一种分布式工作流调度的方法和装置 |
US20180196867A1 (en) * | 2017-01-09 | 2018-07-12 | Alexander WIESMAIER | System, method and computer program product for analytics assignment |
CN107256247A (zh) * | 2017-06-07 | 2017-10-17 | 九次方大数据信息集团有限公司 | 大数据数据治理方法和装置 |
CN110069380A (zh) * | 2019-03-20 | 2019-07-30 | 浙江工业大学 | 一种基于微服务的Web分布式软件演化与监控方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111400013A (zh) * | 2020-03-23 | 2020-07-10 | 清华大学 | 一种多核处理器的数据流的处理方法及系统 |
CN111782679A (zh) * | 2020-06-22 | 2020-10-16 | 深圳市酷开网络科技有限公司 | 数据处理过程的监管方法、装置、计算机设备及存储介质 |
CN111782679B (zh) * | 2020-06-22 | 2024-03-26 | 深圳市酷开网络科技股份有限公司 | 数据处理过程的监管方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110825507B (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10453010B2 (en) | Computer device, method, and apparatus for scheduling business flow | |
US8813035B2 (en) | Paradigm for concurrency testcase generation | |
CN108446190B (zh) | 接口测试方法及装置 | |
CN110232085B (zh) | 一种大数据etl任务的编排方法与系统 | |
CN110825507B (zh) | 一种支持多任务重跑的调度方法 | |
WO2017193737A1 (zh) | 一种软件测试方法及系统 | |
CN112035233A (zh) | 大数据批量作业任务调度方法及装置 | |
CN111984390A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN112835924A (zh) | 实时计算任务处理方法、装置、设备及存储介质 | |
US10496659B2 (en) | Database grouping set query | |
WO2020232951A1 (zh) | 一种任务执行方法及装置 | |
CN112817720A (zh) | 一种可视化工作流调度方法、装置及电子设备 | |
CN111723091B (zh) | 基于Oracle数据库的索引处理方法、系统、设备和存储介质 | |
US20070185929A1 (en) | Method and apparatus for processing monitoring | |
US20070088667A1 (en) | Systems and methods for data processing | |
US9530112B2 (en) | Common conditions for past projects as evidence for success causes | |
CN111881056A (zh) | 一种自动化测试框架及测试方法 | |
CN112231403A (zh) | 数据同步的一致性校验方法、装置、设备和存储介质 | |
US20070074176A1 (en) | Apparatus and method for parallel processing of data profiling information | |
CN116303494A (zh) | 基于分布式数据库对证券核心交易系统的海量多源异构数据进行一致性分析的系统及其方法 | |
US20220229692A1 (en) | Method and device for data task scheduling, storage medium, and scheduling tool | |
US11275571B2 (en) | Unified installer | |
CN110378554B (zh) | 运维管理系统、方法、介质及终端 | |
CN111881025A (zh) | 一种自动化测试任务调度方法、装置及系统 | |
CN113779117A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |