[发明专利]支持循环依赖的任务调度方法和系统在审
申请号: | 202010865327.0 | 申请日: | 2020-08-25 |
公开(公告)号: | CN112434061A | 公开(公告)日: | 2021-03-02 |
发明(设计)人: | 周海源 | 申请(专利权)人: | 上海幻电信息科技有限公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453 |
代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 王勇;邓小玲 |
地址: | 200120 上海市浦东新区中国(上海)*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 支持 循环 依赖 任务 调度 方法 系统 | ||
本申请实施例提供了一种支持循环依赖的任务调度方法,所述方法包括:获取一个或多个数据库查询文件,所述一个或多个数据库查询文件包括多个查询语句;遍历和解析所述多个查询语句;提取各个查询语句之间的相对关系;及根据各个查询语句和各个查询语句之间的相对关系,生成用于任务调度的有向无环图;其中,所述有向无环图包括多个任务节点和所述多个任务节点之间的依赖关系,当所述多个查询语句包括递归查询语句时,所述递归查询语句的每次递归操作分别对应所述多个任务节点中的其中一个任务节点。本申请实施例将调用的上下游自身分别视为两个实体,支持“自己调用自己”,避免递归语句在有向无环图生成过程中被判定为死循环的问题。
技术领域
本申请实施例涉及数据库查询技术领域,尤其涉及一种支持循环依赖的任务调度方法、系统、计算机设备及计算机可读存储介质。
背景技术
随着数据规模的不断扩大,基于数据库技术的管理控制和查询开始占用大量的时间和精力。以当前市面上的ETL(Extract-Transform-Load,数据抽取、转换和加载)调度框架为例,其往往只能针对单条SQL(Structured Query Language,结构化查询语言)进行任务编辑。另外,当需要处理大量SQL时,需要来回切换,效率极差,容易任务编辑错误,而且对于调度任务依赖自身等情况没有很好的处理方法,比如当其中一条SQL会调用自身的时候,调度框架会判断陷入死循环无法启动任务。
发明内容
本申请实施例的目的是提供一种支持循环依赖的任务调度方法、系统、计算机设备及计算机可读存储介质,用于解决以下问题:当前处理查询语句效率差、容易任务编辑错误,且不支持依赖自身的调用任务。
本申请实施例的一个方面提供了一种支持循环依赖的任务调度方法,所述方法包括:获取一个或多个数据库查询文件,所述一个或多个数据库查询文件包括多个查询语句;遍历和解析所述多个查询语句;提取各个查询语句之间的相对关系;及根据各个查询语句和各个查询语句之间的相对关系,生成用于任务调度的有向无环图;其中,所述有向无环图包括多个任务节点和所述多个任务节点之间的依赖关系,当所述多个查询语句包括递归查询语句时,所述递归查询语句的每次递归操作分别对应所述多个任务节点中的其中一个任务节点。
可选的,获取一个或多个数据库查询文件,包括:获取文件夹的文件夹参数,所述文件夹包括所述一个或多个数据库查询文件;及通过所述文件的文件夹参数,导入所述一个或多个数据库查询文件。
可选的,所述递归查询语句用于循环执行N个递归查询操作且与多个关联查询语句之间具有相对关系,其中,所述多个关联查询语句对应于所述有向无环图中的多个关联任务节点;根据各个查询语句和各个查询语句之间的相对关系,生成有向无环图,包括:配置与所述N个递归查询操作一一对应的N个分拆任务节点;根据N个分拆任务节点对应的N个分区信息,确定所述N个分拆任务节点之间的依赖关系;及根据N个分拆任务节点对应的N个分区信息,配置所述多个关联任务节点和所述N个分拆任务节点之间的依赖关系。
可选的,还包括:获取所述多个任务节点中的多个没有上游依赖关系的任务节点,所述多个没有上游依赖关系的任务节点包括根任务节点和非根任务节点;将所述非根任务节点确定为第一类异常任务节点,并对所述非根任务节点执行以下操作:禁止以所述非根任务节点为起始任务节点启动所述数据库查询操作;及在检测到以所述根任务节点为所述起始任务节点启动所述数据库查询操作时,则启动所述非根任务节点。
可选的,还包括:获取所述多个任务节点中的多个没有下游依赖关系的任务节点,所述多个没有下游依赖关系的任务节点包括结束任务节点和非结束任务节点;及将所述非结束任务节点确定为第二类异常任务节点,并基于所述非结束任务节点执行相应的操作。
可选的,还包括:确定所述有向无环图是否包括错误依赖关系;及如果所述有向无环图包括所述错误依赖关系,则基于所述错误依赖关系执行相应的操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海幻电信息科技有限公司,未经上海幻电信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010865327.0/2.html,转载请声明来源钻瓜专利网。