CN107391611A - 一种基于工作流的通用etl工具的过程模型生成方法 - Google Patents

一种基于工作流的通用etl工具的过程模型生成方法 Download PDF

Info

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
Application number
CN201710536250.0A
Other languages
English (en)
Other versions
CN107391611B (zh
Inventor
周文欢
张天宝
徐衍
吴同凯
方鹏
初日辉
徐苏君
蔡雷鸣
花子岚
陈梵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing SAC Automation Co Ltd
Original Assignee
Nanjing SAC Automation Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing SAC Automation Co Ltd filed Critical Nanjing SAC Automation Co Ltd
Priority to CN201710536250.0A priority Critical patent/CN107391611B/zh
Publication of CN107391611A publication Critical patent/CN107391611A/zh
Application granted granted Critical
Publication of CN107391611B publication Critical patent/CN107391611B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, 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工具的过程模型生成方法
技术领域
本发明属于数据处理技术领域,具体涉及一种基于工作流的通用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数据流,并将其多次执行的方法来用执行效率换取容错性。
CN201710536250.0A 2017-07-04 2017-07-04 一种基于工作流的通用etl工具的过程模型生成方法 Active CN107391611B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 重庆简悉大数据科技有限公司 数据整合方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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