中文字幕无码日韩视频无码三区

基于osgi的etl處理裝置及方法

文檔(dang)序號:8361178閱讀(du):232來源:國(guo)知局
基于osgi的etl處理裝置及方法
【技術領域】
[0001]本發明涉及數據處理技術領域,尤其涉及一種基于OSGI的ETL處理裝置及方法。
【背景技術】
[0002]隨著計算機技術的發展和科技的進步,各個領域不斷積累了大量的業務數據,對于企事業單位來說,這是一個蘊含著對企業管理有決策意義的巨大寶庫。有效抽取、整合、利用這些數據,成為企業的迫切需求,同時也是大數據時代下企業資源利用的瓶頸。數據抽取、轉換和裝載(ETL, Extract1n-Transformat1n-Loading)為數據的處理和有效利用提供了技術引導。
[0003]ETL負責將分散的、異構數據源中的數據,如關系數據、平面數據文件等抽取到臨時中間層后,進行清洗、轉換、集成,最后加載到數據倉庫或數據集市中,成為聯機分析處理、數據挖掘的基礎。
[0004]現有技術的ETL工具,要么采用單線程處理機制,導致數據吞吐量小;要么對子任務間模塊進行統一依賴性定義,導致任務一經定義無法更改。因此,存在數據吞吐量小、處理效率低、任務可重用性不高的問題。
[0005]OSGI (Open Service Gateway Initiative)是面向 Java 的動態模型,它為模塊化應用的開發定義了一個基礎架構,使得應用程序可以實現定義精煉的、可重用的和可寫作的標準組件,并能靈活地、動態地組裝和部署到應用系統中。為此,本發明將ETL技術搭建在OSGI環境下,以子任務模塊為單位,動態地加載、部署程序代碼,以實現模塊間的松散耦合,提高ETL任務可重用性。
[0006]同時在任務間采用多線程緩存及數據分發復制機制,提高數據吞吐量和處理效率。

【發明內容】

