CN103488537A - 一种数据抽取、转换和加载etl的执行方法及装置 - Google Patents
一种数据抽取、转换和加载etl的执行方法及装置 Download PDFInfo
- Publication number
- CN103488537A CN103488537A CN201210196635.4A CN201210196635A CN103488537A CN 103488537 A CN103488537 A CN 103488537A CN 201210196635 A CN201210196635 A CN 201210196635A CN 103488537 A CN103488537 A CN 103488537A
- Authority
- CN
- China
- Prior art keywords
- cloud computing
- basic activity
- combined moving
- unit
- activity unit
- 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
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种数据抽取、转换和加载ETL的执行方法及装置,该方法包括:针对一个ETL工作流,将组成该ETL工作流的基本活动单元构建成至少一个组合活动集合;确定每个组合活动集合对应的云计算映射集合,并将确定的至少一个云计算映射集合转换为与云计算环境匹配的可执行代码;将生成的可执行代码加载到云计算环境中执行,采用本发明这里提出的技术方案,能够较好地节省I/O处理资源,提高ETL工作流的处理效率。
Description
技术领域
本发明涉及通信技术领域,尤其是涉及一种ETL(Extraction-Transformation-Loading,数据抽取、转换和加载)的执行方法及装置。
背景技术
ETL是构建数据仓库比较重要的一个部分。其按照预先设计好的规则,提供对不同数据源的数据进行抽取、转换和清洗,集成和净化来自于多个不同系统的数据,最后将转换完的数据增量或者全部数据载入目标数据库中。ETL的处理过程如图1所示,其从不同的异构数据源流得到相同的目标数据,作为联系分析处理、数据挖掘的基础。
现有技术中,一般采用配置的方法实现ETL工作流的创建,该方法可以设置ETL流程的执行顺序和依赖关系,以及创建或更新ETL工作流,从而让流程定制者能够对自身提交的ETL工作流进行管理。ETL工作流由基本活动单元组成,现有技术中ETL工作流的优化需要通过有经验的技术人员来实现,技术人员按照预设规则对基本活动单元分别进行操作处理,然后将处理后的ETL工作流采用并发方式进行ETL处理。例如技术人员将ETL流程部署到一个计算机集群环境中,然后将ETL流程分发到多台计算机上进行并行执行。现有技术中通过人工的方式对ETL进行处理,依赖于技术人员的专业知识,处理效率比较低,局限性较强,并且现有技术中只是简单的由技术人员将ETL工作流分发到多台计算机中进行处理,算法在执行过程中需要占用较多的I/O处理资源,并且现有技术中这种基于集群的处理方式还不能有效的运用到异构网络的通信环境中。
综上所述,现有技术中提出的通过人工的方式实现ETL工作流的处理,局限性较强,需要占用较多的I/O处理资源,处理效率比较低。
发明内容
本发明实施例提供一种数据抽取、转换和加载ETL的执行方法及装置,能够较好地节省I/O处理资源,提高处理效率。
为解决上述问题,本发明实施例提供了一种数据抽取、转换和加载ETL的执行方法,包括:针对一个ETL工作流,将组成该ETL工作流的基本活动单元构建成至少一个组合活动集合;确定每个组合活动集合对应的云计算映射集合,并将确定的至少一个云计算映射集合转换为与云计算环境匹配的可执行代码;将生成的可执行代码加载到云计算环境中执行。
为解决上述问题,本发明实施例还提供了一种数据抽取、转换和加载ETL的执行装置,包括:组合活动集合构建单元,用于针对一个ETL工作流,将组成该ETL工作流的基本活动单元构建成至少一个组合活动集合;可执行代码确定单元,用于确定组合活动集合构建单元构建的每个组合活动集合对应的云计算映射集合,并将确定的至少一个云计算映射集合转换为与云计算环境匹配的可执行代码;加载单元,用于将可执行代码确定单元生成的可执行代码加载到云计算环境中执行。
采用上述技术方案,针对一个ETL工作流,将组成该ETL工作流的基本活动单元构建成至少一个组合活动集合,然后在构建的组合活动集合中确定对应的云计算映射集合,并将确定出的云计算映射集合转换为与云计算环境匹配的可执行代码,最后将可执行代码加载到云计算环境中执行,从而能够自动的对ETL工作流进行一系列处理,避免了现有技术中存在的由人工处理ETL工作流需要依赖于专业知识的局限性,能够较好地节省I/O处理资源,提高处理效率。
附图说明
图1为现有技术中,提出的ETL处理过程示意图;
图2为本发明实施例一中,提出的一种ETL执行系统架构图;
图3a为本发明实施例一中,提出的ETL的执行原理示意图;
图3b为本发明实施例一中,提出的ETL的执行方法流程图;
图4为本发明实施例一中,提出的构建的一种组合活动集合示意图;
图5a为本发明实施例一中,提出的将基本活动单元按照交换的方式进行等价变换示意图;
图5b为本发明实施例一中,提出的将基本活动单元按照合并的方式进行等价变换示意图;
图5c为本发明实施例一中,提出的将基本活动单元按照复制的方式进行等价变换示意图;
图6a为本发明实施例一中,提出的分散-合并计算模式示意图;
图6b为本发明实施例一中,提出的优化后的分散-合并计算模式示意图;
图7为本发明实施例二中,提出的ETL的执行装置结构组成图。
具体实施方式
针对现有技术中存在的ETL的执行方法需要通过人工的方式实现,局限性较强,并且在对ETL执行并发处理时,需要占用较多的I/O处理资源,使得处理效率比较低的问题,本发明实施例这里提出一种ETL的执行方法,对提交的ETL工作流,将组成该ETL工作流的基本活动单元构建成至少一个组合活动集合,然后确定得到的组合活动集合对应的云计算映射集合,并将确定出的云计算映射集合转换为与云计算环境匹配的可执行代码并加载到云计算环境中进行执行。本发明这里提出的技术方案,适用于每个用户群体,普适性较强,并且,能够较好地节省I/O处理资源,提供处理效率。
下面将结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细地阐述。
实施例一
本发明实施例一这里提出一种ETL执行系统以及基于该系统架构的ETL执行方法,其具体架构如图2所示,该系统是基于云环境部署,能够较好地利用云环境提供的计算能力。具体包括应用层、模板层和优化层。
其中,应用层主要用于支持用户通过基于浏览器的方式创建ETL工作流,模板层用于提供创建ETL工作流所使用的基本活动单元模板,如投影、选择等基本活动单元模板。其中,基本活动单元模板可以存储在活动分类管理库中进行管理。优化层用于实现对用户提交的ETL工作流进行优化,并将优化后的ETL工作流加载到云环境中执行。
基于图2所示的系统架构,本发明实施例一这里提出一种ETL的执行方法,其原理如图3a所示,包括ETL工作流创建、ETL工作流优化、ETL工作流加载具体流程如图3b所示,包括:
步骤31,用户通过基于浏览器的方式创建ETL工作流并提交。
其中,在图2所示的系统架构中,可以将模板层提供的针对具体业务的基本活动单元模板存储在活动分类管理库中进行管理。用户可以在基本活动单元管理库中选择和业务相关的ETL组件创建ETL工作流,并将创建的ETL工作流提交。
步骤32,针对接收到的一个ETL工作流,将组成该ETL工作流的基本活动单元构建成至少一个组合活动集合。
其中,对于ETL中所有的基本活动单元都可以按照下述定义方式对其进行分类管理,这样可以对接收到的ETL工作流中基本活动单元类别进行识别。
具体地,基本活动单元(EA),是表示对输入的记录集进行一次原子操作,得到一个输出的记录集。基本活动单元EA是一个四元组,即EA={ID,I,O,S,C},其中ID是组成ELT工作流活动的唯一标识,并且ID也用于表示该基本活动单元在一个ETL工作流中的执行位置;I为输入数据的元数据;O为输出数据的元数据;C为基本活动单元的执行代价;S表示输入元数据变换到输出元数据。其中,可以将ETL工作流中包含的基本活动单元分为功能活动集合(Function Schema)和产生活动集合两类(Generated Schema):
功能活动集合,表示在ETL工作流中,针对同一数据源进行操作的所有基本活动单元的集合,例如,基本活动单元的元数据为[a,b,c,d],而在基本活动单元中被处理的属性为b和c,则输出的元数据为[b,c],例如ETL工作流中的投影、选择等基本活动单元。
产生活动集合:表示产生新属性的基本活动单元的集合。例如,基本活动单元输入的元数据为[a,b,c,d],在基本活动单元的执行过程中产生了新的属性为e,则产生属性集合为[e]。例如基本活动单元中的连接、统计等基本活动单元。
其中,可以通过分类处理方式将组成该ETL工作流的所有基本活动单元划分为功能活动集合和产生活动集合。然后将功能活动集合包含的基本活动单元和产生活动集合中包含的基本活动单元进行组合,构建成至少一个组合活动集合。其中,每个组合活动集合中包含至少一个功能活动集合中的基本活动单元,且只包含一个产生活动集合中的基本活动单元,且产生活动集合中的基本活动单元在该组成活动集合的尾端。例如图4所示,为构建的组合活动集合。
具体地,组合活动集合中包含的每个元素可以称之为组合活动,组合活动是指将几个基本活动单元进行组合来完成对ETL工作流中同一个数据源的处理过程。通过构建组合活动集合,如图4所示,可以将ETL工作流分解成若干个大粒度的组合。并且,通过构建组合活动集合,可以将ETL工作流分解为不同的层次,分层的方式可以为:如果组合活动集合中包含至少一个元素,则层次就加1。例如图4所示的ETL工作流则可以分为两个层次,第一个层次包含CEA包含CEA3,第二层次包含CEA1和CEA2。
通过分类处理的方式可将ETL工作流进行组合活动集合的构建以及层次的分解。其中,对于将ETL工作流的基本活动单元进行组合活动结合的构建,可以实现将若干个基本活动单元串联起来,使ETL工作与云计算环境中的计算模型相匹配,有助于减少计算时产生的I/O开销,提高ETL工作流的执行效率。其次,通过组合活动集合的构建,可采用分层的方法将接收到的ETL工作流转换为规模更小的处理单元。
步骤33,确定构建的每个组合活动集合对应的云计算映射集合,并将确定的至少一个云计算映射集合转换为与云计算环境匹配的可执行代码。
其中,若步骤32中只构建成一个组合活动集合,具体处理方式可以但不限于有以下两种:
第一种方式:将构建的一个组合活动集合作为云计算映射集合,然后将全部云计算映射集合转换为与云计算环境匹配的可执行代码。
第二种方式:将构建的一个组合活动集合进行等价变换,得到该组合活动集合对应的云计算映射集合,然后将得到的全部云计算映射集合分别转换为与云计算环境匹配的可执行代码。
其中,若步骤32中构建成至少两个组合活动集合,则对每个所述组合活动集合分别进行等价变换,得到每个组合活动集合对应的云计算映射集合,然后从确定的所有云计算映射集合中选择满足预设条件的云计算映射集合,并将选择出的云计算映射集合转换为与云计算环境匹配的可执行代码。
具体地,可以基于动态规划算法从确定的所有云计算映射集合中选择满足预设条件的云计算映射集合。首先确定每个云计算映射集合对应的执行代价,然后根据确定出的执行代价,选择出满足预设条件的云计算映射集合。其中,代价是组成ETL工作流的基本活动单元的数据量的大小。执行代价是指处理一个基本活动单元所需要的资源开销。
具体地,对每个组合活动集合分别进行等价变换,包括:将每个组合活动集合中满足至少一个等价变换条件的基本活动单元,按照满足的等价变换条件进行等价变换。将ETL工作流中的基本活动单元进行不同方式的等价变换,也就是说,对于待执行的ETL工作流,通过等价变换,能够确定该ETL工作流全部可能的处理方式,然后再所有的处理方式中,寻找处理代价最优的方式映射到云计算环境中。即将基本活动单元进行等价变换之后形成不同的状态,由不同的状态构成状态空间,此步骤也相当于状态空间的构建。状态空间的构建,是指将ETL流程图按照预设的关系,通过等价变换完成状态的转换,构成状态空间。
其中,ETL流程图(ETLG)是指ETL工作流可以看作是一个有向无环图G。G中节点表示基本活动单元EA,G中的边表示节点之间的关系PR。即ETLG(V,E),V=EA,E=PR。
关系(PR):PR表示提供(输入输出)关系,即一条由基本活动单元EA1射出并射入基本活动单元EA2的边,代表基本活动单元EA2从基本活动单元EA1处接收数据并进行下一步的处理。
状态(State):表示一个ETLG。若ETLG通过等价变换后得到ETLG1,则ETLG与ETLG1都称为该ETL工作流图的状态,而一个状态State的代价为:
状态转换:是用于通过一个ETLG产生新的等价的ETLG。
具体地,对每个组合活动集合分别进行等价变换,包括:将每个组合活动集合中满足至少一个等价变换条件的基本活动单元,按照满足的等价变换条件进行等价变换。其中,将每个组合活动集合中满足至少一个等价变换条件的基本活动单元,按照满足的等价变换条件进行等价变换,变换方式可以但不限于包括以下三种:
第一种:将基本活动单元按照交换的方式进行等价变换:若至少两个基本活动单元归属于同一个组合活动集合,且所述基本活动单元表征的是同一数据源,且交换前的基本活动单元和执行交换后的基本活动单元的输出结果相同,则确定至少两个基本活动单元满足等价变换条件,将所述基本活动单元的执行顺序进行交换。即:SWAP(交换)是指交换ETLG中两个单输入基本活动单元EA的执行顺序,如图5a所示,两个基本活动单元EA,EA1,EA2能够进行交换操作必须满足以下条件:
a.EA1,EA2∈CEAi,即EA1,EA2在同一个组合活动集合中,且操作的是同一数据源;
b. RS1=RS2,即EA1,EA2交换前后输出相同;
第二种:将基本活动单元按照合并的方式进行等价变换:若至少两个基本活动单元归属于同一个组合活动集合,且所述基本活动单元之间满足顺序的处理规则,则确定至少两个基本活动单元满足等价变换条件,将在不改变执行顺序的情况下,将所述基本活动单元执行合并。即MER(合并),时在不改变基本活动单元在ETL工作流中执行顺序的情况下将在同一组合活动集合中的多个线性相关的基本活动单元EA的按照规则进行合并,如图5b所示,能够进行合并操作的多个EA必须满足以下条件:
EA1,EA2,...,EAm∈CEAi,即合并前的基本活动单元EA1,EA2,...,EAm属于同一个组合活动集合CEA。
第三种:将基本活动单元按照复制的方式进行等价变换,包括:
若一个基本活动单元能够同时归属于至少两个组合活动集合,则确定该基本活动单元满足等价变换条件,将所述基本活动单元复制到至少两个能够同时被执行的组合活动集合中。即:复制是将一个基本活动单元EAi复制成多个相同的EA,然后分别分配在能够同时被执行的不同的组合活动集合中。例如,如果两个组合活动集合在ETL工作流执行过程中,可以同时被执行,则这两个组合活动集合可以称之为并行处理流程,也可以称之为ETL工作流执行过程中的并行流程。如图5c所示,一个EA能够进行复制操作必须满足以下条件:
即基本活动单元EA在State中并行流程之后,且EA中处理的属性来源于在它之前的并行活动分支中。具体地,如图5c所示,假设基本活动单元EA1和EA2在具体ETL执行过程中,分属于并发执行的处理流程,执行之后得到的输出将经过EA3处理,EA3的输出将经过EA4处理。由于EA4满足复制条件,因此,可将其分别复制到EA1和EA2之后来执行。
一种较佳地实现方式,本发明实施例一这里提出的技术方案中,可以采用下述方式构建状态空间:其中,变换函数F(State,f)表示对ETLG的一次转换操作,参数State为要进行变换的ETLG,f为变换操作,f={SWAP,DIS,MER}(交换、分解、合并)。
等价状态:一个State1经过一系列变化后得到一个新的State2,若State1和State2使用相同的输入能够得到相同的输出,即:
State2=F(State1,f),
outputdata1=State1(inputdata),
outputdata2=State2(inputdata),
outputdata1=outputdata2
对于每个状态空间,其包含的组合活动集合CEA数目是相同的,这可由组合活动集合CEA的划分方式来推断,即每个组合活动集合CEA的末端必包含一个产生活动,由于等价变换不改变产生活动,则每个状态空间包含相同的组合活动集合CEA数目。
状态空间(Statespace):Statespace={State0,F(Statei,f)|1≤i≤n,State1=F(State0,f)}即由初始状态State0开始进行变换得到的所有等价State的集合。
状态选择:从由初始状态State0开始进行变换得到的Statespace中找到满足预设条件的Statemin
C(Statemin)=Min{C(Statei)|0≤i≤n,Statei∈Statespace}
本发明实施例一这里提出的技术方案中,ETL工作流的优化的原则是保证状态的开销最小这个全局最优,而全局最优原则可将其转化为组合活动集合CEA中处理开销最少的局部最优原则,所以,C(Statemin)问题可以划分成规模更小的问题,基于比,本发明实施例这里提出的技术方案,可以采用动态规划的方法来获取C(Statemin)。即基于动态规划算法从确定的所有云计算映射集合中选择满足预设条件的云计算映射集合。
一种较佳地实现方式,基于动态规划算法从确定的所有云计算映射集合中选择满足预设条件的云计算映射集合,可以采用下述编程思想:
输入:初始状态ETLG
输出:最优状态Statemin
具体过程为:
步骤一:将ETLG按照组合活动集合CEA的构建分方法进行基本活动单元的分组,形成一个包含多个组合活动集合CEA的多层次流程,并对层次结构由包含关系进行编号,且对每层中包含的组合活动按照其执行的先后顺序进行编号。
步骤二:对每个CEA中满足变换条件的基本活动单元EA进行变换,形成一个新的CEA’,则该CEA’构成一个新的状态Statenew中的一个活动组合,且CEA’和CEA可认为是不同状态中的同一阶段。
步骤三:获取所有可能的状态集合{State0,State1,...,Staten},并计算每个状态中各个CEA的代价C(CEA)。
其中,本发明实施例一这里提及的预设条件,可以由执行代价来决定,例如执行代价满足预设的阈值或者任意选取若干。
步骤34,将生成的可执行代码加载到云计算环境中执行。
其中,云计算环境的映射是将最优处理方式转化为云环境的计算模型。ETL工作流在云计算环境中执行时,分散方法主要是完成活动所数据的处理并对其分发操作,通过该方法数据将按照某种方式分散到多台计算机上,然后通过合并方法对分发结果进行整合。通常情况下,ETL工作流中每个基本活动单元在云计算环境下的执行都需要通过分散和合并方法的处理,每个基本活动单元在完成处理后,都需要将结果存储到云环境的分布式文件系统中,因此,后面的活动的分散方法将从分布式文件系统中读取数据,其执行过程如图6a所示,因此状态中的CEA可采用先分散再合并的方式来处理,但由于CEA的处理是针对同一数据源,因此其很适合于云计算环境中多个活动的规则集中在一组连续的分散计算模型中,然后在最后一个活动时执行合并计算的这种模式,其执行过程如图6b所示,通过这种转变可以有效的降低云计算环境中磁盘和数据传递的消耗,提高计算效率。
实施例二
相应地,本发明实施例二这里提出一种ETL的执行装置,如图7所示,包括:
组合活动集合构建单元701,用于针对一个ETL工作流,将组成该ETL工作流的基本活动单元构建成至少一个组合活动集合。
可执行代码确定单元702,用于确定组合活动集合构建单元701构建的每个组合活动集合对应的云计算映射集合,并将确定的至少一个云计算映射集合转换为与云计算环境匹配的可执行代码。
具体地,若组合活动集合单元701构建成一个组合活动集合,上述可执行代码确定单元702,具体用于将构建的组合活动集合作为云计算映射集合;将全部云计算映射集合转换为与云计算环境匹配的可执行代码。
具体地,若组合活动集合单元701构建成至少两个组合活动集合;上述可执行代码确定单元702,具体用于对每个所述组合活动分别进行等价变换,得到每个组合活动对应的云计算映射集合;从确定的所有云计算映射集合中选择满足预设条件的云计算映射集合,并将选择出的云计算映射集合转换为与云计算环境匹配的可执行代码。
具体地,上述可执行代码确定单元702,具体用于基于动态规划算法从确定的所有云计算映射集合中选择满足预设条件的云计算映射集合。
具体地,上述可执行代码确定单元702,具体用于确定每个云计算映射集合对应的执行代价;根据确定出的执行代价,选择出满足预设条件的云计算映射集合。
具体地,上述可执行代码确定单元702,具体用于将每个组合活动集合中满足至少一个等价变换条件的基本活动单元,按照满足的等价变换条件进行等价变换。
具体地,上述可执行代码确定单元702,具体用于若至少两个基本活动单元归属于同一个组合活动集合,且所述基本活动单元表征的是同一数据源,且交换前的基本活动单元和执行交换后的基本活动单元的输出结果相同,则确定至少两个基本活动单元满足等价变换条件,将所述基本活动单元的执行顺序进行交换。
具体地,上述可执行代码确定单元702,具体用于若至少两个基本活动单元归属于同一个组合活动集合,且所述基本活动单元之间满足线性相关规则,则确定至少两个基本活动单元满足等价变换条件,将在不改变执行顺序的情况下,将所述基本活动单元执行合并。
具体地,上述可执行代码确定单元702,具体用于若一个基本活动单元能够同时归属于至少两个组合活动集合,则确定该基本活动单元满足等价变换条件,将所述基本活动单元复制到至少两个能够同时被执行的组合活动集合中。
加载单元703,用于将可执行代码确定单元生成的可执行代码加载到云计算环境中执行。
其中,上述装置中的组合活动集合构建单元701,具体用于通过分类处理将组成该ETL工作流的基本活动数据划分为功能活动集合和产生活动集合;将功能活动集合包含的基本活动单元和产生活动集合中包含的基本活动单元进行组合,构建成至少一个组合活动集合,其中,每个组合活动中包含至少一个功能活动集合中的基本活动单元,且只包含一个产生活动集合中的基本活动单元,且产生活动集合中的基本活动单元在该组成活动集合的尾端。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (20)
1.一种数据抽取、转换和加载ETL的执行方法,其特征在于,包括:
针对一个ETL工作流,将组成该ETL工作流的基本活动单元构建成至少一个组合活动集合;
确定每个组合活动集合对应的云计算映射集合,并将确定的至少一个云计算映射集合转换为与云计算环境匹配的可执行代码;
将生成的可执行代码加载到云计算环境中执行。
2.如权利要求1所述的方法,其特征在于,将组成该ETL工作流的基本活动单元构建成一个组合活动集合时,确定每个组合活动集合对应的云计算映射集合,包括:
将构建的组合活动集合作为云计算映射集合;
所述将确定的至少一个云计算映射集合转换为与云计算环境匹配的可执行代码,包括:
将全部云计算映射集合分别转换为与云计算环境匹配的可执行代码。
3.如权利要求1所述的方法,其特征在于,将组成该ETL工作流的基本活动单元构建成至少两个组合活动集合时,确定每个组合活动集合对应的云计算映射集合,包括:
对每个所述组合活动集合分别进行等价变换,得到每个组合活动集合对应的云计算映射集合;
所述将确定的至少一个云计算映射集合转换为与云计算环境匹配的可执行代码,包括:
从确定的所有云计算映射集合中选择满足预设条件的云计算映射集合,并将选择出的云计算映射集合转换为与云计算环境匹配的可执行代码。
4.如权利要求3所述的方法,其特征在于,从确定的所有云计算映射集合中选择满足预设条件的云计算映射集合,包括:
基于动态规划算法从确定的所有云计算映射集合中选择满足预设条件的云计算映射集合。
5.如权利要求4所述的方法,其特征在于,从确定的所有云计算映射集合中选择满足预设条件的云计算映射集合,包括:
确定每个云计算映射集合对应的执行代价;
根据确定出的执行代价,选择出满足预设条件的云计算映射集合。
6.如权利要求3所述的方法,其特征在于,对每个所述组合活动集合分别进行等价变换,包括:
将每个组合活动集合中满足至少一个等价变换条件的基本活动单元,按照满足的等价变换条件进行等价变换。
7.如权利要求6所述的方法,其特征在于,将每个组合活动集合中满足至少一个等价变换条件的基本活动单元,按照满足的等价变换条件进行等价变换,包括:
若至少两个基本活动单元归属于同一个组合活动集合,且所述基本活动单元表征的是同一数据源,且交换前的基本活动单元和执行交换后的基本活动单元的输出结果相同,则确定至少两个基本活动单元满足等价变换条件,将所述基本活动单元的执行顺序进行交换。
8.如权利要求6所述的方法,其特征在于,将每个组合活动集合中满足至少一个等价变换条件的基本活动单元,按照满足的等价变换条件进行等价变换,包括:
若至少两个基本活动单元归属于同一个组合活动集合,且所述基本活动单元之间满足线性相关规则,则确定至少两个基本活动单元满足等价变换条件,将在不改变执行顺序的情况下,将所述基本活动单元执行合并。
9.如权利要求6所述的方法,其特征在于,将每个组合活动集合中满足至少一个等价变换条件的基本活动单元,按照满足的等价变换条件进行等价变换,包括:
若一个基本活动单元能够同时归属于至少两个组合活动集合,则确定该基本活动单元满足等价变换条件,将所述基本活动单元复制到至少两个能够同步执行的组合活动集合中。
10.如权利要求1~9任一所述的方法,其特征在于,所述将组成该ETL工作流的基本活动单元构建成至少一个组合活动集合,包括:
通过分类处理将组成该ETL工作流的基本活动数据划分为功能活动集合和产生活动集合;
将功能活动集合包含的基本活动单元和产生活动集合中包含的基本活动单元进行组合,构建成至少一个组合活动集合,其中,每个组合活动集合中包含至少一个功能活动集合中的基本活动单元,且包含一个产生活动集合中的基本活动单元,且产生活动集合中的基本活动单元在该组成活动集合的尾端。
11.一种数据抽取、转换和加载ETL的执行装置,其特征在于,包括:
组合活动集合构建单元,用于针对一个ETL工作流,将组成该ETL工作流的基本活动单元构建成至少一个组合活动集合;
可执行代码确定单元,用于确定组合活动集合构建单元构建的每个组合活动集合对应的云计算映射集合,并将确定的至少一个云计算映射集合转换为与云计算环境匹配的可执行代码;
加载单元,用于将可执行代码确定单元生成的可执行代码加载到云计算环境中执行。
12.如权利要求11所述的装置,其特征在于,将组成该ETL工作流的基本活动单元构建成一个组合活动集合时,所述可执行代码确定单元,具体用于将构建的组合活动集合作为云计算映射集合;将全部云计算映射集合分别转换为与云计算环境匹配的可执行代码。
13.如权利要求11所述的装置,其特征在于,将组成该ETL工作流的基本活动单元构建成至少两个组合活动集合时,所述可执行代码确定单元,具体用于对每个所述组合活动集合分别进行等价变换,得到每个组合活动集合对应的云计算映射集合;从确定的所有云计算映射集合中选择满足预设条件的云计算映射集合,并将选择出的云计算映射集合转换为与云计算环境匹配的可执行代码。
14.如权利要求13所述的装置,其特征在于,所述可执行代码确定单元,具体用于基于动态规划算法从确定的所有云计算映射集合中选择满足预设条件的云计算映射集合。
15.如权利要求14所述的装置,其特征在于,所述可执行代码确定单元,具体用于确定每个云计算映射集合对应的执行代价;根据确定出的执行代价,选择出满足预设条件的云计算映射集合。
16.如权利要求13所述的装置,其特征在于,所述可执行代码确定单元,具体用于将每个组合活动集合中满足至少一个等价变换条件的基本活动单元,按照满足的等价变换条件进行等价变换。
17.如权利要求16所述的装置,其特征在于,所述可执行代码确定单元,具体用于若至少两个基本活动单元归属于同一个组合活动集合,且所述基本活动单元表征的是同一数据源,且交换前的基本活动单元和执行交换后的基本活动单元的输出结果相同,则确定至少两个基本活动单元满足等价变换条件,将所述基本活动单元的执行顺序进行交换。
18.如权利要求16所述的装置,其特征在于,所述可执行代码确定单元,具体用于若至少两个基本活动单元归属于同一个组合活动集合,且所述基本活动单元之间满足线性相关规则,则确定至少两个基本活动单元满足等价变换条件,将在不改变执行顺序的情况下,将所述基本活动单元执行合并。
19.如权利要求16所述的装置,其特征在于,所述可执行代码确定单元,具体用于若一个基本活动单元能够同时归属于至少两个组合活动集合,则确定该基本活动单元满足等价变换条件,将所述基本活动单元复制到至少两个能够同步执行的组合活动集合中。
20.如权利要求11~19任一所述的装置,其特征在于,所述组合活动集合构建单元,具体用于通过分类处理将组成该ETL工作流的基本活动数据划分为功能活动集合和产生活动集合;将功能活动集合包含的基本活动单元和产生活动集合中包含的基本活动单元进行组合,构建成至少一个组合活动集合,其中,每个组合活动集合中包含至少一个功能活动集合中的基本活动单元,且包含一个产生活动集合中的基本活动单元,且产生活动集合中的基本活动单元在该组成活动集合的尾端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210196635.4A CN103488537B (zh) | 2012-06-14 | 2012-06-14 | 一种数据抽取、转换和加载etl的执行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210196635.4A CN103488537B (zh) | 2012-06-14 | 2012-06-14 | 一种数据抽取、转换和加载etl的执行方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103488537A true CN103488537A (zh) | 2014-01-01 |
CN103488537B CN103488537B (zh) | 2017-02-01 |
Family
ID=49828793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210196635.4A Active CN103488537B (zh) | 2012-06-14 | 2012-06-14 | 一种数据抽取、转换和加载etl的执行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103488537B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038177A (zh) * | 2016-02-03 | 2017-08-11 | 维布络有限公司 | 自动生成抽取-转换-加载代码的方法和装置 |
CN107391611A (zh) * | 2017-07-04 | 2017-11-24 | 南京国电南自电网自动化有限公司 | 一种基于工作流的通用etl工具的过程模型生成方法 |
CN107491662A (zh) * | 2017-10-09 | 2017-12-19 | 上海德衡数据科技有限公司 | 一种基于元数据的智能化区域移动医疗集成数据中心系统架构 |
CN107545140A (zh) * | 2017-08-31 | 2018-01-05 | 上海德衡数据科技有限公司 | 一种智能化区域急救医疗集成数据中心系统原型 |
CN107563117A (zh) * | 2017-08-31 | 2018-01-09 | 上海德衡数据科技有限公司 | 一种基于软件定义的智能化区域急救医疗集成数据中心系统原型 |
CN107563925A (zh) * | 2017-08-31 | 2018-01-09 | 上海德衡数据科技有限公司 | 一种智能化区域急救医疗集成数据中心系统架构 |
CN107610760A (zh) * | 2017-08-31 | 2018-01-19 | 上海德衡数据科技有限公司 | 一种基于软件定义的智能化区域急救医疗集成数据中心系统架构 |
CN107609336A (zh) * | 2017-10-09 | 2018-01-19 | 上海德衡数据科技有限公司 | 一种基于软件定义的智能化区域移动医疗元数据集成数据中心系统原型 |
CN109308290A (zh) * | 2018-08-06 | 2019-02-05 | 国网安徽省电力有限公司信息通信分公司 | 一种基于cim的高效数据清洗转换方法 |
CN109800226A (zh) * | 2018-12-25 | 2019-05-24 | 北京明略软件系统有限公司 | 一种数据治理中的任务管理方法及装置 |
CN110023923A (zh) * | 2016-11-27 | 2019-07-16 | 亚马逊科技公司 | 生成数据变换工作流 |
CN111061803A (zh) * | 2019-12-30 | 2020-04-24 | 北京三快在线科技有限公司 | 任务处理方法、装置、设备及存储介质 |
US10701140B2 (en) | 2015-10-08 | 2020-06-30 | International Business Machines Corporation | Automated ETL resource provisioner |
CN111552730A (zh) * | 2020-04-28 | 2020-08-18 | 杭州数梦工场科技有限公司 | 数据分发方法、装置、电子设备、存储介质 |
CN114385137A (zh) * | 2021-12-29 | 2022-04-22 | 武汉达梦数据库股份有限公司 | 一种Flink框架运行ETL的流程方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1684069A (zh) * | 2004-04-13 | 2005-10-19 | 微软公司 | 计算机化财务系统的提取、变换和加载设计器模块 |
US20090177671A1 (en) * | 2008-01-03 | 2009-07-09 | Accenture Global Services Gmbh | System and method for automating etl application |
CN102236578A (zh) * | 2010-05-07 | 2011-11-09 | 微软公司 | 分布式工作流执行 |
CN102291440A (zh) * | 2011-07-28 | 2011-12-21 | 清华大学 | 一种云环境下规则优化方法及装置 |
-
2012
- 2012-06-14 CN CN201210196635.4A patent/CN103488537B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1684069A (zh) * | 2004-04-13 | 2005-10-19 | 微软公司 | 计算机化财务系统的提取、变换和加载设计器模块 |
US20090177671A1 (en) * | 2008-01-03 | 2009-07-09 | Accenture Global Services Gmbh | System and method for automating etl application |
CN102236578A (zh) * | 2010-05-07 | 2011-11-09 | 微软公司 | 分布式工作流执行 |
CN102291440A (zh) * | 2011-07-28 | 2011-12-21 | 清华大学 | 一种云环境下规则优化方法及装置 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10771538B2 (en) | 2015-10-08 | 2020-09-08 | International Business Machines Corporation | Automated ETL resource provisioner |
US10757178B2 (en) | 2015-10-08 | 2020-08-25 | International Business Machines Corporation | Automated ETL resource provisioner |
US10701140B2 (en) | 2015-10-08 | 2020-06-30 | International Business Machines Corporation | Automated ETL resource provisioner |
CN107038177A (zh) * | 2016-02-03 | 2017-08-11 | 维布络有限公司 | 自动生成抽取-转换-加载代码的方法和装置 |
CN110023923A (zh) * | 2016-11-27 | 2019-07-16 | 亚马逊科技公司 | 生成数据变换工作流 |
CN110023923B (zh) * | 2016-11-27 | 2024-05-28 | 亚马逊科技公司 | 生成数据变换工作流 |
US11797558B2 (en) | 2016-11-27 | 2023-10-24 | Amazon Technologies, Inc. | Generating data transformation workflows |
CN107391611B (zh) * | 2017-07-04 | 2019-11-12 | 南京国电南自电网自动化有限公司 | 一种基于工作流的通用etl工具的过程模型生成方法 |
CN107391611A (zh) * | 2017-07-04 | 2017-11-24 | 南京国电南自电网自动化有限公司 | 一种基于工作流的通用etl工具的过程模型生成方法 |
CN107610760A (zh) * | 2017-08-31 | 2018-01-19 | 上海德衡数据科技有限公司 | 一种基于软件定义的智能化区域急救医疗集成数据中心系统架构 |
CN107563117A (zh) * | 2017-08-31 | 2018-01-09 | 上海德衡数据科技有限公司 | 一种基于软件定义的智能化区域急救医疗集成数据中心系统原型 |
CN107563925A (zh) * | 2017-08-31 | 2018-01-09 | 上海德衡数据科技有限公司 | 一种智能化区域急救医疗集成数据中心系统架构 |
CN107545140A (zh) * | 2017-08-31 | 2018-01-05 | 上海德衡数据科技有限公司 | 一种智能化区域急救医疗集成数据中心系统原型 |
CN107491662A (zh) * | 2017-10-09 | 2017-12-19 | 上海德衡数据科技有限公司 | 一种基于元数据的智能化区域移动医疗集成数据中心系统架构 |
CN107609336A (zh) * | 2017-10-09 | 2018-01-19 | 上海德衡数据科技有限公司 | 一种基于软件定义的智能化区域移动医疗元数据集成数据中心系统原型 |
CN109308290B (zh) * | 2018-08-06 | 2021-12-24 | 国网安徽省电力有限公司信息通信分公司 | 一种基于cim的高效数据清洗转换方法 |
CN109308290A (zh) * | 2018-08-06 | 2019-02-05 | 国网安徽省电力有限公司信息通信分公司 | 一种基于cim的高效数据清洗转换方法 |
CN109800226A (zh) * | 2018-12-25 | 2019-05-24 | 北京明略软件系统有限公司 | 一种数据治理中的任务管理方法及装置 |
CN111061803A (zh) * | 2019-12-30 | 2020-04-24 | 北京三快在线科技有限公司 | 任务处理方法、装置、设备及存储介质 |
CN111552730A (zh) * | 2020-04-28 | 2020-08-18 | 杭州数梦工场科技有限公司 | 数据分发方法、装置、电子设备、存储介质 |
CN111552730B (zh) * | 2020-04-28 | 2024-01-26 | 杭州数梦工场科技有限公司 | 数据分发方法、装置、电子设备、存储介质 |
CN114385137A (zh) * | 2021-12-29 | 2022-04-22 | 武汉达梦数据库股份有限公司 | 一种Flink框架运行ETL的流程方法和装置 |
CN114385137B (zh) * | 2021-12-29 | 2022-11-08 | 武汉达梦数据库股份有限公司 | 一种Flink框架运行ETL的流程方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103488537B (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103488537A (zh) | 一种数据抽取、转换和加载etl的执行方法及装置 | |
JP6784780B2 (ja) | 大規模再生可能エネルギーのデータについて確率モデルを構築する方法 | |
JP6516110B2 (ja) | SQL−on−Hadoopシステムにおける複数クエリ最適化 | |
CN104834557B (zh) | 一种基于Hadoop的数据分析方法 | |
CN104750780B (zh) | 一种基于统计分析的Hadoop配置参数优化方法 | |
CN102222092A (zh) | 一种MapReduce平台上的海量高维数据聚类方法 | |
CN104933160B (zh) | 一种面向安全监测业务分析的etl框架设计方法 | |
CN105683940A (zh) | 处理混合流的数据流图 | |
CN107391611B (zh) | 一种基于工作流的通用etl工具的过程模型生成方法 | |
CN103078941A (zh) | 一种分布式计算系统的任务调度方法及系统 | |
CN103903086A (zh) | 一种基于业务模型驱动的管理信息系统开发方法及系统 | |
WO2015094269A1 (en) | Hybrid flows containing a continuous flow | |
CN106779219A (zh) | 一种用电量预测方法及系统 | |
Huang et al. | BRCE: bi-roles co-evolution for energy-efficient distributed heterogeneous permutation flow shop scheduling with flexible machine speed | |
CN111475837B (zh) | 一种网络大数据隐私保护方法 | |
CN106775705A (zh) | 一种软件模块划分方法 | |
CN101930566B (zh) | 基于平行系统的水利实验模拟系统及实验模拟方法 | |
CN115358204A (zh) | 一种报表生成方法、装置、电子设备及存储介质 | |
CN103365923A (zh) | 用于评估数据库的分区方案的方法和装置 | |
CN113722564A (zh) | 基于空间图卷积能源物资供应链的可视化方法及装置 | |
Zheng et al. | Survey on design approaches for robotic manufacturing systems in SMEs | |
CN102779025A (zh) | 一种基于Hadoop的并行化PLSA方法 | |
CN101719160A (zh) | 基于集群系统的gis并行化系统 | |
Xu et al. | Flexible job-shop scheduling method based on interval grey processing time | |
Raj et al. | PartEclat: an improved Eclat-based frequent itemset mining algorithm on spark clusters using partition technique |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |