System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于虚拟表关系的异构ETL任务编排方法及系统技术方案_技高网

基于虚拟表关系的异构ETL任务编排方法及系统技术方案

技术编号:40532120 阅读:10 留言:0更新日期:2024-03-01 13:53
本发明专利技术涉及大数据处理技术领域,公开了基于虚拟表关系的异构ETL任务编排方法及系统。该方法将需要编排的临时任务列表的任务划分为SQL类任务和/或非SQL类任务。利用SQL解析库对SQL类任务进行语法检查,提取出SQL类任务的输入表和输出表及映射关系。提取出非SQL类任务的输入表和输出表及映射关系,在提取过程中,为每个缺少输出表的非SQL类任务定义一个节点即虚拟表以作为输出表。分析所有临时任务的输入表和输出表及其任务关系,据此获取各个临时任务之间的依赖关系,并通过依赖关系将各个临时任务连接,在用户端配置好调度策略后形成有向无环图,根据有向无环图形成例行执行的任务。本发明专利技术能够实现对异构任务进行自动化的编排。

【技术实现步骤摘要】

本专利技术涉及大数据处理,具体是基于虚拟表关系的异构etl任务编排方法,以及应用这种方法的异构etl任务编排系统。


技术介绍

1、etl(extract-transform-load,抽取-转换-加载)任务编排是大数据任务调度中必不可少的环节,是一种将临时任务转换成例行执行的任务的一种方式。etl任务从种类划分上可以划分成sql(structured query language,结构化查询语言)类任务和非sql类任务,对于sql类任务如hive sql、spark sql、flink sql等,完全是sql代码实现的脚本任务;对于非sql类型一般是以spark、flink的dsl(domain specific language,领域专用语言)为主实现的工程代码,这类代码可能包含sql类脚本也可能是dsl脚本。

2、传统的etl任务编排方式中,大部分是通过人工配置的或者是半自动化的方式实现的。现有技术中一般仅针对sql类任务进行自动化的编排,然而缺乏对非sql类任务的考量,例如公布号为cn104536811a的专利技术专利申请中提出了一种基于hive任务的调度方法和装置,该方法通过任务间的依赖关系保证任务能够有序执行,虽然解决了任务自动化问题,但是只限于hive sql类任务,对于其他任务类型并不适用。另外,目前的etl任务编排还需要用户进行繁琐的配置,例如公告号为cn110232085b的专利技术专利中提出了数据处理组件和数据流向,将用户编排的etl任务生成模型描述语言,通过描述语言的方式解析成有向无环图,从而形成任务的编排,由于引入了描述性语言,增加了系统的复杂度。

3、因此,随着任务规模的增长,如何实现任意类型(sql类和非sql类)即异构etl任务自动化的编排成为亟待解决的问题。


技术实现思路

1、为了避免和克服现有技术中存在的技术问题,本专利技术提供了基于虚拟表关系的异构etl任务编排方法及系统。本专利技术能够对sql类和非sql类的etl任务实现自动化的编排,特别是对于非sql类任务提升了任务调度的高效性和便捷性。

2、为实现上述目的,本专利技术提供如下技术方案:

3、本专利技术公开基于虚拟表关系的异构etl任务编排方法,包括以下步骤:

4、s1.确定需要编排的临时任务列表。

5、s2.将所有临时任务按照任务类型,划分为sql类任务和/或非sql类任务。

6、s3.在临时任务列表中存在sql类任务时,利用sql解析库对sql类任务进行语法检查,提取并保存sql类任务的输入表和输出表,并形成sql类任务到输入表和输出表之间的映射关系。

7、s4.在临时任务列表中存在非sql类任务时,提取并保存非sql类任务的输入表和输出表,并形成sql类任务到输入表和输出表之间的映射关系。其中,非sql类任务的输入表和输出表的提取方法具体包括以下步骤:

8、s41.判断在所有非sql类任务中,是否存在符合预设名单所划定范围的非sql类任务。是则执行步骤s42,否则执行步骤s43。其中,预设名单所划定的非sql类任务包括以dsl语言实现的工程代码。

9、s42.针对符合预设名单的非sql类任务,使用动态代码解析的方式得到初筛的输入和输出实体表,随后执行步骤s43。

10、s43.通过约定的任务配置自动提取出所有非sql类任务的输入表和输出表。其中,在提取过程中优先从一个用于表示“表和文件路径”映射关系的历史关系表中进行提取,并且为每个缺少输出表的非sql类任务定义一个节点即虚拟表以作为输出表。

11、s44.对步骤s42和/或步骤s43中得到的所有输入表和输出表信息进行合并去重,完成非sql类任务的输入表和输出表的提取。

12、s5.分析所有临时任务到各自输入表和输出表的映射关系,据此获取各个临时任务之间的依赖关系,并通过依赖关系将各个临时任务连接,在配置好调度策略后形成有向无环图,根据有向无环图形成例行执行的任务。

