一种任务调度方法、装置及存储介质制造方法及图纸

技术编号:28476322 阅读:21 留言:0更新日期:2021-05-15 21:45
本说明书实施例提供一种任务调度方法、装置及存储介质,可以应用于大数据处理技术领域。包括:获取具有依赖关系的多个自定义任务;所述自定义任务为用户部署的任务;所述自定义任务包括执行任务的脚本内容;对所述脚本内容进行解析,得到各个自定义任务依赖的上游任务;所述上游任务为系统任务;对各个自定义任务依赖的上游任务进行处理,解除所述多个自定义任务中的下游自定义任务与目标上游任务的依赖关系;在处理成功的情况下,根据处理后的各个自定义任务依赖的上游任务对所述多个自定义任务进行调度,从而提高任务调度的效率。从而提高任务调度的效率。从而提高任务调度的效率。

【技术实现步骤摘要】
一种任务调度方法、装置及存储介质


[0001]本说明书实施例涉及大数据处理
,特别涉及一种任务调度方法、装置及存储介质。

技术介绍

[0002]随着社会高速发展,数据越来越多,利用数据却越来越困难。大数据平台以数据仓库、数据湖或其它数据源为基础,通过ETL调度系统将这些异构分散的数据进行加工处理,形成有用的有价值的数据或知识,为用户或经营管理人员进行分析决策提供支撑。
[0003]为便于用户或经营管理人员使用大数据平台进行快速分析和决策,大数据平台支持分析师部署自定义任务,并通过任务解析模块自动判断出所依赖的上游任务(数据仓库、数据湖或其它数据源的原始加工处理任务)。ETL调度系统支持在相应上游任务的对应批次处理完毕后即时触发分析师部署的自定义任务,赋能快速分析和决策。同时,大数据平台支持分析师为自定义配置任务制定执行先后依赖关系,为复杂的加工处理流程提供支撑。
[0004]ETL调度按照功能复杂度可分为简单定时调度和工作流调度两种:
[0005]1、定时调度对ETL任务在每个周期按某个固定时间重复运行,如在每月的第一天凌晨3点进行上月的数据统计和汇总。定时调度无法处理多个ETL任务间具有依赖关系的情形。
[0006]2、工作流调度则在ETL任务间建立依赖关系,并严格按照既定的依赖关系逐个执行ETL任务。如此,即可支持将复杂的数据处理流程拆分成多个ETL任务分步完成。工作流调度更适合数据量庞大、处理逻辑复杂的情况。
[0007]定时调度无法满足复杂加工处理流程的需求,故目前的ETL调度系统普通采用工作流调度。但工作流调度需要检查依赖任务是否运行完成,从而触发任务的调度执行。随着大数据平台的普及,分析师所部署的自定义任务越来越多,也越来越复杂。复杂体现在:分析师所部署的自定义任务依赖的上游任务越来越多,自定义任务间的依赖关系越来越复杂。工作流调度所需要的依赖任务检查项越来越多。这对于ETL调度系统的处理性能、调度触发的即时性形成了一定的挑战,逐渐产生ETL调度系统负载高、调度触发不及时等问题,不利于分析师使用大数据平台进行快速分析和决策。

技术实现思路

