亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向數(shù)據(jù)集成的分布式ETL研究與設(shè)計

        2017-12-02 19:08:41張孟春
        軟件導(dǎo)刊 2017年11期
        關(guān)鍵詞:數(shù)據(jù)集成分布式

        張孟春

        摘要:針對數(shù)據(jù)分析融合平臺建設(shè)中數(shù)據(jù)集成開發(fā)效率低、數(shù)據(jù)集成慢和數(shù)據(jù)網(wǎng)絡(luò)分散等問題,提出跨網(wǎng)絡(luò)傳輸?shù)姆植际紼TL框架設(shè)計。通過對主流ETL工具進行分析,總結(jié)了ETL的工作原理及過程,設(shè)計了一種基于消息中間件面向數(shù)據(jù)集成的分布式ETL框架。使用該框架處理數(shù)據(jù)集成任務(wù)時,提交數(shù)據(jù)集成過程的描述文件進行數(shù)據(jù)處理?;谠P万?qū)動和面向切面設(shè)計思想,設(shè)計數(shù)據(jù)任務(wù)執(zhí)行引擎和控制模型。基于該框架開發(fā)的工具可使數(shù)據(jù)開發(fā)人員從大量重復(fù)的數(shù)據(jù)操作中解脫出來,將更多精力放在數(shù)據(jù)的邏輯處理上。

        關(guān)鍵詞關(guān)鍵詞:數(shù)據(jù)集成;分布式; ETL;消息中間件

        DOIDOI:10.11907/rjdk.171780

        中圖分類號:TP391

        文獻標(biāo)識碼:A文章編號文章編號:16727800(2017)011019703

        0引言

        ETL是構(gòu)建數(shù)據(jù)倉庫的重要工具,構(gòu)建數(shù)據(jù)倉庫60%左右的工作量由ETL工具完成。ETL工具從一個或多個業(yè)務(wù)數(shù)據(jù)庫中抽取數(shù)據(jù),經(jīng)過清洗轉(zhuǎn)換,然后加載到數(shù)據(jù)倉庫中。隨著信息化建設(shè)的深入,企業(yè)和政府深層次利用數(shù)據(jù)進行數(shù)據(jù)挖掘和信息共享成為急需解決的問題。一般數(shù)據(jù)多采用上下級代理方式,數(shù)據(jù)分散在各地方和部門,這種數(shù)據(jù)集成需要跨網(wǎng)絡(luò)傳輸。如何從網(wǎng)絡(luò)分布的異構(gòu)數(shù)據(jù)源中快速構(gòu)建數(shù)據(jù)倉庫,是數(shù)據(jù)集成面臨的關(guān)鍵問題。

        相對于傳統(tǒng)的ETL,數(shù)據(jù)集成領(lǐng)域的ETL需要解決復(fù)雜的網(wǎng)絡(luò)環(huán)境、集成效率、性能需求等問題。本文采用消息中間件作為數(shù)據(jù)通信總線,屏蔽網(wǎng)絡(luò)底層通信協(xié)議和網(wǎng)絡(luò)環(huán)境差異。使用基于元數(shù)據(jù)架構(gòu)的ETL作為分布式ETL數(shù)據(jù)處理節(jié)點,設(shè)計了分布ETL工具并實現(xiàn)了子節(jié)點。

        1數(shù)據(jù)集成研究現(xiàn)狀

        數(shù)據(jù)集成是指把不同來源、格式、特點及性質(zhì)的數(shù)據(jù)進行邏輯或物理上的集中,從而為企業(yè)提供一個靈活、可擴展的數(shù)據(jù)視圖,數(shù)據(jù)集成方法分為模式集成和數(shù)據(jù)復(fù)制[3]。模式集成方法將各數(shù)據(jù)源的局部視圖轉(zhuǎn)換成全局模式;數(shù)據(jù)復(fù)制方法是在保持?jǐn)?shù)據(jù)源數(shù)據(jù)一致性、提高信息共享利用效率的基礎(chǔ)上,將各數(shù)據(jù)源的數(shù)據(jù)復(fù)制到一個公共數(shù)據(jù)源上。文獻[1]提出一種基于ETL的數(shù)據(jù)集成工具和ETL過程模型,開發(fā)面向數(shù)據(jù)集成的ETL系統(tǒng)Datalntegartor。

        ETL的過程研究集中在數(shù)據(jù)抽取和數(shù)據(jù)轉(zhuǎn)換上。文獻[2]從提取、轉(zhuǎn)換、裝載3個不同角度詳細(xì)闡述了ETL的核心內(nèi)容,并介紹了3個不同流程中涉及的關(guān)鍵技術(shù)。文獻[3]介紹了幾種不同的數(shù)據(jù)提取方法,對各種方法進行了詳細(xì)的比較,并對每種提取方法適應(yīng)的環(huán)境進行了總結(jié)。文獻[4]將數(shù)據(jù)抽取分為全量抽取和增量抽取,并將ETL的過程區(qū)分為全量ETL和增量ETL過程。

        在數(shù)據(jù)傳輸方面,文獻[5]、[6]、[7]提出使用消息中間件進行數(shù)據(jù)傳輸。文獻[5]通過觸發(fā)器捕獲變化的數(shù)據(jù),并將數(shù)據(jù)建成xml文檔,使用消息中間件OpenJMS進行數(shù)據(jù)傳遞。文獻[6]提出采用xml作為中間數(shù)據(jù)格式實現(xiàn)異構(gòu)數(shù)據(jù)源的統(tǒng)一轉(zhuǎn)換,利用消息的異步處理機制完成應(yīng)用系統(tǒng)間的數(shù)據(jù)交換和傳輸。文獻[7]基于ActiveMQ設(shè)計了一種輕量級的企業(yè)服務(wù)總線L-ESB,總線通過消息隊列傳遞消息和數(shù)據(jù)。

        2ETL過程描述

        ETL過程指數(shù)據(jù)抽取、轉(zhuǎn)換、加載過程。目前對ETL過程的描述有兩種觀點:①數(shù)據(jù)倉庫是基于數(shù)據(jù)源建立的物化視圖,而ETL過程是用于維護物化視圖的過程;②數(shù)據(jù)清理需要指定數(shù)據(jù)處理動作,應(yīng)該使用工作流(workflow)來描述ETL過程。本文采用第二種思想,將ETL過程視為一種數(shù)據(jù)處理流程。

        2.1ETL過程形式化描述

        對數(shù)據(jù)操作過程可以抽象成有向的DGA圖,節(jié)點表示數(shù)據(jù)操作邊,代表操作的先后次序,可進行ETL子過程的嵌套。ETL過程描述是對DGA圖描述,是ETL工具進行數(shù)據(jù)處理的執(zhí)行計劃。ETL過程的一般定義如下:

        定義1ETL={job1,job2…,jobk},它由多個相互獨立的作業(yè)job組成。

        定義2job=(Tasks,Rs)(i=1,2,3,…,k),它由多個相互關(guān)聯(lián)的Task組成,其中Tasks={Task1,Task2…,Taskn},表示每個作業(yè)有多個ETL任務(wù)組成;Rs={R1,R2…,Rn}Ri={P(Taski,Taskj)|j,i?(1,2,…n),j≠i}表示ETL任務(wù)之間的先后順序關(guān)系。

        定義3Task與job定義類似,Task=(Os,Rs),Os表示數(shù)據(jù)操作集合,Rs表示數(shù)據(jù)操作之間的約束關(guān)系。

        數(shù)據(jù)操作有以下3種:

        (1)抽取操作:不同的抽取操作代表不同的數(shù)據(jù)源,抽取操作根據(jù)數(shù)據(jù)源的描述信息進行數(shù)據(jù)讀取,以便為隨后的步驟提供數(shù)據(jù)。不同數(shù)據(jù)源的讀取操作不同,這部分是ETL數(shù)據(jù)集成的主要障礙。

        (2)轉(zhuǎn)換操作:在數(shù)據(jù)抽取和加載之間,任何對數(shù)據(jù)的操作過程均可稱為轉(zhuǎn)換操作。數(shù)據(jù)轉(zhuǎn)換是ETL中最為復(fù)雜的問題,主要解決模型轉(zhuǎn)換中的各種沖突,包括命名沖突、格式?jīng)_突、結(jié)構(gòu)沖突等。轉(zhuǎn)換步驟是對模型轉(zhuǎn)換和模式映射的規(guī)則描述。

        (3)加載操作:將完成處理的數(shù)據(jù)加載到目標(biāo)倉庫,系統(tǒng)的所有操作包括事實表操作和維表操作。

        2.2ETL描述格式

        采用Xml對ETL過程模型進行描述。XML是W3C組織制定的通用數(shù)據(jù)格式表示語言。XML標(biāo)準(zhǔn)以其開放、自描述、向前兼容的特性成為數(shù)據(jù)交換的事實標(biāo)準(zhǔn)。Xml提供一種結(jié)構(gòu)化的統(tǒng)一方法,用于描述和傳輸數(shù)據(jù),可以方便地實現(xiàn)模型擴展。XML文檔采用Unidcode編碼,任何標(biāo)準(zhǔn)的XML語法分析器都可以讀取、解碼和檢驗這種基于文本的自描述數(shù)據(jù)文檔,大大方便了XML在網(wǎng)絡(luò)之間的交換。ETL過程描述結(jié)構(gòu)如下:

        <!—job基本信息描述,包括作業(yè)名稱、作者、提交時間等-->

        taskname

        nexttaskname

        3體系架構(gòu)

        3.1總體架構(gòu)

        系統(tǒng)總體結(jié)構(gòu)見圖1。由圖1可知,分布式ETL是一個多層架構(gòu)體系,包括管理層、控制層與執(zhí)行層,每層功能不同。管理層由客戶端工具組成,負(fù)責(zé)ETL解決方案的設(shè)計和監(jiān)控??刂茖影ü芾斫涌诤腿蝿?wù)調(diào)度器;管理接口是整個后臺的應(yīng)用通信接口,架起管理層和后臺的通信橋梁;任務(wù)調(diào)度器也稱為任務(wù)調(diào)度服務(wù)層,是ETL作業(yè)運行的調(diào)度控制中心。執(zhí)行層由一系列的任務(wù)執(zhí)行節(jié)點組成,主要接受調(diào)度控制器發(fā)出的各種調(diào)度指令,并根據(jù)指令進行任務(wù)實例化、執(zhí)行與停止等工作。

        工具分為前端作業(yè)設(shè)計工具和后臺作業(yè)運行。后臺作業(yè)運行由一系列服務(wù)組件部署在不同節(jié)點上,并通過不同服務(wù)組件間協(xié)同工作,完成任務(wù)調(diào)度以及客戶端通信處理。工具支持多客戶端,用戶可以管理自己的作業(yè)并監(jiān)控執(zhí)行情況;系統(tǒng)用戶可以管理整個集群的節(jié)點及用戶權(quán)限管理;工具有一個調(diào)度控制器和多個任務(wù)執(zhí)行服務(wù)節(jié)點。

        客戶端工具包括:用戶認(rèn)證管理工具admin、數(shù)據(jù)集成方案設(shè)計工具designer、監(jiān)控工具monior。后臺cm節(jié)點主要監(jiān)控客戶端請求并提供服務(wù),它是客戶端與server節(jié)點的連接通道。Server負(fù)責(zé)控制集群的其它運行節(jié)點和任務(wù)調(diào)度;執(zhí)行節(jié)點node負(fù)責(zé)運行任務(wù)。采用消息中間件作為系統(tǒng)的控制總線和數(shù)據(jù)總線,負(fù)責(zé)傳輸數(shù)據(jù)和控制信息。

        3.2節(jié)點通信

        前臺工具與后臺cm節(jié)點采用http協(xié)議進行通信。消息中間件負(fù)責(zé)集群節(jié)點node之間的數(shù)據(jù)傳輸和任務(wù)遷移,以及server節(jié)點與node節(jié)點之間控制信息的傳輸,其中消息隊列保存系統(tǒng)間消息,確保消息的異步性、持久性和可靠性??刂菩畔⒉捎猛椒绞竭M行數(shù)據(jù)傳輸。消息中間件采用使用廣泛、免費開源的ActiveMQ。

        在消息中間件中所有數(shù)據(jù)都通過消息進行傳輸,一條消息由消息頭、屬性及消息的有效負(fù)載組成。Message消息是整個消息系統(tǒng)的重要組成部分,因為基于消息的應(yīng)用系統(tǒng)所有數(shù)據(jù)和事件都是使用消息進行通信的。消息頭提供了消息的相關(guān)元數(shù)據(jù),它描述了消息由誰創(chuàng)建、何時創(chuàng)建、數(shù)據(jù)有效長度等信息。使用消息選擇器進行消息過濾,基于特定的消息頭和屬性值選擇接收消息。消息中間件提供幾種類型的消息,包括TextMessage、StreamMessage、MapMessage、ObjectMessage和BytesMessage。

        系統(tǒng)需要傳輸?shù)臄?shù)據(jù)包括:數(shù)據(jù)處理任務(wù)、處理后的數(shù)據(jù)、節(jié)點之間的控制信息。數(shù)據(jù)處理任務(wù)采用xml描述,使用TextMessage進行封裝;處理后的數(shù)據(jù)塊采用ObjectMessage進行傳輸;控制信息采用MapMessage進行傳輸。數(shù)據(jù)處理在內(nèi)存中使用統(tǒng)一數(shù)據(jù)模型表示,將各種數(shù)據(jù)模式的數(shù)據(jù)轉(zhuǎn)換成對象模型進行數(shù)據(jù)處理,采用ObjectMessage直接將數(shù)據(jù)處理結(jié)果RowSet對象進行序列化傳輸,減少了CPU的消耗。控制信息多用鍵值對表示相關(guān)信息的屬性值,采用MapMessage進行控制信息傳輸??刂葡⒌陌l(fā)送采用同步非持久化機制,數(shù)據(jù)消息采用異步持久化進行數(shù)據(jù)收發(fā)。

        3.3作業(yè)執(zhí)行

        數(shù)據(jù)集成作業(yè)對數(shù)據(jù)進行流水線處理。Server節(jié)點接收job分解成一系列的task,根據(jù)特定算法將任務(wù)發(fā)送到各個節(jié)點;node節(jié)點接收任務(wù)、根據(jù)指令運行任務(wù)、處理數(shù)據(jù)并將數(shù)據(jù)發(fā)送到下個任務(wù)所在的節(jié)點。Node節(jié)點上一個任務(wù)對應(yīng)一個線程,通過這種并行流水線的方式提高ETL執(zhí)行效率。

        3.3.1任務(wù)分配

        Node節(jié)點會定期匯報節(jié)點資源狀況及任務(wù)執(zhí)行狀態(tài),Server節(jié)點根據(jù)節(jié)點信息進行任務(wù)分配和負(fù)載均衡。在后臺引入“slots”作為資源的邏輯單元進行資源管理。使用ETL進行數(shù)據(jù)集成過程很長,而且集群資源動態(tài)變化,網(wǎng)絡(luò)狀態(tài)不穩(wěn)定,無法準(zhǔn)確估計任務(wù)時間。為避免某個節(jié)點負(fù)載過重,任務(wù)分配采用負(fù)載均衡思想。任務(wù)之間需要進行數(shù)據(jù)塊傳輸,在負(fù)載均衡的情況下,盡量將有依賴關(guān)系的任務(wù)分配到一個節(jié)點上運行。流程如下:①計算集群node的slots、slotsum;②建立作業(yè)需要的slot,設(shè)計中如果沒有就特別指定,一個任務(wù)使用一個slot;③平衡因子factor=min(slots/(slotsum-已經(jīng)使用的slot),1);④計算每個節(jié)點可使用的slots=factor*(slotsum-已經(jīng)使用的slot);⑤進行任務(wù)分配,任務(wù)隊列進行排序(任務(wù)隊列構(gòu)建時采用廣度優(yōu)先算法);⑥生成任務(wù)分配關(guān)系。例如節(jié)點1可利用的slots為3,則將任務(wù)的前3個任務(wù)分配給節(jié)點1。

        3.2.2任務(wù)執(zhí)行流程

        Node 節(jié)點通信組件監(jiān)控消息隊列并進行消息處理,接受server指令實例化任務(wù);如果是數(shù)據(jù)抽取任務(wù),則根據(jù)數(shù)據(jù)源信息進行數(shù)據(jù)抽取。control監(jiān)控數(shù)據(jù)塊大小,滿足條件發(fā)送數(shù)據(jù);如果是轉(zhuǎn)換任務(wù)和加載任務(wù)就掛起,control接收到數(shù)據(jù)塊就喚醒任務(wù)線程。

        4結(jié)語

        ETL是一類從數(shù)據(jù)源中抽取數(shù)據(jù)并進行清洗轉(zhuǎn)換的工具,能夠很好地滿足數(shù)據(jù)集成需求。使用ETL進行數(shù)據(jù)集成時,面臨工作量巨大、集成效率低等問題。本文提出一種分布式ETL框架,并行處理數(shù)據(jù)執(zhí)行任務(wù)。流程為:首先對ETL過程進行描述,給出xml描述結(jié)構(gòu),為數(shù)據(jù)處理提供執(zhí)行計劃;然后調(diào)度器server將具有先后依賴關(guān)系的任務(wù)分發(fā)到各個節(jié)點;最后由各節(jié)點執(zhí)行任務(wù),組成具有邏輯關(guān)系的流水線進行數(shù)據(jù)處理。本框架設(shè)計增加了數(shù)據(jù)吞吐量,提高了數(shù)據(jù)處理能力。

        參考文獻參考文獻:

        [1]鐘華,馮文瀾,譚紅星,等.面向數(shù)據(jù)集成的ETL系統(tǒng)設(shè)計與實現(xiàn)[J].計算機科學(xué),2004,31(9):152156.

        [2]張瑞.ETL數(shù)據(jù)抽取研究綜述[J].軟件導(dǎo)刊,2010,9(10):164165.

        [3]鐘巧華.數(shù)據(jù)倉庫的數(shù)據(jù)抽取技術(shù)研究[J].計算機工程,2004,30(1):6263.

        [4]張旭峰,孫未未,汪衛(wèi),等.增量ETL過程自動化產(chǎn)生方法的研究[J].計算機研究與發(fā)展,2006, 43(6): 10971103.

        [5]趙曉君.基于JMS和XML的異構(gòu)數(shù)據(jù)庫集成研究[D].武漢:武漢理工大學(xué),2005.

        [6]萬軍.基于JMS和XML的數(shù)據(jù)交換模型設(shè)計與實現(xiàn)[D].蘇州:蘇州大學(xué), 2005.

        [7]龐新巖.基于ActiveMQ的企業(yè)服務(wù)總線研究與實現(xiàn)[D].杭州:浙江工業(yè)大學(xué),2015.

        責(zé)任編輯(責(zé)任編輯:杜能鋼)endprint

        猜你喜歡
        數(shù)據(jù)集成分布式
        分布式光伏發(fā)展的四大矛盾
        能源(2017年7期)2018-01-19 05:05:03
        分布式光伏熱錢洶涌
        能源(2017年10期)2017-12-20 05:54:07
        基于預(yù)處理MUSIC算法的分布式陣列DOA估計
        分布式光伏:爆發(fā)還是徘徊
        能源(2017年5期)2017-07-06 09:25:54
        成本與制造數(shù)據(jù)集成分析
        基于Biztalk的異構(gòu)醫(yī)療信息系統(tǒng)數(shù)據(jù)集成研究
        信息系統(tǒng)集成與數(shù)據(jù)集成策略研究
        XML數(shù)據(jù)交換技術(shù)在中醫(yī)智能化診斷數(shù)據(jù)集成中的應(yīng)用
        高校一表通系統(tǒng)建設(shè)探究
        基于數(shù)據(jù)集成的水上項目國家隊數(shù)據(jù)庫網(wǎng)絡(luò)管理平臺的設(shè)計與開發(fā)
        国产精品无套粉嫩白浆在线| 免费人成视频在线| 最新亚洲人成无码网www电影| 91精品日本久久久久久牛牛| 手机在线国产福利av| av无码精品一区二区三区| a级毛片免费观看网站| 国产91色在线|亚洲| 大又黄又粗又爽少妇毛片| 在线视频观看国产色网| 男人j进女人j啪啪无遮挡| 久久久久中文字幕精品无码免费| 精品国产一区二区三广区| 日本道免费一区二区三区日韩精品| 国产操逼视频| 亚洲电影中文字幕| 亚洲精品国产av成人网| 欧美日韩午夜群交多人轮换| 久久无码人妻精品一区二区三区| 色综合久久精品中文字幕| 亚洲国产91精品一区二区| 无码一区二区三区中文字幕| 最新亚洲人成无码网www电影| 人妖熟女少妇人妖少妇| 亚洲精品av一区二区| 99精品国产一区二区三区a片 | 亚洲欧美日韩高清中文在线| 看中文字幕一区二区三区| 国产a级毛片久久久精品毛片| 亚洲精品欧美二区三区中文字幕 | 亚洲国产成人va在线观看天堂| 国产亚洲美女精品久久久2020| 97免费人妻在线视频| 国产粉嫩美女一区二区三| 最新国产不卡在线视频| 人人爽人人爽人人爽人人片av| 亚洲欧美国产日产综合不卡| 亚洲成熟中老妇女视频 | 无码人妻精品一区二区三区下载| 中文字幕人乱码中文字幕乱码在线| 国产欧美亚洲精品第一页|