CN104679482A - 基于osgi的etl处理装置及方法 - Google Patents
基于osgi的etl处理装置及方法 Download PDFInfo
- Publication number
- CN104679482A CN104679482A CN201310607368.XA CN201310607368A CN104679482A CN 104679482 A CN104679482 A CN 104679482A CN 201310607368 A CN201310607368 A CN 201310607368A CN 104679482 A CN104679482 A CN 104679482A
- Authority
- CN
- China
- Prior art keywords
- node
- task
- flow
- strategy
- data
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的基于OSGI的ETL处理装置,包括:流程设计器和流程执行引擎。其中,流程设计器由节点中心、控制策略和触发器模块组成,流程执行引擎由处理中心、执行策略和流程管理模块组成。任意模块基于OSGI平台,并由其为模块创建独立的运行环境。节点中心负责所有节点及其属性的预定义,控制策略定义了节点间的关系及触发方式,触发器向引擎发送任务请求。处理中心负责任务的执行及执行时的调度,执行策略有单线程串行、多线程并行以及条件判断,实现时基于缓存机制利用数据分发与复制技术。此外,本发明还提供了基于OSGI的ETL处理方法。通过本发明的技术方案,可以有效提高子任务的重用性,提高数据吞吐量及处理效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于OSGI的ETL处理装置及方法。
背景技术
随着计算机技术的发展和科技的进步,各个领域不断积累了大量的业务数据,对于企事业单位来说,这是一个蕴含着对企业管理有决策意义的巨大宝库。有效抽取、整合、利用这些数据,成为企业的迫切需求,同时也是大数据时代下企业资源利用的瓶颈。数据抽取、转换和装载(ETL,Extraction-Transformation-Loading)为数据的处理和有效利用提供了技术引导。
ETL负责将分散的、异构数据源中的数据,如关系数据、平面数据文件等抽取到临时中间层后,进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。
现有技术的ETL工具,要么采用单线程处理机制,导致数据吞吐量小;要么对子任务间模块进行统一依赖性定义,导致任务一经定义无法更改。因此,存在数据吞吐量小、处理效率低、任务可重用性不高的问题。
OSGI(Open Service Gateway Initiative)是面向Java的动态模型,它为模块化应用的开发定义了一个基础架构,使得应用程序可以实现定义精炼的、可重用的和可写作的标准组件,并能灵活地、动态地组装和部署到应用系统中。为此,本发明将ETL技术搭建在OSGI环境下,以子任务模块为单位,动态地加载、部署程序代码,以实现模块间的松散耦合,提高ETL任务可重用性。
同时在任务间采用多线程缓存及数据分发复制机制,提高数据吞吐量和处理效率。
发明内容
基于此,本发明提供一种基于OSGI的ETL处理装置及方法,以解决现有技术存在的数据吞吐量小、处理效率低、任务可重用性不高的问题。
本发明提供了一种应用于OSGI环境下的ETL处理装置,包括:流程设计器,由节点中心、控制策略和触发器三个模块组成,用于定义任务流程中每一个节点及节点间的控制策略,并负责触发任务请求;流程执行引擎,由处理中心、执行策略和流程管理三个模块组成,接收并解析流程设计器传达的请求,调度、分发、执行请求,并返回执行结果。
流程设计器和流程执行引擎均基于OSGI平台,可独立运行的子模块通过OSGI创建其运行环境,运用时直接调用,多次运用,无需重新创建运行环境。
节点中心,用于定义并管理各个节点及节点属性,每个节点即为流程内的一个子任务,每一个节点作为OSGI的一个Bundle模块,并为每个Bundle模块编制运行代码形成独立的JAR文件,以便于需要时直接调用。
控制策略,用于定义节点间的相互关系,及子任务触发方式。
触发器,负责向流程执行引擎发送各种请求,包括流程定义、流程执行、任务执行等。
任意一个流程的描述信息包括节点及控制策略,这些信息在流程形成过程中自动生成,并以一种结构化的文档储存,为便于描述,将这一文档简称“配置文件”。
在触发器触发“任务形成”请求时,将配置文件发送给流程执行引擎并保存。
处理中心,负责任务的执行及执行时的调度。
执行策略,定义并实现各种执行时的策略,包括单线程串行、多线程并行以及条件判断策略。
流程管理,储存、检索、管理配置文件,便于处理中心做任务调度,执行策略进行策略分配。
在触发器触发“任务执行”或“流程执行”请求时,处理中心解析请求,获取执行请求所需的配置文件,并解析配置文件,选取执行策略,调度并触发各子任务,由OSGI自动处理Bundle模块(节点)间的依赖关系,形成可执行中间件。
由处理中心负责执行任务或流程,并将执行结果返回给流程设计器。
执行策略中采用缓存机制实现,在每个控制策略中都存在一个缓存队列,同时考虑大数据缓存瓶颈问题,设计了数据分发与复制的双重技术实现多线程并行策略。
当转换节点所需数据超过了转换节点与输入节点间的缓存上限时,为保证数据吞吐量和处理效率,需要将转换节点的任务分散到多个子节点执行,此时,需要按照一定的分发技术,将输入节点产生的数据分发到输入节点与转换子节点的缓存队列中,以供转换子节点循环读取各自消息队列中缓存的数据做下一步转换操作。
数据复制是指将输入节点产生的数据复制n份,依次分配到输入节点与转换节点1~n的消息缓冲队列中。
当某一子任务的数据输入量很大时,可以将这一子任务分配到多个节点执行,此时可以采用数据分发技术;对这多个节点执行的结果采用数据复制技术,保持数据的同步性,形成流程中下一子任务的输入数据。
此外,当多个子任务需要同一输入节点产生的数据时,这些子任务间是相互独立的,可以采用数据复制技术以保持数据的同步性。
其中数据分发包括:随机分发、轮流分发、取膜求余分发、自定义分发等方法。
本发明还提供了一种基于OSGI的ETL处理方法,将ETL处理交由一个个独立的任务完成,每个任务由任务流程构成,该处理方法包括。
步骤A:任务节点及其关系定义,定义任务流程中的各个节点、节点间的关系及节点触发方式,将节点定义成OSGI上的Bundle模块,并为每个节点赋予流程子任务。
步骤B:任务流程生成并上传,生成任务流程的配置文件,并将配置文件上传到流程执行引擎中。
步骤C:任务解析、调度,解析配置文件确定任务流程内包含的各子任务、控制策略、执行顺序和相互间依赖关系。
步骤D:执行策略抽取,根据流程配置文件抽取各子任务执行策略,向处理中心提供对应接口。
步骤E:任务流程执行,处理中心根据解析信息及执行策略,执行任务。
本发明例中提供了一种基于OSGI的ETL处理装置及方法,即借助OSGI的动态部署优势,将ETL任务写入到OSGI的Bundle模块中,并由OSGI自动处理Bundle模块间的依赖解析。在ETL任务组件时,动态调用任意Bundle模块形成任务流程,提高任务可重用行。在面对大数据的任务流程处理时,采用多线程、数据分发机制,提高数据吞吐量及处理效率。
附图说明
图1为本发明实施例提供的基于OSGI的流程处理装置的模块图。
图2为本发明实施例提供的基于OSGI的流程处理方法流程图。
具体实施方案
为使本发明实施例的目的、技术方法、及优点更加清楚明白,以下结合附图对本发明实施例提供的技术方案进行详细说明。
本发明实施例中,ETL处理装置由流程设计器和流程执行引擎构成,其中流程设计器包括。
节点中心,定义并管理节点及其属性,节点定义成OSGI的Bundle模块,任意一个节点封装成独立的jar文件,便于重用。
控制策略,定义节点间可能的相互关系,及子任务触发方式。
触发器,负责向流程执行引擎提交各种请求。
任意一个流程的构建,包括Bundle模块调用、控制策略选择,并根据实际情况对模块及策略进行改写性重定义,形成配置文件。
其中,流程执行引擎包括。
处理中心,负责任务的执行及执行时的调度,如执行时的流程调度和流程执行时的流程内节点调度。
流程管理,储存、检索、管理配置文件,便于处理中心做任务调度,执行策略进行策略分配。
执行策略,定义各种执行时策略,包括单线程串行、多线程并行及条件判断。
当触发器发送“任务形成”命令时,处理中心执行任务,并将任务的配置文件存储在流程管理模块中;当触发器发送“任务执行”请求时,处理中心解析请求,并向流程管理模块调度执行请求所需的配置文件,解析配置文件,选取执行策略,自动处理Bundle模块(节点)间的依赖关系,形成可执行中间件。
由处理中心负责执行任务或流程,并将执行结果返回给流程设计器。
其中,执行策略的选择依赖于节点间的依赖关系,当流程中的节点间串行时,选择单线程串行策略;当流程中节点时存在并行时,选择多线程并行策略;当流程中节点存在条件判断式任务时,选择条件判断策略。
此外,当流程中任一节点a到节点b的数据量太大,无法满足缓存区域时,选择数据分发和复制机制:将节点b的任务分成若干个相同节点的子任务,采用数据分发机制将节点a的输出数据分发到与各子任务的缓存队列中,待各子任务执行完后,采用数据复制机制,保证数据的完备性和统一性。
本发明实施例,提供的一种基于OSGI的ETL处理方法,包括。
步骤A,任务节点及其关系定义。
分别从节点中心、控制策略选择任务流程中所需的各节点及其节点间关系,并根据任务需求重载每个节点及其关系,选择节点触发方式。
步骤B,任务流程生产并上传。
由触发器向流程执行引擎发送“任务形成”请求,将任务流程以事先定义好的配置文件的形式保持到流程执行引擎的流程管理模块中。
步骤C,任务解析、调度。
当“任务执行”被请求时,处理中心负责解析配置文件确定任务流程内包含的各子任务、控制策略、执行顺序和相互间依赖关系。
步骤D,执行策略抽取。
处理中心依据配置文件,向执行策略模块发送策略请求,并提供策略执行接口。
步骤E,任务执行。
处理中心根据任务解析、调度情况及执行策略模块提供的策略执行接口,将任务形成可执行中间件,并执行任务。
本发明实施例是为了更好的为本领域专业人员对本发明的实现提供专业指导,本发明并不被本发明所示的实施例限制。本发明借助OSGI动态模型,将ETL处理中各任务节点定义成Bundle模块,提高了子任务的可重用性,降低模块间的耦合性,同时在根据任务间的串行、并行调度不同的执行策略,并利用数据分发与复制,提高数据吞吐量及处理效率。
Claims (17)
1.一种基于OSGI的ETL处理装置,其特征在于,包括:
流程设计器,由节点中心、控制策略和触发器三个模块组成,用于定义任务流程中每一个节点及节点间的控制策略,并负责触发各项任务请求;
流程执行引擎,由处理中心、执行策略和流程管理三个模块组成,接受并解析流程设计器传达的请求,调度、分发、执行请求,并返回执行结果。
2.如权利要求1所述的装置,其特征在于,流程设计器和流程执行引擎均基于OSGI平台,可独立运行的子模块通过OSGI创建其运行环境,运用时直接调用,多次运用,无需重新创建运行环境。
3.如权利要求1所述的装置,其特征在于,所述装置中的流程设计器进一步包括:
节点中心,用于定义并管理各个节点及节点属性,每个节点即为流程内一个子任务,每个节点作为OSGI的一个Bundle模块,并为每个Bundle模块编制运行代码形成独立的JAR文件,以便于需要时直接调用;
控制策略,用于定义节点间的相互关系,及子任务触发方式;
触发器,负责向流程执行引擎发送各种请求,包括流程定义、流程执行、任务执行等。
4.如权利要求3所述的装置,其特征在于,任意一个任务流程的描述信息包括节点及控制策略,这些信息在流程形成过程中自动生成,并以一种结构化的文档存储,为便于描述,将这一文档简称为“配置文件”。
5.如权利要求3和权利要求4所述的装置,其特征在于,在触发器触发“任务完成”请求时,将配置文件发送给流程执行引擎并保存。
6.如权利要求1所述的装置,其特征在于,所述装置中的流程执行引擎进一步包括:
处理中心,负责任务的执行及执行时的调度;
执行策略,定义并实现各种执行时的策略,包括单线程串行、多线程并行及条件判断策略;
流程管理,储存、检索、管理配置文件。
7.如权利要求6所述的装置,其特征在于,在触发器触发“任务执行”或“流程执行”请求时,处理中心解析请求,获取执行请求所需的配置文件,解析配置文件,依据配置文件信息选取执行策略,调度并触发各子任务,形成可执行中间件。
8.如权利要求7所述的装置,其特征在于,由执行策略模块执行策略并返回执行接口给处理中心,处理中心负责执行任务或流程,并将执行结果返回给流程设计器。
9.如权利要求7和权利要求8所述的装置,其特征在于,执行策略中采用缓存机制实现,每个控制策略中都存在一个缓存队列,同时,设计了数据分发与复制的双重技术实现多线程并行策略。
10.如权利要求9所述的装置,其特征在于,当转换节点所需数据超过了转换节点与输入节点间的缓存上限时,为保证数据吞吐量和处理效率,需要将转换节点的任务分散到多个子节点执行,此时,需要按照一定的分发技术,将输入节点产生的数据分发到输入节点与各转换子节点的缓存队列中,以供转换子节点循环读取各自消息队列中缓存的数据。
11.如权利要求9所述的装置,其特征在于,数据复制是指将输入节点产生的数据复制n份,依次分配到输入节点与1~n的转换节点消息队列中。
12.如权利要求9所述的装置,其特征在于,当某一子任务的输入输入量很大时,可以将这一子任务分配到多个节点执行,此时可以采用数据分发技术;对这多个节点执行的结果采用数据复制技术,保持数据的同步性,形成流程中下一子任务的输入数据。
13.如权利要求9和权利要求11所述的装置,其特征在于,当多个子任务需要统一输入节点产生的数据时,并且这些子任务间是相互独立的,可以采用数据复制技术以保持数据的同步性。
14.本发明提供的一种基于OSGI的ETL处理方法,其特征在于,包括以下步骤:
步骤A,任务节点及其关系定义,定义任务流程中的各个节点、节点间的关系及节点触发方式;
步骤B,任务流程生成并上传,生成任务流程的配置文件,并将配置文件上传到流程执行引擎中;
步骤C,任务解析、调度,解析配置文件确定任务流程内包含的各子任务、控制策略、执行顺序和相互依赖关系;
步骤D,执行策略抽取,根据流程配置文件抽取各子任务执行策略,向处理中心提供对应接口;
步骤E,任务流程执行,处理中心根据解析信息及执行策略,执行任务。
15.如权利要求14所述的方法,其特征在于,ETL处理由多个独立的任务完成,每个任务由任务流程构成,任务流程又由节点及其节点控制策略构成,节点也即是子任务。
16.如权利要求14所述的方法,其特征在于,节点创建时为每个节点赋予流程子任务。
17.如权利要求14所述的方法,其特征在于,任务流程的配置文件包括:任务流程的基本信息、流程中的节点及其属性信息、节点控制策略、节点触发方式等信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310607368.XA CN104679482A (zh) | 2013-11-27 | 2013-11-27 | 基于osgi的etl处理装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310607368.XA CN104679482A (zh) | 2013-11-27 | 2013-11-27 | 基于osgi的etl处理装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104679482A true CN104679482A (zh) | 2015-06-03 |
Family
ID=53314605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310607368.XA Pending CN104679482A (zh) | 2013-11-27 | 2013-11-27 | 基于osgi的etl处理装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104679482A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912588A (zh) * | 2016-03-31 | 2016-08-31 | 中国农业银行股份有限公司 | 一种基于内存计算的大数据可视化处理方法及系统 |
CN107229966A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 一种模型数据更新方法、装置及系统 |
CN110597611A (zh) * | 2019-09-19 | 2019-12-20 | 中国银行股份有限公司 | 任务调度方法及装置 |
CN112685483A (zh) * | 2020-12-17 | 2021-04-20 | 福建新大陆软件工程有限公司 | 基于数据管道和安全沙箱的etl方法、装置、设备和介质 |
CN113326117A (zh) * | 2021-07-15 | 2021-08-31 | 中国电子科技集团公司第十五研究所 | 一种任务调度方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388844A (zh) * | 2008-11-07 | 2009-03-18 | 东软集团股份有限公司 | 一种数据流程的处理方法和系统 |
CN101567013A (zh) * | 2009-06-02 | 2009-10-28 | 阿里巴巴集团控股有限公司 | 一种etl调度的实现方法及装置 |
CN102722355A (zh) * | 2012-06-04 | 2012-10-10 | 南京中兴软创科技股份有限公司 | 基于工作流机制的并发式etl转换方法 |
-
2013
- 2013-11-27 CN CN201310607368.XA patent/CN104679482A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388844A (zh) * | 2008-11-07 | 2009-03-18 | 东软集团股份有限公司 | 一种数据流程的处理方法和系统 |
CN101567013A (zh) * | 2009-06-02 | 2009-10-28 | 阿里巴巴集团控股有限公司 | 一种etl调度的实现方法及装置 |
CN102722355A (zh) * | 2012-06-04 | 2012-10-10 | 南京中兴软创科技股份有限公司 | 基于工作流机制的并发式etl转换方法 |
Non-Patent Citations (1)
Title |
---|
接铭远: ""基于PAAS平台的敏捷商业智能集成开发环境的研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229966A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 一种模型数据更新方法、装置及系统 |
CN105912588A (zh) * | 2016-03-31 | 2016-08-31 | 中国农业银行股份有限公司 | 一种基于内存计算的大数据可视化处理方法及系统 |
CN110597611A (zh) * | 2019-09-19 | 2019-12-20 | 中国银行股份有限公司 | 任务调度方法及装置 |
CN112685483A (zh) * | 2020-12-17 | 2021-04-20 | 福建新大陆软件工程有限公司 | 基于数据管道和安全沙箱的etl方法、装置、设备和介质 |
CN112685483B (zh) * | 2020-12-17 | 2022-06-07 | 福建新大陆软件工程有限公司 | 基于数据管道和安全沙箱的etl方法、装置、设备和介质 |
CN113326117A (zh) * | 2021-07-15 | 2021-08-31 | 中国电子科技集团公司第十五研究所 | 一种任务调度方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Syu et al. | A survey on automated service composition methods and related techniques | |
US20220129302A1 (en) | Data processing system and method for heterogeneous architecture | |
CN104679482A (zh) | 基于osgi的etl处理装置及方法 | |
KR102259927B1 (ko) | 워크플로우 엔진 프레임워크 | |
US20220129408A1 (en) | Data actor and data processing method thereof | |
CN103488775A (zh) | 一种用于大数据处理的计算系统及计算方法 | |
CN104199912B (zh) | 一种任务处理的方法及装置 | |
CN106687919A (zh) | 管理用于控制任务的状态 | |
CN102469126A (zh) | 一种应用调度系统、方法和相关装置 | |
Haubenwaller et al. | Computations on the edge in the internet of things | |
Achary et al. | Dynamic job scheduling using ant colony optimization for mobile cloud computing | |
KR102584447B1 (ko) | 크로스도메인 확장형 워크플로우 엔진 프레임워크 | |
Tolosana‐Calasanz et al. | Autonomic streaming pipeline for scientific workflows | |
CN103164476A (zh) | 一种bi应用元数据描述文件的执行方法和装置 | |
CN114661752A (zh) | 分布式数据库的计划调度方法、装置和系统 | |
Lyu et al. | A heterogeneous cloud-edge collaborative computing architecture with affinity-based workflow scheduling and resource allocation for internet-of-things applications | |
CN109829094A (zh) | 分布式爬虫系统 | |
CN102193831A (zh) | 一种建立层次化的映射/归约并行编程模型的方法 | |
Arellanes et al. | Decentralized data flows for the functional scalability of service-oriented iot systems | |
CN116582407A (zh) | 一种基于深度强化学习的容器化微服务编排系统及方法 | |
Gütlein et al. | On-demand simulation of future mobility based on apache kafka | |
CN114553980A (zh) | 一种控制流与数据流解耦的消息服务方法 | |
CN111416872A (zh) | 基于mp和rdma的高速缓存文件系统通信方法及系统 | |
Cushing et al. | Towards a data processing plane: An automata-based distributed dynamic data processing model | |
Li et al. | An XML based monadic framework for REST service compositions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150603 |
|
RJ01 | Rejection of invention patent application after publication |