[0008]本说明书实施例的目的是提供一种任务调度方法、装置及存储介质,以解决现有技术中ETL调度系统负载高、调度触发不及时等问题,提高任务调度的效率。
[0009]为解决上述问题,本说明书实施例提供一种任务调度方法,所述方法包括:获取具有依赖关系的多个自定义任务;所述自定义任务为用户部署的任务;所述自定义任务包括执行任务的脚本内容;对所述脚本内容进行解析,得到各个自定义任务依赖的上游任务;所述上游任务为系统任务;对各个自定义任务依赖的上游任务进行处理,解除所述多个自定义任务中的下游自定义任务与目标上游任务的依赖关系;其中,所述目标上游任务为所述
多个自定义任务中上游自定义任务与下游自定义任务重复依赖的上游任务;在处理成功的情况下,根据处理后的各个自定义任务依赖的上游任务对所述多个自定义任务进行调度。
[0010]为解决上述问题,本说明书实施例还提供一种任务调度装置,所述装置包括:获取模块,用于获取具有依赖关系的多个自定义任务;所述自定义任务为用户部署的任务;所述自定义任务包括执行任务的脚本内容;解析模块,用于对所述脚本内容进行解析,得到各个自定义任务依赖的上游任务;所述上游任务为系统任务;处理模块,用于对各个自定义任务依赖的上游任务进行处理,解除所述多个自定义任务中的下游自定义任务与目标上游任务的依赖关系;其中,所述目标上游任务为所述多个自定义任务中上游自定义任务与下游自定义任务重复依赖的上游任务;调度模块,用于在处理成功的情况下,根据所述处理后的各个自定义任务依赖的上游任务对所述多个自定义任务进行调度。
[0011]为解决上述问题,本说明书实施例还提供一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序以实现:获取具有依赖关系的多个自定义任务;所述自定义任务为用户部署的任务;所述自定义任务包括执行任务的脚本内容;对所述脚本内容进行解析,得到各个自定义任务依赖的上游任务;所述上游任务为系统任务;对各个自定义任务依赖的上游任务进行处理,解除所述多个自定义任务中的下游自定义任务与目标上游任务的依赖关系;其中,所述目标上游任务为所述多个自定义任务中上游自定义任务与下游自定义任务重复依赖的上游任务;在处理成功的情况下,根据处理后的各个自定义任务依赖的上游任务对所述多个自定义任务进行调度。
[0012]为解决上述问题,本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现:获取具有依赖关系的多个自定义任务;所述自定义任务为用户部署的任务;所述自定义任务包括执行任务的脚本内容;对所述脚本内容进行解析,得到各个自定义任务依赖的上游任务;所述上游任务为系统任务;对各个自定义任务依赖的上游任务进行处理,解除所述多个自定义任务中的下游自定义任务与目标上游任务的依赖关系;其中,所述目标上游任务为所述多个自定义任务中上游自定义任务与下游自定义任务重复依赖的上游任务;在处理成功的情况下,根据处理后的各个自定义任务依赖的上游任务对所述多个自定义任务进行调度。
[0013]由以上本说明书实施例提供的技术方案可见,本说明书实施例中,可以获取具有依赖关系的多个自定义任务;所述自定义任务为用户部署的任务;所述自定义任务包括执行任务的脚本内容;对所述脚本内容进行解析,得到各个自定义任务依赖的上游任务;所述上游任务为系统任务;对各个自定义任务依赖的上游任务进行处理,解除所述多个自定义任务中的下游自定义任务与目标上游任务的依赖关系;其中,所述目标上游任务为所述多个自定义任务中上游自定义任务与下游自定义任务重复依赖的上游任务;在处理成功的情况下,根据处理后的各个自定义任务依赖的上游任务对所述多个自定义任务进行调度。本说明书实施例提供的方法,解除自定义任务的重复的上游任务依赖关系,使得自定义任务的上游任务依赖关系更简单、清晰,从而使得ETL调度系统在调度时可以简化触发条件的判断,降低ETL调度系统的负载,同时也降低了调度系统所需的存储空间,从而提高任务调度的效率。
附图说明
[0014]为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015]图1为本说明书一个场景示例中用户进行快速分析和决策的大数据平台的系统结构图;
[0016]图2为本说明书一个场景示例中ETL调度系统的结构示意图;
[0017]图3为本说明书实施例一种任务调度方法的流程图;
[0018]图4为本说明书一个场景示例中任务解析模块的工作流程图;
[0019]图5为本说明书一个场景示例中处理模块的工作流程图;
[0020]图6为本说本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务调度方法,其特征在于,所述方法包括:获取具有依赖关系的多个自定义任务;所述自定义任务为用户部署的任务;所述自定义任务包括执行任务的脚本内容;对所述脚本内容进行解析,得到各个自定义任务依赖的上游任务;所述上游任务为系统任务;对各个自定义任务依赖的上游任务进行处理,解除所述多个自定义任务中的下游自定义任务与目标上游任务的依赖关系;其中,所述目标上游任务为所述多个自定义任务中上游自定义任务与下游自定义任务重复依赖的上游任务;在处理成功的情况下,根据处理后的各个自定义任务依赖的上游任务对所述多个自定义任务进行调度。2.根据权利要求1所述的方法,其特征在于,所述对所述脚本内容进行解析,得到各个自定义任务依赖的上游任务包括:解析自定义任务的脚本内容中的SQL语句用到的表名;根据所述表名获取所述自定义任务对应的上游任务。3.根据权利要求1所述的方法,其特征在于,所述对各个自定义任务依赖的上游任务进行处理,解除所述多个自定义任务中的下游自定义任务与目标上游任务的依赖关系包括:根据多个自定义任务建立有向图;其中,所述有向图中的顶点表示自定义任务,边表示依赖关系;标记所述多个自定义任务为未处理,使未处理的自定义任务的隐含上游依赖集合为空;所述隐含上游依赖集合由隐含上游任务组成;所述隐含上游任务为自定义任务依赖的父自定义任务所依赖的上游任务;将目标自定义任务的至少一个父自定义任务的隐含上游依赖集合取并集,得到所述目标自定义任务的隐含上游依赖集合;所述目标自定义任务为未处理且入度为0的自定义任务;将所述目标自定义任务依赖的上游任务中与所述目标自定义任务的隐含上游依赖集合中相同的任务确定为目标上游任务,解除所述目标自定义任务与所述目标上游任务的依赖关系;将所述目标自定义任务依赖的上游任务加入所述目标自定义任务的隐含上游依赖集合中,标记所述目标自定义任务为已处理,并从所述有向图中删除与所述目标自定义任务关联的边,重新计算各个未处理的自定义任务的入度以便于确定新的目标自定义任务,直至所有自定义任务都已处理。4.根据权利要求3所述的方法,其特征在于,在不存在入度为0的未处理自定义任务的情况下,确定所述有向图有环,判定处理失败。5.根据权利要求1所述的方法,其特征在于,在处理失败的情况下,停用所述多个自定义任务,返回依赖关系异常的通知。6.根据权利要求1所述的方法,其特征在于,所述根据处理后的各个自定义任务依赖的上游任务对所述多...

【专利技术属性】
技术研发人员:吴成杰沈梦婷彭金胜孙丽娜
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1