CN107391611A - 一种基于工作流的通用etl工具的过程模型生成方法 - Google Patents
一种基于工作流的通用etl工具的过程模型生成方法 Download PDFInfo
- Publication number
- CN107391611A CN107391611A CN201710536250.0A CN201710536250A CN107391611A CN 107391611 A CN107391611 A CN 107391611A CN 201710536250 A CN201710536250 A CN 201710536250A CN 107391611 A CN107391611 A CN 107391611A
- Authority
- CN
- China
- Prior art keywords
- etl
- node
- transformation
- data
- conversion
- 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.)
- Granted
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于工作流的通用ETL工具的过程模型生成方法,在ETL概念模型的基础上进行抽象,完成整个ETL的控制以及任务的定时执行和调度,建立基于工作流的ETL模型,在此基础上构建ETL流程的有向图,通过集成变换、分解、合并、串行化、并行化、添加还原点、分流和复制八种State变换方式,使得ETL过程在经过恰当的变换之后,变成一个执行效率更高的新ETL过程。基于工作流的ETL系统的概念模型,不同于传统的ETL模型,它屏蔽了底层的具体数据抽取、转换和加载步骤,当业务发生改变时,用户只需要修改ETL流程图即可。大大提高了开发效率,减少开发成本,真正的实现了数据仓库和数据集成平民化。
Description
技术领域
本发明属于数据处理技术领域,具体涉及一种基于工作流的通用ETL工具的过程模型生成方法。
背景技术
近几年,随着电子商务的崛起和信息技术产业的飞速发展,信息孤岛的存在变得越来越普遍。全球每年投入在应用系统的集成和数据整合有3000亿美元之巨,并且这个数据还在以每年28%的量在增长,同时,越来越火热的系统集成和数据仓库市场,使得越来越多的ETL工具涌现出来。
传统的ETL设计方法和ETL工具已经越来越不适应不断变化的需求,因为传统的ETL的设计和开发除了需要熟悉数据表的结构和处理数据的规则,以及非常好的编程能力之外,还需要对整个ETL的流程以及ETL流程的每一步的细节是如何处理的非常熟悉。当商业需求的规则或者数据源发生改变时,传统的ETL设计者必须重新编程设计整个ETL或者进行大量的修改工作。因此,对通用ETL的研究变得越来越迫切。它能够降低对ETL设计人员的要求,适应不断更改的业务逻辑,减少企业和单位的开发时间和成本,将数据仓库变得平民化。
目前,国内对通用ETL的研究几乎一片空白,一部分ETL工具是传统的对物化视图的维护,对设计者和使用者的要求非常高,一部分ETL工具是设计于专门的应用背景,只能在其特定的业务背景下使用,还有一部分则是直接编写脚本或程序来对源数据进行抽取、转换和加载,当数据的结构或ETL的需求发生改变时,整个项目几乎没有重用性可言。国外对ETL系统的研究相对而言要更加全面和成熟,ETL的研究主要体现在对整个ETL过程的建模以及ETL的转换过程和优化上。但是,无论上面提到的哪一种,都有几个共同的缺点,那就是可复用性差、通用性差。
发明内容
针对上述问题,本发明在传统ETL概念模型基础上,提出一种基于工作流的通用ETL工具的过程模型生成方法,对ETL概念模型进行抽象,完成整个ETL的控制以及任务的定时执行和调度,建立基于工作流的ETL模型工具,在此基础上构建ETL流程的有向图,同时集成变换、分解、合并、串行化、并行化、添加还原点、分流和复制八种State变换方式优化了状态转换。
实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
一种基于工作流的通用ETL工具的过程模型生成方法,其特征在于,包括以下步骤:
S1:建立基于工作流的ETL模型工具,包括作业主控模块和抽取、转换、装载模块;
S2:构建与所述ETL模型工具对应的流程图T,所述流程图T包括若干个有向图G,分别定义为G1…Gn;
S3:建立变换、分解、合并、串行化、并行化、添加还原点、分流和复制八种变换规则;
S4;在ETL模型工具整个流程执行过程中,利用所述八种变换规则来改变各有向图G,直至选出变换后时间最小的情况下的所有有向图G,构成通用ETL模型工具的过程模型,以实现优化ETL工具整个流程执行过程。
进一步地,所述步骤S1中的作业主控模块用于完成对ETL所有作业的调度工作,实现ETL作业的定时、排队、并行调度、流程控制、日志记录,根据配置文件确定各个Job的启动条件、执行顺序以及是否依赖于其他的Job,当某个Job满足启动条件时,作业主控模块启动该Job,并按照顺序执行该Job的子任务流程。
进一步地,所述子任务流程为transformation标签里的转换任务。
进一步地,所述步骤S1中的抽取、转换、装载模块中各个步骤之间的数据传输流程是一个生产者消费者模型,每一个节点对下一个节点而言是生产者,节点和节点之间采用一个阻塞队列传递数据,前一个节点根据其连线上的规则,将数据处理后写入阻塞队列,后一个节点一条一条的从阻塞队列里读取数据,所有的这些节点组成Transformation。
进一步地,所述步骤S2具体为:根据有向图的定义构建ETL模型工具的流程的有向图T=(V,E),其中V=Step∪D;所述Step为Transformation的所有功能单元;所述D为Step之间的数据、关系和参数;所述E为有向图的边,实际就表示过程。
进一步地,所述步骤S3中的八种变换规则具体包括:变换、分解、合并、串行化、并行化、添加还原点、分流和复制;
所述交换Swap(v1,v2)具体为:将节点v1和节点v2相互交换;
所述分解Split(v1+2,v1,v2)具体为:将节点v1+2分解为v1、v2;
所述合并Merge(v1,v2,v1+2)具体为:将节点v1、v2合并为v1+2;
所述串行化Factorize(v1,v2,v3,v1+2)具体为:将处于不同的数据流中,但是类型相同的节点v1、v2合并为一个新的节点v1+2;
所述并行化Distribute(v1,v2,v3,v1+2)具体为:将节点v1+2分解为两个类型相同的节点v1、v2,让节点v1、v2处于不同的数据流中;
所述添加还原点AddRecoveryPoint(v,vRP)具体为:在节点v处添加还原点vRP;
所述分流Partion(v1,v2,n)具体为:将节点v1、v2之间的数据流分为n份;
所述复制Replicate(v1,v2,n)具体为:将节点v1、v2之间的数据复制n份。
进一步地,所述步骤S4具体为:使用穷举法将所述的八种变换规则都代入与所述ETL模型工具对应的流程图T,然后比较,选出变换后时间最小的有向图。
进一步地,所述比较、选出变换后时间最小的有向图的具体过程为:使用open和close两个状态队列,来存储未访问和已访问的状态,利用SMIN来表示时间最小的状态,初始化时,让SMIN等于初始状态SG,open包含SG,close为空,对open队列里的所有状态S,首先将状态S出队列,然后S与SMIN进行比较,如果其时间小于SMIN,那么S为新的最小时间状态,再让S根据所述的八种变换规则产生新的状态S',如果S'既不属于open也不属于close,则将其送入队列open,然后将S送入close队列里,标记为已访问;不断重复上述步骤,直到open队列为空,从而实现优化整个ETL过程。
进一步地,在进行有向图的变换时,遵循以下规则:根据组成Transformation节点类型的不同,将Transformation总体上分为四类:普通Step组成的Transformation、包含分流节点的Transformation、包含还原点的Transformation、包含复制节点的Transformation;
(1)对于普通Transformation,其包括Swap、Split、Merge、Factorize和Distribute,只做相邻有向图之间的变换;
(2)对于包含分流节点的Transformation,在有并行化需求时,将DataStream分开在不同的物理处理器上处理,也就是所谓的分流或者并行处理;
(3)对于包含还原点的Transformation,当发生错误时,将当前的阻塞队列里的数据全部拷贝到硬盘里,将距离错误位置最近的还原点的数据读入程序,并且从这个还原点开始执行;由于并没有执行还原点之前的流程,所以从还原点开始执行要比重新执行整个流程要快;
(4)对于包含复制节点的Transformation,当对ETL流程的容错性要求高,而对效率的要求宽松时,采用复制ETL数据流,并将其多次执行的方法来用执行效率换取容错性。
本发明的有益效果:
本发明的基于工作流的通用ETL工具的过程模型,不同于传统的ETL模型,它屏蔽了底层的具体数据抽取、转换和加载步骤,当业务发生改变时,用户只需要修改基于工作流的ETL模型工具即可,通过多种ETL State变换方式使得整个ETL过程在经过恰当的变换之后,变成一个执行效率更高的新ETL过程,大大提高了开发效率,减少开发成本,真正的实现了数据仓库和数据集成平民化。
附图说明
图1为本发明一种实施例的结构示意图;
图2为ETL过程优化示意图;
图3为三种不同的流程处理示意图;
图4为交换规则的处理流程图;
图5为分解和合并规则的处理流程图;
图6为串行化和并行化规则的处理流程图;
图7为添加还原点规则的处理流程图;
图8为分流规则的处理流程图;
图9为复制规则的处理流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面结合附图对本发明的应用原理作详细的描述。
一种基于工作流的通用ETL工具的过程模型生成方法,包括以下步骤:
S1:在传统ETL概念模型基础上,建立基于工作流的ETL模型工具,包括作业主控模块和抽取、转换、装载模块;
所述作业主控模块用于完成对ETL所有作业的调度工作,实现ETL作业的定时、排队、并行调度、流程控制、日志记录,根据配置文件确定各个Job的启动条件、执行顺序以及是否依赖于其他的Job,当某个Job满足启动条件时,作业主控模块启动该Job,并按照顺序执行该Job的子任务流程,即<transformation>标签里的转换任务;
所述抽取、转换、装载模块中各个步骤(即:抽取、转换、装载步骤)之间的数据传输流程是一个生产者消费者模型,每一个节点对下一个节点而言是生产者,节点和节点之间采用一个阻塞队列传递数据,前一个节点根据其连线上的规则,将数据处理后写入阻塞队列,后一个节点一条一条的从阻塞队列里读取数据,所有的这些节点组成Transformation。
具体参见图1,其中:
JOB(J):负责对整个ETL的控制以及任务的定时执行和调度,其包含一个或多个Transformation;所谓作业流指的是当一个Transformation成功执行后,能够自动的执行其他作业;比如,当希望Transformation t1执行完毕之后,ETL的JOB会自动执行Transformation t2,则t1就被称为是上游作业(Up Stream Transformation),t2则被称作下游作业(Down Stream Transformation),是被自动执行的作业。
JOB的操作包括:
◆TableExists:用于判断用户指定的表是否存在,可以存在若干个Table。
◆FileExists:用于判断用户指定的文件是否存在。
◆Mail:用于对用户进行事件通知。
所述的Transformation(T):是指数据抽取、转换、加载所形成的流程,完成针对数据的抽取、基础转换和数据加载,一个Transformation由多个Step组成。
所述的Step(S):是Transformation的功能单元,用来完成特定的转换步骤,Step具体包括以下操作:
数据抽取:
TableInPut:当MySQL、Oracle、SqlServer等数据库里的数据作为数据源的时候,系统与数据库采用JDBC/JNDI来连接。
FileReader:当源数据为文本文件的时候,需要专门的FileReader来对文本文件进行处理;当文件为Excel或XML文件时,采用Jdom来处理。
FTP:从FTP服务器中读取数据;
HTTP/WEB SERVICES:发送Web Service请求,然后从Web Service返回的数据流中读取数据;
SMTP(简单的邮件传送协议):访问电子邮件服务器,根据用户名和密码从电子邮箱中读取数据;
企业级别JAVABEANS(EJB):调用EJB接口,从返回的数据流中读取数据。并通过EJB接口,将数据传递到转换单元。
转换:
Joiner:实现两个数据集的Join操作,包括数据库中常见的连接类型,及数据库中未提供的部分连接类型,利用Joiner组件,还可以实现不同数据源的Join操作;
Filter:根据过滤规则对数据进行过滤;
Switcher:根据分流的规则和数据的特点,将数据流往不同的数据管道输出;
Duplicator:将数据流复制后在多个数据管道里重复执行;
Sorter:对数据进行排序;
Aggregator:对数据进行累计运算,例如Sum、Count、Max、Min等聚合运算;
Converter:对单个字段进行基本的转换,如值映射、字段拆分、空值处理、数据规范化等。
Function:提供了大量的函数进行字段值的运算,如SQRT(A)、Date A+B days、Year of Date A、Month of Date A等,且开发人员可以根据需要自行设计、添加所需的函数。
数据加载:
√TableOutput:将数据通过sql语句加载到目标数据库管理系统中;如Oracle、Mysql、SQLServer等。
√DBLoader:以外部文件批量装载的方式装载数据到目标数据库中,例如SybaseASE中的Bulk Copy,Sybase IQ的Load;
√FileOutput:将数据输出到文本文件中,如excel、txt和xml等。这个文本文件可以是本地的,也可以是存储在网络上其他位置的。
所述的DataStream(D)为:两个Step之间的数据、数据之间的关系、表名、字段名和一些参数,可以作如下定义:输入DataStream为,输出DataStream为,每一个Step的输入DataStream同时也是上一个Step的输出DataStream。
S2:构建与所述ETL模型工具对应的流程图T(即Transformation的过程),流程图T包括若干个有向图G,定义为G1…Gn;
根据步骤S1中建立的基于工作流的ETL模型工具和有向图的定义G=(V,E)。定义ETL流程图T=(V,E),其中V=S∪D;如图2所示:定义ETL State为一个无环的有向图G,同时也代表了一个ETL过程,ETL state代表变换前后的状态;
在基于工作流的ETL工具里,ETL流程图的优化一直是近几年研究的热点。它能够增强ETL的容错性,提高ETL的执行效率,同时对判断ETL功能的正确性也有一定的效果,尽管目前为止,还没有一个理论或工具能够证明一个给定的ETL流程图的正确性。但作为一个正确的ETL过程,有向图G肯定是一个无环的有向图。
ETL的优化实际上就是在输入和输出不变的条件下,将一个ETLState转换为另一个ETLState,以提高ETL执行效率的过程,如:对表1中所示数据源,将所有性别为1(1表示男,0表示女),且地址在001(001表示南京,002表示上海)的记录抽取出来然后加载到目标数据库中。
表1
id | name | sex | address |
1 | Tom | 1 | 001 |
2 | Jim | 1 | 002 |
3 | Lily | 0 | 001 |
4 | Lucy | 0 | 002 |
5 | Steven | 1 | 002 |
6 | Hardy | 1 | 002 |
图3为三种不同的流程设计示意图,很显然,流程2的执行效率要高于流程1,流程3的执行效率高于流程2,且它们的输入输出相同,分析可得流程2相比于流程1应用的是“交换”的变换方式,流程3相比于流程2应用的是“合并”的变换方式。
S3:将ETL过程执行的窗口和容错性等常见的限制条件考虑进去,在ETLState之间设置变换、分解、合并、串行化、并行化、添加还原点、分流和复制八种变换规则以优化数据转换过程;
所述交换Swap(v1,v2)具体为:将节点v1和节点v2相互交换;设交换前ETL流程图为G(V,E),交换后为G'(V',E'),显然V'=V,令E'=E,对所有的e'∈E',且e'=(v,v1),v∈V,都变为e'=(v,v2);同理,对所有的e'∈E',且e=(v2,v),v∈V,都变为e'=(v1,v);再将e'=(v1,v2),变为e'=(v2,v1),具体见图4。
所述分解Split(v1+2,v1,v2)具体为:将节点v1+2分解为v1、v2;设分解前ETL流程图为G(V,E),分解后为G'(V',E'),则V'=V∪{v1+v2}-{v1+2};令E'=E,对所有的e'∈E'且e'=(v,v1+2),v∈V,都变为e'=(v,v1),对所有的e'∈E'且e'=(v1+2,v),v∈V,都变为e'=(v2,v),再加上边e'=(v1,v2),具体见图5。
所述合并Merge(v1,v2,v1+2)具体为:将节点v1、v2合并为v1+2;设合并前ETL流程图为G(V,E),合并后为G'(V',E'),则V'=V-{v1+v2}∪{v1+2};令E'=E,对所有的e'∈E'且e'=(v,v1),v∈V,都变为e'=(v,v1+2),对所有的e'∈E'且e'=(v2,v),v∈V,都变为e'=(v1+2,v),再去掉边e'=(v1,v2);具体见图5;
所述串行化Factorize(v1,v2,v3,v1+2)具体为:将处于不同的数据流中,但是类型相同的节点v1、v2合并为一个新的节点v1+2;分流和合流可以算是并行化和串行化里的一种特殊情况;设串行化前ETL流程图为G(V,E),串行化后为G'(V',E')。则V'=V-{v1+v2}∪{v1+2}。令E'=E,对所有的e'∈E'且e'=(v,v1)或e'=(v,v2),v∈V,都变为e'=(v,v3)。对所有的e'∈E且e'=(v3,v),v∈V,都变为e'=(v1+2,v),再去掉边e'=(v1,v3)、边e'=(v1,v3),加上边e'=(v3,v1+2);具体见图6。
所述并行化Distribute(v1,v2,v3,v1+2)具体为:将节点v1+2分解为两个类型相同的节点v1、v2,让节点v1、v2处于不同的数据流中;设并行化前ETL过程图为G(V,E),并行化后为G'(V',E')。则V'=V∪{v1+v2}-{v1+2}。令E'=E,对所有的e'∈E'且e'=(v,v3),v∈V,变为e'=(v,v1)或e'=(v,v2)。对所有的e'∈E且e'=(v1+2,v)都变为e'=(v3,v),再加上边e'=(v1,v3)、边e'=(v1,v3),去掉边e'=(v3,v1+2),具体见图6。
所述添加还原点AddRecoveryPoint(v,vRP)具体为:在节点v处添加还原点vRP;设添加还原点前ETL流程图为G(V,E),添加还原点后为G'(V',E')。则V'=V∪vRP。令E'=E,对所有的e'∈E'且e'=(v1,v),v1∈V,添加e'=(v1,vRP),具体见图7。
所述分流Partion(v1,v2,n,P)具体为:将节点v1、v2之间的数据流分为n份;设分流前ETL流程图为G(V,E),分流后为G'(V',E'),则V'=V∪{vs,vm};令E'=E,对所有的e'∈E'且e'=(v1,v),v∈V,变为e'=(v1,vs)和e'=(vs,v)。对所有的e'∈E'且e'=(v,v2),v∈V,变为e'=(v,vs)和e'=(vs,v2),具体见图8。
所述复制Replicate(v1,v2,n):将节点v1、v2之间的数据复制n份,设复制前ETL过程图为G(V,E),复制后为G'(V',E')。则V'=V∪{vs,vm}。令E'=E,对所有的e'∈E'且e'=(v1,v),v∈V,变为e'=(v1,vs)和e'=(vs,v)。对所有的e'∈E'且e'=(v,v2),v∈V,变为e'=(v,vs)和e'=(vs,v2),具体见图9。
S4;在ETL工具整个流程执行过程中,利用所述八种变换规则来改变有向图G,直至选出变换后时间最小的所有有向图G,以实现优化整个ETL过程。
所述步骤S4具体为:使用穷举法将所述的八种变换规则都代入所述过程模型的ETL流程对应的有向图T,然后比较,选出变换后时间最小的有向图。
所述比较、选出变换后时间最小的有向图的具体过程为:使用open和close两个状态队列,来存储未访问的和访问过的状态,利用SMIN来表示时间最小的状态,初始化时,让SMIN等于初始状态SG,open包含SG,close为空,对open队列里的所有状态S,首先将S出队列,然后S与SMIN进行比较,如果其时间小于SMIN,那么S为新的最小时间状态,再让S根据所述的八种变换规则产生新的状态S',如果S'既不属于open也不属于close,则将其送入队列open,然后将S送入close队列里,标记为已访问;不断重复上述步骤,直到open队列为空,从而实现优化整个ETL过程。
在进行有向图的变换时,遵循以下规则:根据组成Transformation节点类型的不同,将Transformation总体上分为四类:只包括Swap、Split、Merge、Factorize和Distribute的普通Step组成的Transformation、包含分流节点的Transformation、包含还原点的Transformation、包含复制节点的Transformation;
(1)对于普通Transformation,其包括Swap、Split、Merge、Factorize和Distribute,只做相邻有向图之间的变换;
(2)对于包含分流节点的Transformation,在有并行化需求时,将DataStream分开在不同的物理处理器上处理,也就是所谓的分流或者并行处理;
(3)对于包含还原点的Transformation,当发生错误时,将当前的阻塞队列里的数据全部拷贝到硬盘里,将距离错误位置最近的还原点的数据读入程序,并且从这个还原点开始执行;由于并没有执行还原点之前的流程,所以从还原点开始执行要比重新执行整个流程要快;
(4)对于包含复制节点的Transformation,当对ETL流程的容错性要求高,而对效率的要求宽松时,采用复制ETL数据流,并将其多次执行的方法来用执行效率换取容错性。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (9)
1.一种基于工作流的通用ETL工具的过程模型生成方法,其特征在于,包括以下步骤:
S1:建立基于工作流的ETL模型工具,包括作业主控模块和抽取、转换、装载模块;
S2:构建与所述ETL模型工具对应的流程图T,所述流程图T包括若干个有向图G,分别定义为G1…Gn;
S3:建立变换、分解、合并、串行化、并行化、添加还原点、分流和复制八种变换规则;
S4;在ETL模型工具整个流程执行过程中,利用所述八种变换规则来改变各有向图G,直至选出变换后时间最小的情况下的所有有向图G,构成通用ETL模型工具的过程模型,以实现优化ETL工具整个流程执行过程。
2.根据权利要求1所述的一种基于工作流的通用ETL工具的过程模型生成方法,其特征在于:所述步骤S1中的作业主控模块用于完成对ETL所有作业的调度工作,实现ETL作业的定时、排队、并行调度、流程控制、日志记录,根据配置文件确定各个Job的启动条件、执行顺序以及是否依赖于其他的Job,当某个Job满足启动条件时,作业主控模块启动该Job,并按照顺序执行该Job的子任务流程。
3.根据权利要求2所述的一种基于工作流的通用ETL工具的过程模型生成方法,其特征在于:所述子任务流程为transformation标签里的转换任务。
4.根据权利要求1所述的一种基于工作流的通用ETL工具的过程模型生成方法,其特征在于:所述步骤S1中的抽取、转换、装载模块中各个步骤之间的数据传输流程是一个生产者消费者模型,每一个节点对下一个节点而言是生产者,节点和节点之间采用一个阻塞队列传递数据,前一个节点根据其连线上的规则,将数据处理后写入阻塞队列,后一个节点一条一条的从阻塞队列里读取数据,所有的这些节点组成Transformation。
5.根据权利要求1所述的一种基于工作流的通用ETL工具的过程模型生成方法,其特征在于:所述步骤S2具体为:根据有向图的定义构建ETL模型工具的流程的有向图T=(V,E),其中V=Step∪D;所述Step为Transformation的所有功能单元;所述D为Step之间的数据、关系和参数;所述E为有向图的边,实际就表示过程。
6.根据权利要求1所述的一种基于工作流的通用ETL工具的过程模型生成方法,其特征在于:所述步骤S3中的八种变换规则具体包括:变换、分解、合并、串行化、并行化、添加还原点、分流和复制;
所述交换Swap(v1,v2)具体为:将节点v1和节点v2相互交换;
所述分解Split(v1+2,v1,v2)具体为:将节点v1+2分解为v1、v2;
所述合并Merge(v1,v2,v1+2)具体为:将节点v1、v2合并为v1+2;
所述串行化Factorize(v1,v2,v3,v1+2)具体为:将处于不同的数据流中,但是类型相同的节点v1、v2合并为一个新的节点v1+2;
所述并行化Distribute(v1,v2,v3,v1+2)具体为:将节点v1+2分解为两个类型相同的节点v1、v2,让节点v1、v2处于不同的数据流中;
所述添加还原点AddRecoveryPoint(v,vRP)具体为:在节点v处添加还原点vRP;
所述分流Partion(v1,v2,n)具体为:将节点v1、v2之间的数据流分为n份;
所述复制Replicate(v1,v2,n)具体为:将节点v1、v2之间的数据复制n份。
7.根据权利要求1所述的一种基于工作流的通用ETL工具的过程模型生成方法,其特征在于:所述步骤S4具体为:使用穷举法将所述的八种变换规则都代入与所述ETL模型工具对应的流程图T,然后比较,选出变换后时间最小的有向图。
8.根据权利要求7所述的一种基于工作流的通用ETL工具的过程模型生成方法,其特征在于:所述比较、选出变换后时间最小的有向图的具体过程为:使用open和close两个状态队列,来存储未访问和已访问的状态,利用SMIN来表示时间最小的状态,初始化时,让SMIN等于初始状态SG,open包含SG,close为空,对open队列里的所有状态S,首先将状态S出队列,然后S与SMIN进行比较,如果其时间小于SMIN,那么S为新的最小时间状态,再让S根据所述的八种变换规则产生新的状态S',如果S'既不属于open也不属于close,则将其送入队列open,然后将S送入close队列里,标记为已访问;不断重复上述步骤,直到open队列为空,从而实现优化整个ETL过程。
9.根据权利要求1所述的一种基于工作流的通用ETL工具的过程模型生成方法,其特征在于:在进行有向图的变换时,遵循以下规则:根据组成Transformation节点类型的不同,将Transformation总体上分为四类:普通Step组成的Transformation、包含分流节点的Transformation、包含还原点的Transformation、包含复制节点的Transformation;
(1)对于普通Transformation,其包括Swap、Split、Merge、Factorize和Distribute,只做相邻有向图之间的变换;
(2)对于包含分流节点的Transformation,在有并行化需求时,将DataStream分开在不同的物理处理器上处理,也就是所谓的分流或者并行处理;
(3)对于包含还原点的Transformation,当发生错误时,将当前的阻塞队列里的数据全部拷贝到硬盘里,将距离错误位置最近的还原点的数据读入程序,并且从这个还原点开始执行;由于并没有执行还原点之前的流程,所以从还原点开始执行要比重新执行整个流程要快;
(4)对于包含复制节点的Transformation,当对ETL流程的容错性要求高,而对效率的要求宽松时,采用复制ETL数据流,并将其多次执行的方法来用执行效率换取容错性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710536250.0A CN107391611B (zh) | 2017-07-04 | 2017-07-04 | 一种基于工作流的通用etl工具的过程模型生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710536250.0A CN107391611B (zh) | 2017-07-04 | 2017-07-04 | 一种基于工作流的通用etl工具的过程模型生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107391611A true CN107391611A (zh) | 2017-11-24 |
CN107391611B CN107391611B (zh) | 2019-11-12 |
Family
ID=60334772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710536250.0A Active CN107391611B (zh) | 2017-07-04 | 2017-07-04 | 一种基于工作流的通用etl工具的过程模型生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391611B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415740A (zh) * | 2018-03-09 | 2018-08-17 | 成都优易数据有限公司 | 一种应用于数据分析任务的工作流调度方法 |
CN108595480A (zh) * | 2018-03-13 | 2018-09-28 | 广州市优普科技有限公司 | 一种基于云计算的大数据etl工具系统及应用方法 |
CN109902117A (zh) * | 2019-02-19 | 2019-06-18 | 新华三大数据技术有限公司 | 业务系统分析方法和装置 |
CN111949653A (zh) * | 2020-07-03 | 2020-11-17 | 广州博依特智能信息科技有限公司 | 一种基于数据仓库hive的工业离线计算调度方法 |
CN112115191A (zh) * | 2020-09-22 | 2020-12-22 | 南京北斗创新应用科技研究院有限公司 | 一种大数据etl模型执行的分支优化方法 |
CN112181511A (zh) * | 2020-08-26 | 2021-01-05 | 北京大学 | 一种可执行的情报分析流交互配置生成方法 |
WO2023186515A1 (en) * | 2022-03-29 | 2023-10-05 | International Business Machines Corporation | Workflow transformation framework |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1886235A2 (en) * | 2005-05-16 | 2008-02-13 | Planview, Inc. | Method of using a directed graph, generating a display for a directed graph, and a system for use with the method |
CN103488537A (zh) * | 2012-06-14 | 2014-01-01 | 中国移动通信集团湖南有限公司 | 一种数据抽取、转换和加载etl的执行方法及装置 |
CN105046408A (zh) * | 2015-06-25 | 2015-11-11 | 国网山东省电力公司 | 一种可配置工作流的实现方法及系统 |
CN105183824A (zh) * | 2015-08-28 | 2015-12-23 | 重庆简悉大数据科技有限公司 | 数据整合方法及装置 |
-
2017
- 2017-07-04 CN CN201710536250.0A patent/CN107391611B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1886235A2 (en) * | 2005-05-16 | 2008-02-13 | Planview, Inc. | Method of using a directed graph, generating a display for a directed graph, and a system for use with the method |
CN103488537A (zh) * | 2012-06-14 | 2014-01-01 | 中国移动通信集团湖南有限公司 | 一种数据抽取、转换和加载etl的执行方法及装置 |
CN105046408A (zh) * | 2015-06-25 | 2015-11-11 | 国网山东省电力公司 | 一种可配置工作流的实现方法及系统 |
CN105183824A (zh) * | 2015-08-28 | 2015-12-23 | 重庆简悉大数据科技有限公司 | 数据整合方法及装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415740B (zh) * | 2018-03-09 | 2021-05-18 | 成都优易数据有限公司 | 一种应用于数据分析任务的工作流调度方法 |
CN108415740A (zh) * | 2018-03-09 | 2018-08-17 | 成都优易数据有限公司 | 一种应用于数据分析任务的工作流调度方法 |
CN108595480B (zh) * | 2018-03-13 | 2022-01-21 | 广州市优普科技有限公司 | 一种基于云计算的大数据etl工具系统及应用方法 |
CN108595480A (zh) * | 2018-03-13 | 2018-09-28 | 广州市优普科技有限公司 | 一种基于云计算的大数据etl工具系统及应用方法 |
CN109902117A (zh) * | 2019-02-19 | 2019-06-18 | 新华三大数据技术有限公司 | 业务系统分析方法和装置 |
CN109902117B (zh) * | 2019-02-19 | 2021-07-06 | 新华三大数据技术有限公司 | 业务系统分析方法和装置 |
CN111949653A (zh) * | 2020-07-03 | 2020-11-17 | 广州博依特智能信息科技有限公司 | 一种基于数据仓库hive的工业离线计算调度方法 |
CN112181511A (zh) * | 2020-08-26 | 2021-01-05 | 北京大学 | 一种可执行的情报分析流交互配置生成方法 |
CN112181511B (zh) * | 2020-08-26 | 2021-09-14 | 北京大学 | 一种可执行的情报分析流交互配置生成方法 |
CN112115191A (zh) * | 2020-09-22 | 2020-12-22 | 南京北斗创新应用科技研究院有限公司 | 一种大数据etl模型执行的分支优化方法 |
CN112115191B (zh) * | 2020-09-22 | 2022-02-15 | 南京北斗创新应用科技研究院有限公司 | 一种大数据etl模型执行的分支优化方法 |
WO2022062751A1 (zh) * | 2020-09-22 | 2022-03-31 | 南京北斗创新应用科技研究院有限公司 | 一种大数据etl模型执行的分支优化方法 |
WO2023186515A1 (en) * | 2022-03-29 | 2023-10-05 | International Business Machines Corporation | Workflow transformation framework |
Also Published As
Publication number | Publication date |
---|---|
CN107391611B (zh) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391611B (zh) | 一种基于工作流的通用etl工具的过程模型生成方法 | |
CN107590115A (zh) | 一种Word报告自动生成方法与装置 | |
CN110413690A (zh) | 数据库的数据同步方法、服务器、电子设备、存储介质 | |
CN103309904A (zh) | 一种生成数据仓库etl 代码的方法及装置 | |
CN105589968A (zh) | 数据汇总系统及方法 | |
CN112434024A (zh) | 面向关系型数据库的数据字典生成方法、装置、设备及介质 | |
Silva et al. | Integrating big data into the computing curricula | |
CN110737729A (zh) | 基于知识图谱理念和技术的工程图谱数据信息管理方法 | |
CN110490761A (zh) | 一种电网配网设备台账数据模型建模方法 | |
Zhang et al. | A framework of cloud-computing-based BIM service for building lifecycle | |
van Dongen et al. | EMiT: A process mining tool | |
CN107748748A (zh) | 水利水电技术标准全文检索系统 | |
CN110990907B (zh) | 基于特征-资源知识的船用柴油机关重件可制造性三级优化方法 | |
CN115062028B (zh) | 一种OLTP领域多表join查询的方法 | |
CN101609463B (zh) | 建立文单之间数据转换关系的方法及文单之间数据迁移的方法 | |
CN105930483A (zh) | 对象格式生成方法、装置及系统 | |
CN110851515A (zh) | 一种基于Spark分布式环境下的大数据ETL模型执行方法及介质 | |
CN111680337B (zh) | Pdm系统产品设计需求信息获取方法及系统 | |
CN114817226A (zh) | 政府数据的处理方法及装置 | |
CN116450637A (zh) | 一种数据管理方法、装置、电子设备以及存储介质 | |
Oliveira et al. | Overcoming traditional ETL systems architectural problems using a service‐oriented approach | |
OUKHOUYA et al. | Automating Data Warehouse Design With MDA Approach Using NoSQL and Relational Systems | |
Keswani et al. | Enhanced approach to attain competent Big Data pre-processing | |
CN111861401A (zh) | 一种行业资质管理及在线审批系统的技术方案 | |
CN110647518A (zh) | 一种数据源融合计算方法、组件及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |