CN102722355A - 基于工作流机制的并发式etl转换方法 - Google Patents
基于工作流机制的并发式etl转换方法 Download PDFInfo
- Publication number
- CN102722355A CN102722355A CN2012101817148A CN201210181714A CN102722355A CN 102722355 A CN102722355 A CN 102722355A CN 2012101817148 A CN2012101817148 A CN 2012101817148A CN 201210181714 A CN201210181714 A CN 201210181714A CN 102722355 A CN102722355 A CN 102722355A
- Authority
- CN
- China
- Prior art keywords
- workflow
- task
- etl
- management
- hairdo
- 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.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种基于工作流机制的并发式ETL转换方法,利用工作流技术和多线程并发技术,实现了ETL工作流的多个ETL任务并发执行和单个任务内的多个ETL活动的并发执行。当同时执行多个ETL工作流,且ETL工作流和ETL作业中并行分支较多时,可以明显的提高执行效率。与此同时,本方法提出通过一种通过构建集群分布处理,并行管道技术构建并行ETl数据抽取引擎,能够大大提高数据本身的抽取效率,解决了多数据流的并行处理问题和转换处理的瓶颈问题。
Description
技术领域
本发明涉及到对传统过程化ETL模式进行创新改造,尤其是结合工作流技术和数据并行处理技术对常规的ETL模型进行重构和优化的引擎,其中涉及到数据抽取技术、数据转换、清洗和重构技术,工作流技术,数据并行处理技术,负载均衡技术等领域。
背景技术
目前,ETL指在构建数据仓库过程中对数据源中数据的抽取(Extract),经过数据转换后加载到数据仓库的过程。ETL整合了数据从数据源的收集、数据清洗、数据重构的流程和数据加载到目的端数据库、数据集市、数据仓库的流程,ETL是构建数据仓库***的关键。然而目前,随着业务源数据量的不断增大,已经达到海量数据级别,而且,现在的商业环境下对数据分析的实时性要求也不断提高,这两者之间形成了尖锐的矛盾,其中一个很重要的原因就是ETL工具的效率和准确性的问题,包括以下三个方面:
1、基于过程化处理的机制,不能进行并行的数据抽取和转换,随着源数据量的增大,数据转换效率大大降低。
2、流程化程度低,没有用标准化流程去控制,从而对于转换过程中逻辑处理,异常处理的能力相对较低。
3、没有形成多工作任务协同工作机制,一般都是队列式任务执行机制,***运行效率低,而且不能支持异常回退流程。
发明内容
本发明的目的是针对目前过程化、集中化、串行化ETL工具所带来的效率低,准确率低等一些列的问题,提出的一种基于工作流机制的并发式ETL转换方法。利用工作流技术和多线程并发技术,实现了ETL工作流的多个ETL 任务并发执行和单个任务内的多个ETL活动的并发执行。当同时执行多个ETL 工作流,且ETL工作流和ETL作业中并行分支较多时,可以明显的提高执行效率。与此同时,本引擎提出通过一种通过构建集群分布处理,并行管道技术构建并行ETl数据抽取引擎,能够大大提高数据本身的抽取效率,解决了多数据流的并行处理问题和转换处理的瓶颈问题。
本发明的技术方案是:
一种基于工作流机制的并发式ETL转换方法,该方法包括以下实现步骤:
A、建立基于WFMC模型(WFMC是工作流管理联盟)的面向数据任务的工作流进程,将多个工作流实例通过网络分布在不同的计算节点上;
B、建立多个并行的数据抽取转换执行进程即ETL进程,用于执行各工作流任务;
C、建立对上述并行进程即并行的工作流任务的主控管理进程,用于负责对并行抽取任务进行监控和管理;
D、建立并行的任务管理调度进程,用于将工作流任务调取至主控管理进程。
本发明的方法还包括以下步骤:
E、建立一套并行工作流任务冲突的判断规则库,当工作流任务之间发成冲突时,采用该规则库的规则对工作流任务进行处理;
F、建立负载均衡监控进程,用于对并行进程的性能进行监控。
本发明的步骤B中,采用基于远程方法调用RMI(RMI全称:远程方法调用,从代码程序上把远程接口包装成方法,调用时感觉像是本地调用一样,屏蔽网络连接,便于外部***集成网络服务)远程调度接口的并发式ETL引擎体系结构设计,该并发式ETL方法由部署在网络上的一个主控管理进程和多个执行进程组成,主控管理进程和执行进程之间通过RMI机制的远程调度接口进行通信。
本发明的步骤E的并行工作流任务冲突的判断规则库中,判断规则包括:“ 是空 ”, “ 非空 ” , “ 在列表中 ” , “ 包含 ” , “ 等于 ” , “ 不等于 ” , “ 小于 ” , “ 小于等于 ” , “ 大于 ” , “ 大于等于 ” , “ 规则表达式 ” , “ 开始字段 ” , “ 结束字段 ” 在内的多种判断机制。
本发明的步骤D中所述的并行的任务管理调度方法为采用队列轮询检查机制 Round Robin的任务调度方法包括以下步骤:
首先,建立调度管理线程池,初始状态时,线程池中有若干个调度管理线程;
执行工作流任务时,从调度管理线程池获取一个空闲的调度管理线程,如果没有空闲线程则等待被通知;否则,从工作流任务的等待队列中取出一个工作流实例放入工作流执行队列,并交由前述获取的空闲调度管理线程进行调度,调度管理线程通知主控管理进程的任务管理部分建立工作流任务实例并放入待执行任务队列,重复此过程直到待执行任务队列为空或调度管理线程池为空。
本发明的步骤B中,数据抽取转换执行进程采用不改变数据元结构的数据流分割模式对数据进行并行分割抽取。
本发明的并行进程即并行的工作流任务之间的通讯采用基于共享内存的管道通信机制来完成。
本发明的有益效果:
本发明利用工作流技术和多线程并发技术,实现了ETL工作流的多个ETL 任务并发执行和单个任务内的多个ETL活动的并发执行。当同时执行多个ETL 工作流,且ETL工作流和ETL作业中并行分支较多时,可以明显的提高执行效率。与此同时,本引擎提出通过一种通过构建集群分布处理,并行管道技术构建并行ETl数据抽取引擎,能够大大提高数据本身的抽取效率,解决了多数据流的并行处理问题和转换处理的瓶颈问题。
一、采用基于WFMC标准模型的工作流引擎,标准化程度高,可定制性高,能够快速的将数据转换流程转化成标准的工作流。
二、通过优良的多工作任务协调处理机制,来支持并实现多ETL执行任务的并发执行和协作。
三、采用基于共享内存的共享管道技术,实现数据级别的并发抽取和处理,大大提高了数据抽取效率。
附图说明
图1是本发明的步骤A中面向数据任务的工作流进程的运行流程图。
图2是本发明的ETL工作流即由多个任务之间的调度关系组成的调度工作流的有向无环控制流图。
图3是本发明的步骤C中主控管理进程的运行流程图。
图4是本发明的步骤D中任务管理调度进程的运行流程图。
图5是本发明的节点控制服务流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明。
如图1所示,一种基于工作流机制的并发式ETL转换方法,包括以下实现步骤:
A、建立一套基于WFMC模型的面向数据任务工作流引擎;将工作流实例通过网络分布在不同的计算节点上执行,同时可以通过协商机制来协同处理全局工作流实例。由于可以很容易地扩展计算节点,因而大大提高了***的可扩展性和执行效率,可以明显改善集中式执行方式的性能瓶颈问题。
B、建立数据抽取转换执行引擎用于执行工作流任务;
建立基于RMI远程调度接口的并发式ETL引擎体系结构设计,该并发式ETL引擎由部署在网络上的一个主控引擎和多个执行引擎组成。主控引擎和执行引擎之间通过RMI机制的远程调度接口进行通信。
采用基于WFMC模型的数据转换工作流机制。
一个ETL工作流是由多个任务之间的调度关系组成的调度工作流,可看作一个有向无环控制流图G(V, B ),如图2所示,图的顶点表示ETL工作流的任务(wf_task)或控制单元(wf_control)。边表示任务间前件关系(wf_p recondition)。
C、建立对并发任务的主控管理引擎负责对并行抽取任务进行监控和管理;
主控引擎由外部应用接口、元数据库适配器、元数据解析器、执行监控及主控引擎调度中心组成:
D、建立并行的任务管理调度机制;
采用不改变数据元结构的数据流分割模式对数据进行并行分割抽取。
支持基于共享内存的管道通信机制来完成并发进程之间的通讯。
进程向管道中写入信息,而其他进程能够从管道中读出信息。管道可以被看作—个虚拟文件,它保存在内存中。命名管道由—个名字来标识,能够实现分布环境下客户端和服务端应用程序线程之问的通信
E、建立一套并行任务冲突的判断规则库。
将“ 是空 ”, “ 非空 ” , “ 在列表中 ” , “ 包含 ” , “ 等于 ” , “ 不等于 ” , “ 小于 ” , “ 小于等于 ” , “ 大于 ” , “ 大于等于 ” , “ 规则表达式 ” , “ 开始字段 ” , “ 结束字段 ” 等多种规则判断表达式内置进判断规则库,以增强工作流任务的灵活性
F、建立一套负载均衡监控模块,用于对并行处理服务的性能监控
采用队列轮询检查机制 (Round Robin)的任务调度算法(自动的负载均衡是多任务调度的一个特性,数据量巨大的情况下,多任务并行执行,必须要考虑性能问题),执行工作流实例时,从调度管理线程池获取一个空闲的调度管理线程,如果没有空闲线程则等待被通知;否则,从工作流等待队列中取出一个工作流实例放入工作流执行队列,并交由该调度管理线程进行调度,调度管理通知任务管理建立工作流任务实例并放入任务等队列,重复此过程直到等待队列为空或调度管理线程池为空。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
Claims (7)
1.一种基于工作流机制的并发式ETL转换方法,其特征在于,该方法包括以下实现步骤:
A、建立基于WFMC模型的面向数据任务的工作流进程,将多个工作流实例通过网络分布在不同的计算节点上;
B、建立多个并行的数据抽取转换执行进程即ETL进程,用于执行各工作流任务;
C、建立对上述并行进程即并行的工作流任务的主控管理进程,用于负责对并行抽取任务进行监控和管理;
D、建立并行的任务管理调度进程,用于将工作流任务调取至主控管理进程。
2.根据权利要求1所述的基于工作流机制的并发式ETL转换方法,其特征在于,该方法还包括以下步骤:
E、建立一套并行工作流任务冲突的判断规则库,当工作流任务之间发成冲突时,采用该规则库的规则对工作流任务进行处理;
F、建立负载均衡监控进程,用于对并行进程的性能进行监控。
3.根据权利要求1所述的基于工作流机制的并发式ETL转换方法,其特征在于,步骤B中,采用基于远程方法调用RMI远程调度接口的并发式ETL引擎体系结构设计,该并发式ETL方法由部署在网络上的一个主控管理进程和多个执行进程组成,主控管理进程和执行进程之间通过RMI机制的远程调度接口进行通信。
4.根据权利要求2所述的基于工作流机制的并发式ETL转换方法,其特征在于,步骤E的并行工作流任务冲突的判断规则库中,判断规则包括:是空、 非空、在列表中、包含、等于、不等于、小于、小于等于、大于、大于等于、规则表达式、开始字段和结束字段在内的多种判断机制。
5.根据权利要求1所述的基于工作流机制的并发式ETL转换方法,其特征在于,步骤D中所述的并行的任务管理调度方法为采用队列轮询检查机制 Round Robin的任务调度方法包括以下步骤:
首先,建立调度管理线程池,初始状态时,线程池中有若干个调度管理线程;
执行工作流任务时,从调度管理线程池获取一个空闲的调度管理线程,如果没有空闲线程则等待被通知;否则,从工作流任务的等待队列中取出一个工作流实例放入工作流执行队列,并交由前述获取的空闲调度管理线程进行调度,调度管理线程通知主控管理进程的任务管理部分建立工作流任务实例并放入待执行任务队列,重复此过程直到待执行任务队列为空或调度管理线程池为空。
6.根据权利要求1所述的基于工作流机制的并发式ETL转换方法,其特征在于步骤B中,数据抽取转换执行进程采用不改变数据元结构的数据流分割模式对数据进行并行分割抽取。
7.根据权利要求1所述的基于工作流机制的并发式ETL转换方法,其特征在于,并行进程即并行的工作流任务之间的通讯采用基于共享内存的管道通信机制来完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101817148A CN102722355A (zh) | 2012-06-04 | 2012-06-04 | 基于工作流机制的并发式etl转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101817148A CN102722355A (zh) | 2012-06-04 | 2012-06-04 | 基于工作流机制的并发式etl转换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102722355A true CN102722355A (zh) | 2012-10-10 |
Family
ID=46948137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101817148A Pending CN102722355A (zh) | 2012-06-04 | 2012-06-04 | 基于工作流机制的并发式etl转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102722355A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902391A (zh) * | 2014-04-15 | 2014-07-02 | 宇龙计算机通信科技(深圳)有限公司 | 应用程序管理装置和应用程序管理方法 |
WO2014134757A1 (zh) * | 2013-03-07 | 2014-09-12 | Xu Guoqing King | 并行业务规则引擎及其实现方法 |
CN104317970A (zh) * | 2014-11-19 | 2015-01-28 | 亚信科技(南京)有限公司 | 一种基于数据加工中心的数据流式处理方法 |
CN104391929A (zh) * | 2014-11-21 | 2015-03-04 | 浪潮通用软件有限公司 | 一种etl中数据流的传递方法 |
CN104407847A (zh) * | 2014-10-29 | 2015-03-11 | 中国建设银行股份有限公司 | 一种批处理的方法及装置 |
CN104679482A (zh) * | 2013-11-27 | 2015-06-03 | 北京拓尔思信息技术股份有限公司 | 基于osgi的etl处理装置及方法 |
CN104850638A (zh) * | 2015-05-25 | 2015-08-19 | 广州精点计算机科技有限公司 | Etl过程并行决策方法及装置 |
CN105095327A (zh) * | 2014-05-23 | 2015-11-25 | 深圳市珍爱网信息技术有限公司 | 一种分布式etl***及调度方法 |
CN105468682A (zh) * | 2015-11-16 | 2016-04-06 | 中国建设银行股份有限公司 | 一种事件调度*** |
CN108665239A (zh) * | 2018-05-08 | 2018-10-16 | 平安普惠企业管理有限公司 | 工作流处理方法、装置、计算机设备及存储介质 |
CN108694082A (zh) * | 2018-05-14 | 2018-10-23 | 有时数联科技(北京)有限公司 | 一种跨域作业流调度方法及*** |
CN109445854A (zh) * | 2018-10-31 | 2019-03-08 | 中科驭数(北京)科技有限公司 | 数据传输方法及装置 |
CN109800226A (zh) * | 2018-12-25 | 2019-05-24 | 北京明略软件***有限公司 | 一种数据治理中的任务管理方法及装置 |
CN110162531A (zh) * | 2018-02-28 | 2019-08-23 | 山东衡昊信息技术有限公司 | 一种分布式并发数据处理任务决策方法 |
CN110321223A (zh) * | 2019-07-03 | 2019-10-11 | 湖南大学 | Coflow协同作业流调度感知的数据流划分方法与装置 |
CN111371856A (zh) * | 2020-02-25 | 2020-07-03 | 程瑞萍 | 云计算任务调度方法、装置、云计算***及服务器 |
CN111752971A (zh) * | 2017-12-20 | 2020-10-09 | 第四范式(北京)技术有限公司 | 基于任务并行处理数据流的方法、装置、设备及存储介质 |
CN112860776A (zh) * | 2021-01-20 | 2021-05-28 | 山东众阳健康科技集团有限公司 | 一种多种数据抽取调度方法及*** |
-
2012
- 2012-06-04 CN CN2012101817148A patent/CN102722355A/zh active Pending
Non-Patent Citations (2)
Title |
---|
丁进,郭朝珍: "基于多Agent与工作流的分布式ETL引擎的研究", 《计算机应用》 * |
许力,牟晓光,马云存: "并行ETL过程的研究与实现", 《计算机工程与应用》 * |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014134757A1 (zh) * | 2013-03-07 | 2014-09-12 | Xu Guoqing King | 并行业务规则引擎及其实现方法 |
CN104679482A (zh) * | 2013-11-27 | 2015-06-03 | 北京拓尔思信息技术股份有限公司 | 基于osgi的etl处理装置及方法 |
CN103902391B (zh) * | 2014-04-15 | 2018-04-10 | 宇龙计算机通信科技(深圳)有限公司 | 应用程序管理装置和应用程序管理方法 |
CN103902391A (zh) * | 2014-04-15 | 2014-07-02 | 宇龙计算机通信科技(深圳)有限公司 | 应用程序管理装置和应用程序管理方法 |
CN105095327A (zh) * | 2014-05-23 | 2015-11-25 | 深圳市珍爱网信息技术有限公司 | 一种分布式etl***及调度方法 |
CN104407847A (zh) * | 2014-10-29 | 2015-03-11 | 中国建设银行股份有限公司 | 一种批处理的方法及装置 |
CN104407847B (zh) * | 2014-10-29 | 2019-05-07 | 中国建设银行股份有限公司 | 一种批处理的方法及装置 |
CN104317970A (zh) * | 2014-11-19 | 2015-01-28 | 亚信科技(南京)有限公司 | 一种基于数据加工中心的数据流式处理方法 |
CN104317970B (zh) * | 2014-11-19 | 2018-08-28 | 亚信科技(南京)有限公司 | 一种基于数据加工中心的数据流式处理方法 |
CN104391929A (zh) * | 2014-11-21 | 2015-03-04 | 浪潮通用软件有限公司 | 一种etl中数据流的传递方法 |
CN104850638B (zh) * | 2015-05-25 | 2018-10-19 | 广东精点数据科技股份有限公司 | Etl过程并行决策方法及装置 |
CN104850638A (zh) * | 2015-05-25 | 2015-08-19 | 广州精点计算机科技有限公司 | Etl过程并行决策方法及装置 |
CN105468682B (zh) * | 2015-11-16 | 2018-12-14 | 中国建设银行股份有限公司 | 一种事件调度*** |
CN105468682A (zh) * | 2015-11-16 | 2016-04-06 | 中国建设银行股份有限公司 | 一种事件调度*** |
CN111752971A (zh) * | 2017-12-20 | 2020-10-09 | 第四范式(北京)技术有限公司 | 基于任务并行处理数据流的方法、装置、设备及存储介质 |
CN110162531A (zh) * | 2018-02-28 | 2019-08-23 | 山东衡昊信息技术有限公司 | 一种分布式并发数据处理任务决策方法 |
CN110162531B (zh) * | 2018-02-28 | 2021-04-16 | 山东衡昊信息技术有限公司 | 一种分布式并发数据处理任务决策方法 |
CN108665239A (zh) * | 2018-05-08 | 2018-10-16 | 平安普惠企业管理有限公司 | 工作流处理方法、装置、计算机设备及存储介质 |
CN108665239B (zh) * | 2018-05-08 | 2024-01-16 | 印嘉商用科技(深圳)有限公司 | 工作流处理方法、装置、计算机设备及存储介质 |
CN108694082A (zh) * | 2018-05-14 | 2018-10-23 | 有时数联科技(北京)有限公司 | 一种跨域作业流调度方法及*** |
CN108694082B (zh) * | 2018-05-14 | 2021-06-22 | 有时数联科技(北京)有限公司 | 一种跨域作业流调度方法及*** |
CN109445854A (zh) * | 2018-10-31 | 2019-03-08 | 中科驭数(北京)科技有限公司 | 数据传输方法及装置 |
CN109445854B (zh) * | 2018-10-31 | 2019-11-05 | 中科驭数(北京)科技有限公司 | 数据传输方法及装置 |
CN109800226A (zh) * | 2018-12-25 | 2019-05-24 | 北京明略软件***有限公司 | 一种数据治理中的任务管理方法及装置 |
CN110321223A (zh) * | 2019-07-03 | 2019-10-11 | 湖南大学 | Coflow协同作业流调度感知的数据流划分方法与装置 |
CN110321223B (zh) * | 2019-07-03 | 2021-08-17 | 湖南大学 | Coflow协同作业流调度感知的数据流划分方法与装置 |
CN111371856A (zh) * | 2020-02-25 | 2020-07-03 | 程瑞萍 | 云计算任务调度方法、装置、云计算***及服务器 |
CN111371856B (zh) * | 2020-02-25 | 2021-01-05 | 南京争锋信息科技有限公司 | 云计算任务调度方法、装置、云计算***及服务器 |
CN112860776A (zh) * | 2021-01-20 | 2021-05-28 | 山东众阳健康科技集团有限公司 | 一种多种数据抽取调度方法及*** |
CN112860776B (zh) * | 2021-01-20 | 2022-12-06 | 众阳健康科技集团有限公司 | 一种多种数据抽取调度方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102722355A (zh) | 基于工作流机制的并发式etl转换方法 | |
CN106126601A (zh) | 一种社保大数据分布式预处理方法及*** | |
CN105005570B (zh) | 基于云计算的海量智能用电数据挖掘方法及装置 | |
CN106202346B (zh) | 一种数据加载清洗引擎、调度与存储*** | |
CN106022245A (zh) | 一种基于算法分类的多源遥感卫星数据并行处理***及方法 | |
CN111694888A (zh) | 基于微服务架构的分布式etl数据交换***及方法 | |
CN107038162A (zh) | 基于数据库日志的实时数据查询方法和*** | |
CN104933160B (zh) | 一种面向安全监测业务分析的etl框架设计方法 | |
CN102663114A (zh) | 面向并发olap的数据库查询处理方法 | |
CN105550268A (zh) | 大数据流程建模分析引擎 | |
CN102831120A (zh) | 一种数据处理方法及*** | |
CN108595473A (zh) | 一种基于云计算的大数据应用平台 | |
CN108009258A (zh) | 一种可在线配置的数据采集与分析平台 | |
CN105893158A (zh) | 私有云条件下的大数据混合调度模型 | |
CN102394903B (zh) | 一种主动重构计算体系构建*** | |
CN102508919A (zh) | 数据处理方法及*** | |
CN110019209A (zh) | 一种基于水电企业业务数据的大数据融合***及方法 | |
CN112379884A (zh) | 基于Spark和并行内存计算的流程引擎实现方法及*** | |
CN105677467A (zh) | 基于量化标签的Yarn资源调度器 | |
CN104881730A (zh) | 一种基于工作流的锅炉虚拟样机协同设计***及方法 | |
CN104156505B (zh) | 一种基于用户行为分析的Hadoop集群作业调度方法及装置 | |
Chen et al. | Multi-source and heterogeneous data integration model for big data analytics in power DCS | |
CN101551811B (zh) | 用于实时数据etl***的记忆式调度方法 | |
CN105550351A (zh) | 旅客行程数据即席查询***及方法 | |
CN104239537A (zh) | 一种大数据预处理文本数据生成处理流程实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121010 |