13、作为上述方案的进一步改进,步骤s3中,利用sql解析库对sql类任务进行语法检查的具体过程包括:先对sql类任务进行静态语法检查,检查是否合法。再通过连接到服务端的执行计划对sql类任务进行动态语法检查。

14、作为上述方案的进一步改进,步骤s41中,dsl语言为spark或flink的dsl语言。

15、作为上述方案的进一步改进,步骤s44中,还通过可视化的形式将经过合并去重后的输入表和输出表信息展现给用户端,经所述用户端确认完毕后,完成非sql类任务的输入表和输出表的提取。

16、作为上述方案的进一步改进,步骤s5中,还将各个临时任务的输入表和输出表中的虚拟表的表名及文件路径关系进行映射,并存储至存储系统中供解析虚拟表时使用。

17、本专利技术还公开基于虚拟表关系的异构etl任务编排系统,应用上述基于虚拟表关系的异构etl任务编排方法。编排系统包括:任务获取模块、第一提取模块、第二提取模块以及自动化dag模块。

18、任务获取模块用于确定需要编排的临时任务列表,并将所有临时任务按照任务类型,划分为sql类任务和/或非sql类任务。

19、第一提取模块用于在临时任务列表中存在sql类任务时,利用sql解析库对sql类任务进行语法检查,提取出sql类任务的输入表和输出表及其任务关系。

20、第二提取模块用于在临时任务列表中存在非sql类任务时,提取出非sql类任务的输入表和输出表及其任务关系。

21、自动化dag模块用于分析所有临时任务的输入表和输出表及其任务关系,据此获取各个临时任务之间的依赖关系,并通过依赖关系将各个临时任务连接,在用户端配置好调度策略后形成供调度系统使用的有向无环图。

22、与现有技术相比,本专利技术的有益效果是:

23、1、本专利技术公开的异构etl任务编排方法,通过在etl任务调度中引入虚拟表的方式,能够自动化的解析出非sql类etl任务的输入和输出表,将非sql类任务转换成sql类任务,再通过分析各个临时任务的输入表和输出表以识别出sql类和非sql类的异构etl任务的依赖关系,实现对异构任务进行自动化的编排。在此基础上,先通过动态代码解析的方式进行初步提取,再经过约定的任务配置进行逐个提取,随后进行合并去重操作,此种并行的提取方式可以确保结果更加准确可靠,减少人工操作,防止遗漏的可能性。

24、2、本专利技术公开的异构etl任务编排方法,无需用户进行繁琐的配置,通过自动化的方式实现了任务的调度配置。

25、3、本专利技术公开的异构etl任务编排系统,其可应用上述方法,能够产生与上述方法相同的有益效果,在此不再赘述。

本文档来自技高网...

【技术保护点】

1.基于虚拟表关系的异构ETL任务编排方法,其特征在于,包括步骤:

2.根据权利要求1所述的基于虚拟表关系的异构ETL任务编排方法,其特征在于,步骤S3中,利用SQL解析库对SQL类任务进行语法检查的具体过程包括:先对SQL类任务进行静态语法检查,检查是否合法;再通过连接到服务端的执行计划对SQL类任务进行动态语法检查。

3.根据权利要求1所述的基于虚拟表关系的异构ETL任务编排方法,其特征在于,步骤S41中,所述DSL语言为Spark或Flink的DSL语言。

4.根据权利要求1所述的基于虚拟表关系的异构ETL任务编排方法,其特征在于,步骤S44中,还通过可视化的形式将经过合并去重后的输入表和输出表信息展现给用户端,经所述用户端确认完毕后,完成非SQL类任务的输入表和输出表的提取。

5.根据权利要求1所述的基于虚拟表关系的异构ETL任务编排方法,其特征在于,步骤S5中,还将各个临时任务的输入表和输出表中的虚拟表的表名及文件路径关系进行映射,并存储至存储系统中供解析虚拟表时使用。

6.基于虚拟表关系的异构ETL任务编排系统,其特征在于,应用如权利要求1至5中任意一项所述的基于虚拟表关系的异构ETL任务编排方法;所述编排系统包括:

...

【技术特征摘要】

1.基于虚拟表关系的异构etl任务编排方法,其特征在于,包括步骤:

2.根据权利要求1所述的基于虚拟表关系的异构etl任务编排方法,其特征在于,步骤s3中,利用sql解析库对sql类任务进行语法检查的具体过程包括:先对sql类任务进行静态语法检查,检查是否合法;再通过连接到服务端的执行计划对sql类任务进行动态语法检查。

3.根据权利要求1所述的基于虚拟表关系的异构etl任务编排方法,其特征在于,步骤s41中,所述dsl语言为spark或flink的dsl语言。

4.根据权利要求1所述的基于虚拟表关系的异构et...

【专利技术属性】
技术研发人员:闫洲周锐钱鑫王佐成
申请(专利权)人:数据空间研究院
类型:发明
国别省市:

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

1