[0007]基于此,本發明提供一種基于OSGI的ETL處理裝置及方法,以解決現有技術存在的數據吞吐量小、處理效率低、任務可重用性不高的問題。
[0008]本發明提供了一種應用于OSGI環境下的ETL處理裝置,包括:流程設計器,由節點中心、控制策略和觸發器三個模塊組成,用于定義任務流程中每一個節點及節點間的控制策略,并負責觸發任務請求;流程執行引擎,由處理中心、執行策略和流程管理三個模塊組成,接收并解析流程設計器傳達的請求,調度、分發、執行請求,并返回執行結果。
[0009]流程設計器和流程執行引擎均基于OSGI平臺,可獨立運行的子模塊通過OSGI創建其運行環境,運用時直接調用,多次運用,無需重新創建運行環境。
[0010]節點中心,用于定義并管理各個節點及節點屬性,每個節點即為流程內的一個子任務,每一個節點作為OSGI的一個Bundle模塊,并為每個Bundle模塊編制運行代碼形成獨立的JAR文件,以便于需要時直接調用。
[0011 ] 控制策略,用于定義節點間的相互關系,及子任務觸發方式。
[0012]觸發器,負責向流程執行引擎發送各種請求,包括流程定義、流程執行、任務執行坐寸O
[0013]任意一個流程的描述信息包括節點及控制策略,這些信息在流程形成過程中自動生成,并以一種結構化的文檔儲存,為便于描述,將這一文檔簡稱“配置文件”。
[0014]在觸發器觸發“任務形成”請求時,將配置文件發送給流程執行引擎并保存。
[0015]處理中心,負責任務的執行及執行時的調度。
[0016]執行策略,定義并實現各種執行時的策略,包括單線程串行、多線程并行以及條件判斷策略。
[0017]流程管理,儲存、檢索、管理配置文件,便于處理中心做任務調度,執行策略進行策略分配。
[0018]在觸發器觸發“任務執行”或“流程執行”請求時,處理中心解析請求,獲取執行請求所需的配置文件,并解析配置文件,選取執行策略,調度并觸發各子任務,由OSGI自動處理Bundle模塊(節點)間的依賴關系,形成可執行中間件。
[0019]由處理中心負責執行任務或流程,并將執行結果返回給流程設計器。
[0020]執行策略中采用緩存機制實現,在每個控制策略中都存在一個緩存隊列,同時考慮大數據緩存瓶頸問題,設計了數據分發與復制的雙重技術實現多線程并行策略。
[0021]當轉換節點所需數據超過了轉換節點與輸入節點間的緩存上限時,為保證數據吞吐量和處理效率,需要將轉換節點的任務分散到多個子節點執行,此時,需要按照一定的分發技術,將輸入節點產生的數據分發到輸入節點與轉換子節點的緩存隊列中,以供轉換子節點循環讀取各自消息隊列中緩存的數據做下一步轉換操作。
[0022]數據復制是指將輸入節點產生的數據復制η份,依次分配到輸入節點與轉換節點Γη的消息緩沖隊列中。
[0023]當某一子任務的數據輸入量很大時,可以將這一子任務分配到多個節點執行,此時可以采用數據分發技術;對這多個節點執行的結果采用數據復制技術,保持數據的同步性,形成流程中下一子任務的輸入數據。
[0024]此外,當多個子任務需要同一輸入節點產生的數據時,這些子任務間是相互獨立的,可以采用數據復制技術以保持數據的同步性。
[0025]其中數據分發包括:隨機分發、輪流分發、取膜求余分發、自定義分發等方法。
[0026]本發明還提供了一種基于OSGI的ETL處理方法,將ETL處理交由一個個獨立的任務完成,每個任務由任務流程構成,該處理方法包括。
[0027]步驟A:任務節點及其關系定義,定義任務流程中的各個節點、節點間的關系及節點觸發方式,將節點定義成OSGI上的Bundle模塊,并為每個節點賦予流程子任務。
[0028]步驟B:任務流程生成并上傳,生成任務流程的配置文件,并將配置文件上傳到流程執行引擎中。
[0029]步驟C:任務解析、調度,解析配置文件確定任務流程內包含的各子任務、控制策略、執行順序和相互間依賴關系。
[0030]步驟D:執行策略抽取,根據流程配置文件抽取各子任務執行策略,向處理中心提供對應接口。
[0031 ] 步驟E:任務流程執行,處理中心根據解析信息及執行策略,執行任務。
[0032]本發明例中提供了一種基于OSGI的ETL處理裝置及方法,即借助OSGI的動態部署優勢,將ETL任務寫入到OSGI的Bundle模塊中,并由OSGI自動處理Bundle模塊間的依賴解析。在ETL任務組件時,動態調用任意Bundle模塊形成任務流程,提高任務可重用行。在面對大數據的任務流程處理時,采用多線程、數據分發機制,提高數據吞吐量及處理效率。
【附圖說明】
[0033]圖1為本發明實施例提供的基于OSGI的流程處理裝置的模塊圖。
[0034]圖2為本發明實施例提供的基于OSGI的流程處理方法流程圖。
具體實施方案
[0035]為使本發明實施例的目的、技術方法、及優點更加清楚明白,以下結合附圖對本發明實施例提供的技術方案進行詳細說明。
[0036]本發明實施例中,ETL處理裝置由流程設計器和流程執行引擎構成,其中流程設計器包括。
[0037]節點中心,定義并管理節點及其屬性,節點定義成OSGI的Bundle模塊,任意一個節點封裝成獨立的jar文件,便于重用。
[0038]控制策略,定義節點間可能的相互關系,及子任務觸發方式。
[0039]觸發器,負責向流程執行引擎提交各種請求。
[0040]任意一個流程的構建,包括Bundle模塊調用、控制策略選擇,并根據實際情況對模塊及策略進行改寫性重定義,形成配置文件。
[0041 ] 其中,流程執行引擎包括。
[0042]處理中心,負責任務的執行及執行時的調度,如執行時的流程調度和流程執行時的流程內節點調度。
[0043]流程管理,儲存、檢索、管理配置文件,便于處理中心做任務調度,執行策略進行策略分配。
[0044]執行策略,定義各種執行時策略,包括單線程串行、多線程并行及條件判斷。
[0045]當觸發器發送“任務形成”命令時,處理中心執行任務,并將任務的配置文件存儲在流程管理模塊中;當觸發器發送“任務執行”請求時
當前第1頁1 2 
網友詢問留(liu)言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1