CN117573758A - 基于bi平台的数据流编排方法 - Google Patents
基于bi平台的数据流编排方法 Download PDFInfo
- Publication number
- CN117573758A CN117573758A CN202311692067.1A CN202311692067A CN117573758A CN 117573758 A CN117573758 A CN 117573758A CN 202311692067 A CN202311692067 A CN 202311692067A CN 117573758 A CN117573758 A CN 117573758A
- Authority
- CN
- China
- Prior art keywords
- etl
- execution
- operator
- task
- data stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000011161 development Methods 0.000 claims abstract description 47
- 238000004458 analytical method Methods 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 16
- 230000015654 memory Effects 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 claims description 10
- 238000013519 translation Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 5
- 238000005538 encapsulation Methods 0.000 claims description 4
- 238000012805 post-processing Methods 0.000 claims description 3
- 238000012384 transportation and delivery Methods 0.000 abstract description 5
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000007405 data analysis Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000012163 sequencing technique Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种基于BI平台的数据流编排方法,通过SmartETL利用ETL算子解析和分析的方式,解析得到前端用户所提供的用户算子的算子图,通过算子图可以明确分析出用户算子中各个ETL算子之间的上下文执行逻辑。开发人员能够基于上下文执行逻辑,构建相应的业务数据流,快速调用编排组件,按照各个ETL算子之间的上下文执行逻辑,编排相应的业务数据流,为开发人员提供业务数据流的编排逻辑指引,引导开发人员提供合理且满足功能要求的数据流开发文件。因此,能够降低在前期编排数据流所需要花费的大量时间,大大缩短数据流的交付时长。
Description
技术领域
本公开涉及数据集处理技术领域,尤其涉及一种基于BI平台的数据流编排方法、系统和电子设备。
背景技术
ETL,主要指的是数据转换,通过执行ETL任务,将源数据集转换为目标数据集。
在ETL任务执行过程中,ETL运行的前提是,ETL(待处理的数据集,也就是所构建并输入的算子)已经由用户通过BI平台保存,在后续开发相应的数据集之时,导入ETL数据,用于生成对应的数据流。
如附图1所示的申请人研发的Universe(Platform)数据开发平台,用户可以进行相应的业务数据流(比如财务对接、会计计算、业务管理),开发完毕再交付前端用户进行使用。
而在开发平台处理前端用户提供的ETL(用户提供的待处理的数据集,简称“用户算子”)之时,需要开发人员花费时间研究用户算子的数据结构、用户所需的数据流执行逻辑等等,根据研究用户算子而获得的信息,进行相应数据流的编排、构建,为前端用户提供合理且满足功能要求的数据流开发文件。
但是开发人员研究用户算子的过程,基本采用传统的人工分析,浏览并计算用户算子。因此,在编排数据流的前期,会花费大量时间,导致数据流的交付时间延长。
发明内容
为了解决上述问题,本申请提出一种基于BI平台的数据流编排方法、系统和电子设备。
本申请一方面,提出一种基于BI平台的数据流编排方法,包括如下步骤:
通过BI平台,接入前端用户提供的用户算子,并转发至智能算子处理模块---SmartETL;
所述SmartETL按照预设的ETL执行模板,对所述用户算子进行解析,获得包含各个ETL算子之间的上下文执行逻辑的算子图,并将所述算子图由所述BI平台发送至Universe数据开发平台;
所述Universe数据开发平台上的任务调度引擎,根据所述算子图构建对应的数据流编排调度任务,连同所述算子图和所述数据流编排调度任务发送至开发人员;
开发人员执行所述数据流编排调度任务,并根据所述算子图中各个ETL算子之间的上下文执行逻辑,编排并生成相应的数据流。
作为本申请的一可选实施方案,可选地,所述ETL执行模板的生成方法,包括如下步骤:
通过ETL执行上下文工厂-ETL Execution Context Factory生成ETL执行上下文-ETL Execution Context;
解析所述ETL执行上下文-ETL Execution Context,得到所述ETL执行上下文中的执行逻辑:算子依赖、生命周期和基本属性;
将所述执行逻辑发送至预览工厂-ETL Preview Factory;
由所述预览工厂-ETL Preview Factory根据所述执行逻辑,生成业务逻辑与所述ETL执行上下文所对应的ETL业务执行模板-Abstract ETL Business Template;
所述算子依赖,包括:支撑算子解析的相关封装逻辑;算子解析中需要使用到外部的表达式构建;算子依赖中会对算子解析需要使用的复杂函数进行封装,以便算子解析使用;
所述生命周期,包括:ETL执行过程中需要创建/更新数据集;获取输入/输出数据集;检查输出数据集;继承数据集;运行完成通知;检查输入数据集是否可用;
所述基本属性,包括:提供本次ETL运行时需要的基本属性,包括算子网、版本、拆分节点信息、域、所有者、优先级设置、附加任务参数和触发路径。
作为本申请的一可选实施方案,可选地,所述ETL执行模板,包括如下模板内容:
(1)、产生执行任务模块-spawn,用于:
产生一个ETL执行任务并提交任务管理执行;
(2)、构建返回信息模块-build Response,用于:
构建返回信息,包含任务ID、报错信息,以及前端进行展示;
(3)、任务执行前置检查模块-before Execute Task,用于:
(3.1)、任务执行时的前置逻辑检查:
根据参数判断,执行是否已经熔断;
判断是否设置了超时标识,具有超时标识则表示该ETL存在严重性能问题,不应允许执行;
判断是否已经处于运行中,防止重复运行;
判断是否已经被工作流调度,若有说明BI已经失去该ETL的调度权限;
判断是否已经被工作流调度,若有说明BI已经失去该ETL的调度权限;
检查输出数据集的生成目录是否可用/有效;
判断ETL是否正在被修改,是则表明结构正在被修改时禁止执行;
(3.2)、预览时的前置逻辑检查:
Join后的行数是否超出设定的限制;
(4)、任务执行后处理模块-after Execute Task,用于:
任务执行后进行一些后续处理;
(5)、执行任务模块-execute,用于:
定义任务实际的执行体,包括如下逻辑:子任务生成和算子解析;
构建完毕,生成所述ETL业务执行模板-Abstract ETL Business Template;
将所述ETL业务执行模板-Abstract ETL Business Template配置并运行。
作为本申请的一可选实施方案,可选地,所述SmartETL按照预设的ETL执行模板,对所述用户算子进行解析,获得包含各个ETL算子之间的上下文执行逻辑的算子图,包括:
所述SmartETL从数据库中调用一个预设的ETL执行模板;
将所述用户算子导入所述ETL执行模板,所述ETL执行模板根据所述用户算子生成所需要的翻译参数,并输入至ETL上下文工厂;
所述ETL上下文工厂根据所述用户算子生成对应的ETL上下文,并对所述ETL上下文进行拓扑排序后,连同所述翻译参数输入至翻译器;
翻译器利用所述翻译器参数,对所述用户算子进行翻译,生成对应的算子中间表示;
将所述算子中间表示转换为任务引擎通用脚本,并输入至任务引擎工厂,进行任务执行,生成所述用户算子的算子图;
其中,所述算子图中包含各个ETL算子之间的上下文执行逻辑,用于为数据流开发提供相应的数据流开发逻辑。
作为本申请的一可选实施方案,可选地,开发人员执行所述数据流编排调度任务,并根据所述算子图中各个ETL算子之间的上下文执行逻辑,编排并生成相应的数据流,包括:
进入所述Universe数据开发平台的开发页面;
根据所述算子图中各个ETL算子之间的上下文执行逻辑,调用对应的数据流编排组件,编排各个ETL算子之间的算子执行逻辑;
编排完毕,生成所述数据流。
作为本申请的一可选实施方案,可选地,还包括:
将编排生成的所述数据流,发送至所述任务调度引擎,由所述任务调度引擎反馈至所述BI平台;
通过所述BI平台的API数据接口,转发所述数据流至所述前端用户。
本申请另一方面,提出一种实现所述基于BI平台的数据流编排方法的系统,包括:
数据接入模块,用于BI平台接入前端用户提供的用户算子,并转发至智能算子处理模块---SmartETL;
SmartETL,按照预设的ETL执行模板,对所述用户算子进行解析,获得包含各个ETL算子之间的上下文执行逻辑的算子图,并将所述算子图由所述BI平台发送至Universe数据开发平台;
任务调度模块,用于通过Universe数据开发平台的调度引擎,根据所述算子图构建对应的数据流编排调度任务,连同所述算子图和所述数据流编排调度任务发送至开发人员;
数据开发模块,用于开发人员执行所述数据流编排调度任务,并根据所述算子图中各个ETL算子之间的上下文执行逻辑,编排并生成相应的数据流。
本申请另一方面,还提出一种基于BI平台的数据流编排方法电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现所述的一种基于BI平台的数据流编排方法。
本发明的技术效果:
本申请通过通过SmartETL利用ETL算子解析和分析的方式,解析得到前端用户所提供的用户算子的算子图,通过算子图可以明确分析出用户算子中各个ETL算子之间的上下文执行逻辑。开发人员能够基于上下文执行逻辑,构建相应的业务数据流,快速调用编排组件,按照各个ETL算子之间的上下文执行逻辑,编排相应的业务数据流,为开发人员提供业务数据流的编排逻辑指引,引导开发人员提供合理且满足功能要求的数据流开发文件。
因此,能够降低在前期编排数据流所需要花费的大量时间,大大缩短数据流的交付时长。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出为本发明Universe数据开发平台的技术架构示意图;
图2示出为本发明BI平台(数据分析平台)与Universe数据开发平台的应用系统示意图;
图3示出为本发明的实施流程示意图;
图4示出为本发明ETL执行模板的生成示意图;
图5示出为本发明ETL执行模板的算子解析流程示意图;
图6示出为本发明电子设备的应用示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
实施例1
BI平台,是为前端用户提供的数据集应用平台,前端用户可以在BI平台上进行各种数据集的处理、流转和分析、应用等等,可以将处理过程中生成的数据集保存在BI平台的数据库中。
申请人提供的BI平台(数据分析平台)与Universe数据开发平台,数据互通,前者为前端用户提供数据分析服务,后者为前端用户提供数据流开发服务。
BI平台(数据分析平台)与Universe数据开发平台的技术架构图,如附图2所示。平台之间的数据通信,本实施例不做赘述,可以通过内部数据接口实现数据交互。
如图3所示,本申请一方面,提出一种基于BI平台的数据流编排方法,包括如下步骤:
S1、通过BI平台,接入前端用户提供的用户算子,并转发至智能算子处理模块---SmartETL;
S2、所述SmartETL按照预设的ETL执行模板,对所述用户算子进行解析,获得包含各个ETL算子之间的上下文执行逻辑的算子图,并将所述算子图由所述BI平台发送至Universe数据开发平台;
S3、所述Universe数据开发平台上的任务调度引擎,根据所述算子图构建对应的数据流编排调度任务,连同所述算子图和所述数据流编排调度任务发送至开发人员;
S4、开发人员执行所述数据流编排调度任务,并根据所述算子图中各个ETL算子之间的上下文执行逻辑,编排并生成相应的数据流。
前端用户提供的用户算子,即前端用户提供的构建业务数据流的数据集,比如审计数据表单或者会计报表等等,里面包含不同由前端用户要求的数据集文件。前端用户提供后,需要让开发人员根据前端用户的要求,完成相应数据流的逻辑设计和数据流软件应用开发。
本方案为了提高开发人员对前端用户的数据流进行快速开发研究,通过BI平台(数据分析平台)的智能算子处理模块---SmartETL,利用ETL算子解析和分析的方式,解析得到前端用户所提供的用户算子的算子图,通过算子图可以明确分析出用户算子中各个ETL算子之间的上下文执行逻辑。将该算子图发送至Universe数据开发平台后,开发人员能够基于算子图上所展示的各个ETL算子之间的上下文执行逻辑,对应构建相应的业务数据流,能够快速调用编排组件,按照各个ETL算子之间的上下文执行逻辑,编排相应的业务数据流,以此符合前端用户对业务数据流的要求,快速为开发人员提供业务数据流的编排逻辑指引,引导开发人员提供合理且满足功能要求的数据流开发文件。因此,能够降低在前期编排数据流所需要花费的大量时间,大大缩短数据流的交付时长。
下面将结合ETL执行模板的生成方法进而应用,具体描述算子图中各个ETL算子之间的上下文执行逻辑的获取过程。
作为本申请的一可选实施方案,可选地,所述ETL执行模板的生成方法,包括如下步骤:
通过ETL执行上下文工厂-ETL Execution Context Factory生成ETL执行上下文-ETL Execution Context;
解析所述ETL执行上下文-ETL Execution Context,得到所述ETL执行上下文中的执行逻辑:算子依赖、生命周期和基本属性;
将所述执行逻辑发送至预览工厂-ETL Preview Factory;
由所述预览工厂-ETL Preview Factory根据所述执行逻辑,生成业务逻辑与所述ETL执行上下文所对应的ETL业务执行模板-Abstract ETL Business Template;
所述算子依赖,包括:支撑算子解析的相关封装逻辑;算子解析中需要使用到外部的表达式构建;算子依赖中会对算子解析需要使用的复杂函数进行封装,以便算子解析使用;
所述生命周期,包括:ETL执行过程中需要创建/更新数据集;获取输入/输出数据集;检查输出数据集;继承数据集;运行完成通知;检查输入数据集是否可用;
所述基本属性,包括:提供本次ETL运行时需要的基本属性,包括算子网、版本、拆分节点信息、域、所有者、优先级设置、附加任务参数和触发路径。
ETL执行模板的生成方法,可以参见申请人提交的发明专利申请“一种ETL执行模板的生成方法”。
如图4所示,模板构建主要涉及如下两个主体:
ETL执行上下文工厂-ETL Execution Context Factory;
预览工厂-ET LPreview Factory。
ETL执行上下文工厂用于生成ETL执行上下文,预览工厂用于解析ETL执行上下文的文本结构,获取ETL执行上下文的执行逻辑结构,并根据执行逻辑结构,构建对应的ETL执行模板。
ETL执行模板的整体执行过程,可以参考附图1的算子解析和任务执行流程。
其中,
首先由(I)ETL Execution Context Factory,生成一个上下文并发送至C-ET LPreview Factor。
ETL Preview Factory通过衍生预览模板(翻译器参数),构建抽象的ETL商业模板(Abstract ETL Business Template)。
ETL Preview Factory通过模板创建,生成一个能够产生和执行上下文任务的ETL执行模板,该ETL执行模板包含如下几部分:
spawn、build Response、before Execute Task、after Execute Task和execute。
预览工厂-ETL Preview Factory,主要的任务在于根据执行逻辑结构,构建对应的ETL执行模板。
因此需要从生成的ETL上下文中,获取ETL任务执行逻辑,其按照行为分成三个部分:算子依赖、生命周期和基本属性。
算子依赖、生命周期和基本属性,三个部分的主要应用逻辑,详见如下描述:
作为本申请的一可选实施方案,可选地,所述算子依赖,包括:
支撑算子解析的相关封装逻辑;
算子解析中需要使用到外部的表达式构建;
算子依赖中会对算子解析需要使用的复杂函数进行封装,以便算子解析使用。
作为本申请的一可选实施方案,可选地,所述生命周期,包括:
ETL执行过程中需要创建/更新数据集;
获取输入/输出数据集;
检查输出数据集;
继承数据集;
运行完成通知;
检查输入数据集是否可用。
作为本申请的一可选实施方案,可选地,所述基本属性,包括:
提供本次ETL运行时需要的基本属性,包括算子网、版本、拆分节点信息、域、所有者、优先级设置、附加任务参数和触发路径。
预览工厂(ETL Preview Factory),在从生成的ETL执行上下文中得到其执行逻辑之后,可以按照其执行逻辑生成对应的业务执行模板(Abstract ETL BusinessTemplate)。
所述预览工厂-ETL Preview Factory根据所述ETL执行上下文中的执行逻辑:算子依赖、生命周期和基本属性,构建如下模板内容:
(1)、产生执行任务模块-spawn,用于:
产生一个ETL执行任务并提交任务管理执行;
(2)、构建返回信息模块-build Response,用于:
构建返回信息,包含任务ID、报错信息,以及前端进行展示;
(3)、任务执行前置检查模块-before Execute Task,用于
(3.1)、任务执行时的前置逻辑检查:
根据参数判断,执行是否已经熔断;
判断是否设置了超时标识,具有超时标识则表示该ETL存在严重性能问题,不应允许执行;
判断是否已经处于运行中,防止重复运行;
判断是否已经被工作流调度,若有说明BI已经失去该ETL的调度权限;
判断是否已经被工作流调度,若有说明BI已经失去该ETL的调度权限;
检查输出数据集的生成目录是否可用/有效;
判断ETL是否正在被修改,是则表明结构正在被修改时禁止执行;
(3.2)、预览时的前置逻辑检查:
Join后的行数是否超出设定的限制;
(4)、任务执行后处理模块-after Execute Task,用于:
任务执行后进行一些后续处理;
(5)、执行任务模块-execute,用于:
定义任务实际的执行体,包括如下逻辑:子任务生成和算子解析;
构建完毕,生成所述ETL业务执行模板-Abstract ETL Business Template;
将所述ETL业务执行模板-Abstract ETL Business Template配置并保存在后台上。
经过上述模板功能构建,生成了spawn、build Response、before Execute Task、after Execute Task和execute等五个模板功能模块(分别为:产生、构建返回值、前置任务处理、后置任务处理和任务执行),各个功能模块的功能详见上述描述。
五个模板功能模块,将按照原有ETL执行过程中的算子依赖、生命周期和基本属性的逻辑执行顺序,响应ETL任务执行逻辑。
如图5所示,为利用ETL模板进行算子解析和处理的流程图。
作为本申请的一可选实施方案,可选地,所述SmartETL按照预设的ETL执行模板,对所述用户算子进行解析,获得包含各个ETL算子之间的上下文执行逻辑的算子图,包括:
所述SmartETL从数据库中调用一个预设的ETL执行模板;
将所述用户算子导入所述ETL执行模板,所述ETL执行模板根据所述用户算子生成所需要的翻译参数,并输入至ETL上下文工厂;
所述ETL上下文工厂根据所述用户算子生成对应的ETL上下文,并对所述ETL上下文进行拓扑排序后,连同所述翻译参数输入至翻译器;
翻译器利用所述翻译器参数,对所述用户算子进行翻译,生成对应的算子中间表示;
将所述算子中间表示转换为任务引擎通用脚本,并输入至任务引擎工厂,进行任务执行,生成所述用户算子的算子图;
其中,所述算子图中包含各个ETL算子之间的上下文执行逻辑,用于为数据流开发提供相应的数据流开发逻辑。
算子图由一个或多个输入算子和至少一个输出算子构成,用户可以导出、导入、删除、保存或者修改算子图,以及管理算子图的计算时机,如级联触发、定时触发等等方式。
用户需要进行逻辑处理、执行的数据集,将在ETL模块中通过每个算子进行逻辑执行,算子执行过程中伴随对应的数据处理。
用户可以通过ETL模块提供的界面,选择需要转换的数据集,并通过拖拽算子的方式构建一个算子图,来实现数据转换的过程。算子图可以包含多个算子,每个算子都代表了一种数据转换操作,例如过滤、排序、聚合等等。用户可以根据自己的需求选择合适的算子来构建自己的算子图。
一旦用户构建好了自己的算子图,ETL模块会将这个计算过程转换为可执行的任务引擎通用脚本,并通过提交任务的方式在任务引擎中排队、调度和执行。用户可以管理算子图的计算时机,例如级联触发、定时触发等等方式,来满足自己的需求。
最终,ETL模块会生成一个或多个目标数据集,这些数据集可以被用户导出、导入、删除、保存或者修改。用户可以根据自己的需求对这些数据集进行进一步处理或者分析。
算子解析的目的是将算子转换为JobEngine可以执行的脚本。最终,需要得到的是一个可执行的脚本才能通过提交JobEngineTask来执行脚本返回需要的结果。
算子转换为Javascript脚本的采用的方式为定义局部变量,即每个算子以自身的Id为名称定义为一个局部变量,然后通过计算关系,组合在一起。如下所示,每个局部变量与每个算子Id一一对应。
任务引擎(JobEngine)通用脚本。该脚本的运行逻辑是由一个Js函数进行描述,脚本将所有的算子的运行逻辑压缩到了一个Js函数中,在函数中声明的每个变量代表一个算子的处理过程。最终,脚本将结果生成出来并产生一个文件,保存在数据集中。
函数的作用是将两个数据集进行内连接,然后选择其中的两列数据进行返回。这个函数的实现使用了Spark SQL的API,并且对数据集进行了一些基本的操作,例如选择、限制、内连接等等。
所有输入算子都实现了Translatable,所以可以调用Translatable的方法translate进行转换。Translatable需要依赖一个上下文来进行处理,并将BaseCommand转换为BaseRepresentationCommand(基本表示命令)。详见下述描述。
判断DB数据库中是否已经存在算子图,如果存在,则从数据库中获取算子图;DB数据库中可以提前存入待处理的算子图文件,可以直接调取出来进行计算。
如果不存在,则让用户在前端输入或构建算子图。详见上述在ETL模块中构建算子图的描述。
后续需要利用翻译器对算子图进行翻译,因此本处可以提前根据子图的内容,生成翻译器所需要的参数。
ETL上下文工厂,即上下级的ETL工厂。根据算子图的内容,生成ETL上下文,包括数据源、数据目标、数据转换等信息。
ETL上下文还用于准备上下文执行环境。如图3所示,翻译器进行算子翻译时,需要在执行环境中进行,前提需要根据上下文准备执行环境,在生成对应算子的执行顺序之后,按照有序序列在执行环境中依次对各个算子进行翻译执行。ETL上下文包括数据源、数据目标、数据转换等信息。
ETL上下文工厂,根据产生的ETL上下文(算子图的拓扑数据网),将算子图中的算子转换为数据流网(跟拓扑数据网对应,只不过按照拓扑排序的要求进行网络排序),并对数据流网进行排序处理。
利用扑排序算法,对数据流网进行拓扑排序,确定每个算子的执行顺序。
根据拓扑排序的结果,生成有序的算子序列,根据ETL上下文和有序的算子序列,准备上下文执行环境,包括数据源、转换过程等。
算子解析的目的是将算子转换为JobEngine可以执行的脚本。最终,需要得到的是一个可执行的脚本才能通过提交JobEngineTask来执行脚本返回需要的结果。
本实施例,拓扑排序的实现可参考现有技术中的拓扑排序算法,本处不作赘述。
本模块中使用scala重新实现了该算法,并基于Scala语言的特性对算法进行了优化。拓扑排序算法可以使用Kahn于1962年提出的拓扑排序算法。
任务引擎通用脚本:将算子表示转换为Javascript脚本。
翻译器使用生成的翻译器参数,将算子图中的每个算子转换为中间表示。算子中间表示:将每个算子的中间表示组合成整个算子图的中间表示
转换为任务引擎通用脚本:将算子图的中间表示转换为任务引擎通用脚本,以便在任务引擎中执行。脚本将所有的算子的运行逻辑压缩到了一个Js函数。
提交任务到任务引擎工厂:将任务引擎通用脚本提交到任务引擎工厂,以便进行排队、调度和执行。
通过任务管理获取任务结果:通过任务管理系统获取任务执行结果,并将结果返回给用户。
停止:流程执行结束。脚本将结果生成出来并产生一个文件,保存在数据集中。
任务引擎工厂和任务管理系统,可以结合ETL模块的系统平台,具体进行应用,本实施例不做赘述。
经过ETL算子解析,可以获得算子图中各个ETL算子之间的上下文执行逻辑,用于数据流的逻辑开发。
作为本申请的一可选实施方案,可选地,开发人员执行所述数据流编排调度任务,并根据所述算子图中各个ETL算子之间的上下文执行逻辑,编排并生成相应的数据流,包括:
进入所述Universe数据开发平台的开发页面;
根据所述算子图中各个ETL算子之间的上下文执行逻辑,调用对应的数据流编排组件,编排各个ETL算子之间的算子执行逻辑;
编排完毕,生成所述数据流。
开发人员根据算子图中各个ETL算子之间的上下文执行逻辑,在开发平台的编排页面,调用对应的开发组件,进行数据流开发即可。
作为本申请的一可选实施方案,可选地,还包括:
将编排生成的所述数据流,发送至所述任务调度引擎,由所述任务调度引擎反馈至所述BI平台;
通过所述BI平台的API数据接口,转发所述数据流至所述前端用户。
开发生成的数据流,具有与算子图中各个ETL算子之间的上下文执行逻辑相匹配的数据流处理逻辑。将开发文件由BI平台的API数据端口发送至前端用户即可。
因此,本申请能够基于算子图上所展示的各个ETL算子之间的上下文执行逻辑,对应构建相应的业务数据流,能够快速调用编排组件,按照各个ETL算子之间的上下文执行逻辑,编排相应的业务数据流,以此符合前端用户对业务数据流的要求,快速为开发人员提供业务数据流的编排逻辑指引,引导开发人员提供合理且满足功能要求的数据流开发文件。因此,能够降低在前期编排数据流所需要花费的大量时间,大大缩短数据流的交付时长。
显然,本领域的技术人员应该明白,实现上述实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各控制的实施例的流程。本领域技术人员可以理解,实现上述实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各控制的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(FlashMemory)、硬盘(HardDiskDrive,缩写:HDD)或固态硬盘(Solid-StateDrive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
实施例2
基于实施例1的实施原理,本申请另一方面,提出一种实现所述基于BI平台的数据流编排方法的系统,包括:
数据接入模块,用于BI平台接入前端用户提供的用户算子,并转发至智能算子处理模块---SmartETL;
SmartETL,按照预设的ETL执行模板,对所述用户算子进行解析,获得包含各个ETL算子之间的上下文执行逻辑的算子图,并将所述算子图由所述BI平台发送至Universe数据开发平台;
任务调度模块,用于通过Universe数据开发平台的调度引擎,根据所述算子图构建对应的数据流编排调度任务,连同所述算子图和所述数据流编排调度任务发送至开发人员;
数据开发模块,用于开发人员执行所述数据流编排调度任务,并根据所述算子图中各个ETL算子之间的上下文执行逻辑,编排并生成相应的数据流。
上述系统请结合
上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
实施例3
如图6所示,更进一步地,本申请另一方面,还提出一种基于BI平台的数据流编排方法电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现所述的一种基于BI平台的数据流编排方法。
本公开实施例来电子设备包括处理器以及用于存储处理器可执行指令的存储器。其中,处理器被配置为执行可执行指令时实现前面任一所述的一种基于BI平台的数据流编排方法。
此处,应当指出的是,处理器的个数可以为一个或多个。同时,在本公开实施例的电子设备中,还可以包括输入系统和输出系统。其中,处理器、存储器、输入系统和输出系统之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。
存储器作为一计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本公开实施例的一种基于BI平台的数据流编排方法所对应的程序或模块。处理器通过运行存储在存储器中的软件程序或模块,从而执行电子设备的各种功能应用及数据处理。
输入系统可用于接收输入的数字或信号。其中,信号可以为产生与设备/终端/服务器的用户设置以及功能控制有关的键信号。输出系统可以包括显示屏等显示设备。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (8)
1.一种基于BI平台的数据流编排方法,其特征在于,包括如下步骤:
通过BI平台,接入前端用户提供的用户算子,并转发至智能算子处理模块---SmartETL;
所述SmartETL按照预设的ETL执行模板,对所述用户算子进行解析,获得包含各个ETL算子之间的上下文执行逻辑的算子图,并将所述算子图由所述BI平台发送至Universe数据开发平台;
所述Universe数据开发平台上的任务调度引擎,根据所述算子图构建对应的数据流编排调度任务,连同所述算子图和所述数据流编排调度任务发送至开发人员;
开发人员执行所述数据流编排调度任务,并根据所述算子图中各个ETL算子之间的上下文执行逻辑,编排并生成相应的数据流。
2.根据权利要求1所述的一种基于BI平台的数据流编排方法,其特征在于,所述ETL执行模板的生成方法,包括如下步骤:
通过ETL执行上下文工厂-ETL Execution Context Factory生成ETL执行上下文-ETLExecution Context;
解析所述ETL执行上下文-ETL Execution Context,得到所述ETL执行上下文中的执行逻辑:算子依赖、生命周期和基本属性;
将所述执行逻辑发送至预览工厂-ETL Preview Factory;
由所述预览工厂-ETL Preview Factory根据所述执行逻辑,生成业务逻辑与所述ETL执行上下文所对应的ETL业务执行模板-Abstract ETL Business Template;
所述算子依赖,包括:支撑算子解析的相关封装逻辑;算子解析中需要使用到外部的表达式构建;算子依赖中会对算子解析需要使用的复杂函数进行封装,以便算子解析使用;
所述生命周期,包括:ETL执行过程中需要创建/更新数据集;获取输入/输出数据集;检查输出数据集;继承数据集;运行完成通知;检查输入数据集是否可用;
所述基本属性,包括:提供本次ETL运行时需要的基本属性,包括算子网、版本、拆分节点信息、域、所有者、优先级设置、附加任务参数和触发路径。
3.根据权利要求2所述的一种基于BI平台的数据流编排方法,其特征在于,所述ETL执行模板,包括如下模板内容:
(1)、产生执行任务模块-spawn,用于:
产生一个ETL执行任务并提交任务管理执行;
(2)、构建返回信息模块-build Response,用于:
构建返回信息,包含任务ID、报错信息,以及前端进行展示;
(3)、任务执行前置检查模块-before Execute Task,用于:
(3.1)、任务执行时的前置逻辑检查:
根据参数判断,执行是否已经熔断;
判断是否设置了超时标识,具有超时标识则表示该ETL存在严重性能问题,不应允许执行;
判断是否已经处于运行中,防止重复运行;
判断是否已经被工作流调度,若有说明BI已经失去该ETL的调度权限;
判断是否已经被工作流调度,若有说明BI已经失去该ETL的调度权限;
检查输出数据集的生成目录是否可用/有效;
判断ETL是否正在被修改,是则表明结构正在被修改时禁止执行;
(3.2)、预览时的前置逻辑检查:
Join后的行数是否超出设定的限制;
(4)、任务执行后处理模块-after Execute Task,用于:
任务执行后进行一些后续处理;
(5)、执行任务模块-execute,用于:
定义任务实际的执行体,包括如下逻辑:子任务生成和算子解析;
构建完毕,生成所述ETL业务执行模板-Abstract ETL Business Template;
将所述ETL业务执行模板-Abstract ETL Business Template配置并运行。
4.根据权利要求1所述的一种基于BI平台的数据流编排方法,其特征在于,所述SmartETL按照预设的ETL执行模板,对所述用户算子进行解析,获得包含各个ETL算子之间的上下文执行逻辑的算子图,包括:
所述SmartETL从数据库中调用一个预设的ETL执行模板;
将所述用户算子导入所述ETL执行模板,所述ETL执行模板根据所述用户算子生成所需要的翻译参数,并输入至ETL上下文工厂;
所述ETL上下文工厂根据所述用户算子生成对应的ETL上下文,并对所述ETL上下文进行拓扑排序后,连同所述翻译参数输入至翻译器;
翻译器利用所述翻译器参数,对所述用户算子进行翻译,生成对应的算子中间表示;
将所述算子中间表示转换为任务引擎通用脚本,并输入至任务引擎工厂,进行任务执行,生成所述用户算子的算子图;
其中,所述算子图中包含各个ETL算子之间的上下文执行逻辑,用于为数据流开发提供相应的数据流开发逻辑。
5.根据权利要求1所述的一种基于BI平台的数据流编排方法,其特征在于,开发人员执行所述数据流编排调度任务,并根据所述算子图中各个ETL算子之间的上下文执行逻辑,编排并生成相应的数据流,包括:
进入所述Universe数据开发平台的开发页面;
根据所述算子图中各个ETL算子之间的上下文执行逻辑,调用对应的数据流编排组件,编排各个ETL算子之间的算子执行逻辑;
编排完毕,生成所述数据流。
6.根据权利要求1所述的一种基于BI平台的数据流编排方法,其特征在于,还包括:
将编排生成的所述数据流,发送至所述任务调度引擎,由所述任务调度引擎反馈至所述BI平台;
通过所述BI平台的API数据接口,转发所述数据流至所述前端用户。
7.实现权利要求1-6中任一项所述一种基于BI平台的数据流编排方法的系统,其特征在于,包括:
数据接入模块,用于BI平台接入前端用户提供的用户算子,并转发至智能算子处理模块---SmartETL;
SmartETL,按照预设的ETL执行模板,对所述用户算子进行解析,获得包含各个ETL算子之间的上下文执行逻辑的算子图,并将所述算子图由所述BI平台发送至Universe数据开发平台;
任务调度模块,用于通过Universe数据开发平台的调度引擎,根据所述算子图构建对应的数据流编排调度任务,连同所述算子图和所述数据流编排调度任务发送至开发人员;
数据开发模块,用于开发人员执行所述数据流编排调度任务,并根据所述算子图中各个ETL算子之间的上下文执行逻辑,编排并生成相应的数据流。
8.电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现权利要求1-6中任一项所述的一种基于BI平台的数据流编排方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311692067.1A CN117573758A (zh) | 2023-12-11 | 2023-12-11 | 基于bi平台的数据流编排方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311692067.1A CN117573758A (zh) | 2023-12-11 | 2023-12-11 | 基于bi平台的数据流编排方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117573758A true CN117573758A (zh) | 2024-02-20 |
Family
ID=89888141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311692067.1A Withdrawn CN117573758A (zh) | 2023-12-11 | 2023-12-11 | 基于bi平台的数据流编排方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573758A (zh) |
-
2023
- 2023-12-11 CN CN202311692067.1A patent/CN117573758A/zh not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210255842A1 (en) | Low-Code Development Platform | |
US8751558B2 (en) | Mashup infrastructure with learning mechanism | |
US10453165B1 (en) | Computer vision machine learning model execution service | |
CN115617327A (zh) | 低代码页面搭建系统、方法及计算机可读存储介质 | |
CN112988130A (zh) | 一种基于大数据的可视化建模方法、装置、设备及介质 | |
JP7350923B2 (ja) | ディープラーニングフレームワークのオペレータ登録方法、装置、デバイス及び記憶媒体 | |
CN112199086A (zh) | 自动编程控制系统、方法、装置、电子设备及存储介质 | |
CN113238740B (zh) | 代码生成方法、代码生成装置、存储介质及电子设备 | |
Bocciarelli et al. | A model-driven method for building distributed simulation systems from business process models | |
CN117008923A (zh) | 基于ai大模型的代码生成和编译部署方法、平台和设备 | |
CN112947914A (zh) | 一种基于模型的代码生成方法、装置、计算机设备及介质 | |
WO2021008576A1 (zh) | 上下文信息管理方法、装置、系统及计算机可读存储介质 | |
CN115858205A (zh) | 基于内存黑板机制的仿真组件交互方法、装置和设备 | |
Yussupov et al. | SEAPORT: Assessing the Portability of Serverless Applications. | |
Di Natale et al. | An MDA approach for the generation of communication adapters integrating SW and FW components from Simulink | |
CN116185425B (zh) | 基于节点组合的事件流程编排方法、装置、设备及介质 | |
JP2007535013A (ja) | コンピュータプログラムの設計 | |
CN110263932B (zh) | 多智能体仿真系统图形化组合构建方法与装置 | |
Oleshchenko et al. | Web Application State Management Performance Optimization Methods | |
CN117573758A (zh) | 基于bi平台的数据流编排方法 | |
CN115543428A (zh) | 一种基于策略模板的模拟数据生成方法和装置 | |
CN115145652A (zh) | 一种数据处理任务的创建方法、装置、设备及介质 | |
CN111124386B (zh) | 基于Unity的动画事件处理方法、装置、设备和存储介质 | |
CN111126012B (zh) | 定制生成表达式方法及装置 | |
CN113656295A (zh) | 测试数据的自动生成方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20240220 |