本公开涉及etl任务执行,尤其涉及一种etl执行模板的生成方法、系统和电子设备。
背景技术:
1、如附图1所示的etl任务执行示意图,主要是指在etl模块的jobengine任务工厂中进行任务执行,etl任务执行,主要是对用户输入的算子图进行解析操作,生成对应的任务引擎通用脚本,以便在任务引擎中执行。etl执行上下文工厂产生etl执行上下文,基于baseetlcontext提供一些基础性的上下文的算子操作方法。
2、etl执行上下文兼具两个功能:
3、一个是将参数转换为dataflow和basecommand拓扑排序;
4、另一个是隔离其他域。使etl不与其他域直接接触,防止两者直接耦合。
5、因此etl执行上下文相当于一个外观模式,目的是隐藏外部调用的复杂性,提供了etl域与其他域交互的委托调用。
6、而etl任务,主要包含etl任务执行流程以及对应的etl任务预览。etl任务执行流程指的是按照预设的执行逻辑执行所构建的etl任务,按照业务逻辑对etl任务中的算子图进行解析和执行;以及etl任务预览,按照一定的业务逻辑将etl任务的执行结果展示给用户。
7、从上来看,执行过程和预览过程,在逻辑上来看,etl的执行和预览在执行流程上相似性很大。
8、因此,为了遵循dry原则,用户等不期望重复地实现相同的业务逻辑,也就是说希望按照一个统一的业务逻辑模式,能够重复调用并实现etl的执行和预览,期望对etl的执行和预览实现统一的处理流畅。
9、因此,本技术欲在预览和执行之间抽取出一个统一的etl执行模板,由模板工厂产生一个规范的执行模板,兜底一些统一的异常处理流程。
技术实现思路
1、为了解决上述问题,本技术提出一种etl执行模板的生成方法、系统和电子设备。
2、本技术一方面,提出一种etl执行模板的生成方法,包括如下步骤:
3、通过etl执行上下文工厂-etl execution context factory生成etl执行上下文-etl execution contextx;
4、解析所述etl执行上下文-etl execution contextx,得到所述etl执行上下文中的执行逻辑:算子依赖、生命周期和基本属性;
5、将所述执行逻辑发送至预览工厂-et lpreview factory;
6、由所述预览工厂-et lpreview factory根据所述执行逻辑,生成业务逻辑与所述etl执行上下文所对应的etl业务执行模板-abstract etl business template。
7、作为本技术的一可选实施方案,可选地,所述算子依赖,包括:
8、支撑算子解析的相关封装逻辑;
9、算子解析中需要使用到外部的表达式构建;
10、算子依赖中会对算子解析需要使用的复杂函数进行封装,以便算子解析使用。
11、作为本技术的一可选实施方案,可选地,所述生命周期,包括:
12、etl执行过程中需要创建/更新数据集;
13、获取输入/输出数据集;
14、检查输出数据集;
15、继承数据集;
16、运行完成通知;
17、检查输入数据集是否可用。
18、作为本技术的一可选实施方案,可选地,所述基本属性,包括:
19、提供本次etl运行时需要的基本属性,包括算子网、版本、拆分节点信息、域、所有者、优先级设置、附加任务参数和触发路径。
20、作为本技术的一可选实施方案,可选地,由所述预览工厂-et lpreview factory根据所述执行逻辑,生成业务逻辑与所述etl执行上下文所对应的etl业务执行模板-abstract etl business template,包括:
21、所述预览工厂-et lpreview factory根据所述etl执行上下文中的执行逻辑:算子依赖、生命周期和基本属性,构建如下模板内容:
22、(1)、产生执行任务模块-spawn,用于:
23、产生一个etl执行任务并提交任务管理执行;
24、(2)、构建返回信息模块-build response,用于:
25、构建返回信息,包含任务id、报错信息,以及前端进行展示;
26、(3)、任务执行前置检查模块-before execute task,用于
27、(3.1)、任务执行时的前置逻辑检查:
28、根据参数判断,执行是否已经熔断;
29、判断是否设置了超时标识,具有超时标识则表示该etl存在严重性能问题,不应允许执行;
30、判断是否已经处于运行中,防止重复运行;
31、判断是否已经被工作流调度,若有说明bi已经失去该etl的调度权限;
32、判断是否已经被工作流调度,若有说明bi已经失去该etl的调度权限;
33、检查输出数据集的生成目录是否可用/有效;
34、判断etl是否正在被修改,是则表明结构正在被修改时禁止执行;
35、(3.2)、预览时的前置逻辑检查:
36、join后的行数是否超出设定的限制;
37、(4)、任务执行后处理模块-after execute task,用于:
38、任务执行后进行一些后续处理;
39、(5)、执行任务模块-execute,用于:
40、定义任务实际的执行体,包括如下逻辑:子任务生成和算子解析;
41、构建完毕,生成所述etl业务执行模板-abstract etl business template;
42、将所述etl业务执行模板-abstract etl business template配置并运行。
43、本技术另一方面,提出一种实现所述etl执行模板的生成方法的系统,包括:
44、etl执行上下文生成模块,用于通过etl执行上下文工厂-etl execution contextfactory,用于生成etl执行上下文-etl execution contextx;
45、解析模块,用于解析所述etl执行上下文-etl execution contextx,得到所述etl执行上下文中的执行逻辑:算子依赖、生命周期和基本属性;
46、发送模块,用于将所述执行逻辑发送至预览工厂-et lpreview factory;
47、模板生成模块,用于由所述预览工厂-et lpreview factory根据所述执行逻辑,生成业务逻辑与所述etl执行上下文所对应的etl业务执行模板-abstract etl businesstemplate。
48、本技术另一方面,还提出一种采用所述etl执行模板的生成方法所生成的etl执行模板。
49、本技术另一方面,还提出一种所述etl执行模板的应用方法,包括如下步骤:
50、获取用户输入的算子图;
51、从后台调用一个所述etl执行模板;
52、将所述算子图输入所述etl执行模板,并按照所述模板内容,执行所述算子图的解析任务并预览输出解析结果。
53、本技术另一方面,还提出一种电子设备,包括:
54、处理器;
55、用于存储处理器可执行指令的存储器;
56、其中,所述处理器被配置为执行所述可执行指令时实现所述etl执行模板的应用方法。
57、本发明的技术效果:
58、本技术通过etl执行上下文工厂生成etl执行上下文;解析所述etl执行上下文-etl execution contextx,得到所述etl执行上下文中的执行逻辑:算子依赖、生命周期和基本属性;将所述执行逻辑发送至预览工厂;由所述预览工厂根据所述执行逻辑,生成业务逻辑与所述etl执行上下文所对应的etl业务执行模板。能够遵循dry原则,构建一个算子图的执行逻辑模板,利用该模板可以对输入的算子图进行算子解析和执行、预览,利用该etl执行模板,能够对海量输入的算子图进行按照统一的业务逻辑模式,重复调用该etl执行模板并实现etl的执行和预览,期望对etl的执行和预览实现统一的处理流畅。在预览和执行之间,统一利用该etl执行模板,对海量算子图进行兜底处理统一的异常处理流程,统一etl任务执行和预览逻辑,提高etl任务执行效率。
59、根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。