System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于SQL血缘构建调度任务DAG的方法、装置及设备制造方法及图纸_技高网

一种基于SQL血缘构建调度任务DAG的方法、装置及设备制造方法及图纸

技术编号:41137624 阅读:3 留言:0更新日期:2024-04-30 18:08
本发明专利技术涉及大数据任务调度技术领域,具体涉及一种基于SQL血缘构建调度任务DAG的方法、装置及设备,能够创建SQL任务,并对其内容进行血缘解析,得到血缘关系,并设定任务id;采集目标数据库的元数据信息;根据所述SQL任务的血缘关系和所述元数据信息,生成全链路血缘信息及所述全链路血缘信息和所述任务id的对应关系,进而生成具有SQL任务依赖关系的DAG图。可以理解的是,本发明专利技术提供的技术方案,能够通过SQL任务内容之间的血缘关系,自动生成任务之间的依赖DAG,避免了手动梳理和设定任务之间的依赖关系,提升了数据开发的效率,降低出错的概率。

【技术实现步骤摘要】

本专利技术涉及大数据任务调度,具体涉及一种基于sql血缘构建调度任务dag的方法、装置及设备。


技术介绍

1、在传统的数据仓库分层建模以及etl数据开发的过程中,数据仓库的每一层会创建大量的sql任务,etl,是英文extract-transform-load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。每一层的sql任务在逻辑上存在上下游的依赖关系,大数据任务调度会调度有依赖关系的sql任务运行。

2、传统方法是通过人工手动连线的方式,设定sql任务之间的依赖关系,从而形成调度任务的dag(有向无环图)。这种方式首先需要人为梳理清楚sql任务之间的依赖关系,然后通过手动方式在调度引擎操作界面设置任务之间的依赖关系,而手动的方式效率很低,并且容易出错。


技术实现思路

1、有鉴于此,本专利技术的目的在于提供一种基于sql血缘构建调度任务dag的方法、装置及设备,以解决现有技术中设定sql任务之间的依赖关系效率很低,并且容易出错的问题。

2、根据本专利技术实施例的第一方面,提供一种基于sql血缘构建调度任务dag的方法,包括:

3、创建sql任务,对所述sql任务的内容进行血缘解析,得到sql任务的血缘关系,并设定任务id;

4、采集目标数据库的元数据信息;

5、根据所述sql任务的血缘关系和所述元数据信息,生成全链路血缘信息及所述全链路血缘信息和所述任务id的对应关系;

6、根据所述全链路血缘信息及所述全链路血缘信息和所述任务id的对应关系,生成具有sql任务依赖关系的dag图。

7、优选的,所述采集目标数据库的元数据信息,包括:

8、设置并启动元数据采集定时器;

9、每当所述元数据采集定时器到达预设时间时,查询目标数据库表的元数据信息,读取所述元数据信息。

10、优选的,对所述sql任务的内容进行血缘解析,包括:

11、创建sql语句解析器,利用所述sql语句解析器对所述sql任务的内容进行解析,得到抽象语法树;

12、利用所述sql语句解析器的访问模块访问所述抽象语法树,得到sql任务的血缘关系。

13、优选的,所述生成具有sql任务依赖关系的dag图,包括:

14、根据所述全链路血缘信息及所述全链路血缘信息和所述任务id的对应关系建立邻接表,所述邻接表包括三个字段,第一字段记录所述任务id,第二字段记录所述sql任务的上游节点的任务id,第三字段记录所述sql任务的下游节点的任务id;

15、根据所述邻接表,生成全链路的血缘关系图;

16、根据所述全链路的血缘关系图,生成具有sql任务依赖关系的dag图。

17、优选的,所述的方法,还包括:

18、建立数据库,存储所述全链路血缘信息及所述全链路血缘信息和所述任务id的对应关系。

19、优选的,在所述生成具有sql任务依赖关系的dag图之后,还包括:

20、利用预设调度引擎,以所述dag图的方式将sql任务按照sql任务依赖关系进行关联,执行任务调度。

21、优选的,所述的方法,还包括:

22、利用预设调度引擎,对所述sql任务的运行状态进行实时监控。

23、根据本专利技术实施例的第二方面,提供一种基于sql血缘构建调度任务dag的装置,包括:

24、数据开发服务模块,用于创建sql任务,对所述sql任务的内容进行血缘解析,得到sql任务的血缘关系,并设定任务id;

25、元数据采集服务模块,用于采集目标数据库的元数据信息;

26、数据血缘服务模块,用于根据所述sql任务的血缘关系和所述元数据信息,生成全链路血缘信息及所述全链路血缘信息和所述任务id的对应关系;

27、所述数据开发服务模块,还用于根据所述全链路血缘信息及所述全链路血缘信息和所述任务id的对应关系,生成具有sql任务依赖关系的dag图。

28、优选的,所述的装置,还包括:

29、预设调度引擎,用于以所述dag图的方式将sql任务按照sql任务依赖关系进行关联,执行任务调度;还用于对所述sql任务的运行状态进行实时监控。

30、根据本专利技术实施例的第三方面,提供一种基于sql血缘构建调度任务dag的设备,包括:

31、主控器,及与所述主控器相连的存储器;

32、所述存储器,其中存储有程序指令;

33、所述主控器用于执行存储器中存储的程序指令,执行上述任一项所述的方法。

34、本专利技术的实施例提供的技术方案可以包括以下有益效果:

35、可以理解的是,本专利技术示出的技术方案,能够创建sql任务,并对其内容进行血缘解析,得到血缘关系,并设定任务id;采集目标数据库的元数据信息;根据所述sql任务的血缘关系和所述元数据信息,生成全链路血缘信息及所述全链路血缘信息和所述任务id的对应关系,进而生成具有sql任务依赖关系的dag图。可以理解的是,本专利技术提供的技术方案,能够通过sql任务内容之间的血缘关系,自动生成任务之间的依赖dag,避免了手动梳理和设定任务之间的依赖关系,提升了数据开发的效率,降低出错的概率。

36、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本专利技术。

本文档来自技高网...

【技术保护点】

1.一种基于SQL血缘构建调度任务DAG的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述采集目标数据库的元数据信息,包括:

3.根据权利要求1所述的方法,其特征在于,对所述SQL任务的内容进行血缘解析,包括:

4.根据权利要求1所述的方法,其特征在于,所述生成具有SQL任务依赖关系的DAG图,包括:

5.根据权利要求1所述的方法,其特征在于,还包括:

6.根据权利要求1所述的方法,其特征在于,在所述生成具有SQL任务依赖关系的DAG图之后,还包括:

7.根据权利要求6所述的方法,其特征在于,还包括:

8.一种基于SQL血缘构建调度任务DAG的装置,其特征在于,包括:

9.根据权利要求8所述的装置,其特征在于,还包括:

10.一种基于SQL血缘构建调度任务DAG的设备,其特征在于,包括:

【技术特征摘要】

1.一种基于sql血缘构建调度任务dag的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述采集目标数据库的元数据信息,包括:

3.根据权利要求1所述的方法,其特征在于,对所述sql任务的内容进行血缘解析,包括:

4.根据权利要求1所述的方法,其特征在于,所述生成具有sql任务依赖关系的dag图,包括:

5.根据权利要求1所述的方法,其特征在...

【专利技术属性】
技术研发人员:陶海峰刘波吴小前
申请(专利权)人:北京滴普科技有限公司
类型:发明
国别省市:

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

1