999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于數(shù)據(jù)倉(cāng)庫(kù)的一種通用ETL工具的設(shè)計(jì)與實(shí)現(xiàn)

2008-12-31 00:00:00王秋楠周連喆
電腦知識(shí)與技術(shù) 2008年26期

摘要:通過對(duì)基于數(shù)據(jù)倉(cāng)庫(kù)的ETL過程進(jìn)行的研究,提出了一種通用ETL過程的解決方案,為企業(yè)管理者的決策過程提供了有力支持,同時(shí)給出了一套完整的系統(tǒng)體系架構(gòu)。

關(guān)鍵詞:ETL;元數(shù)據(jù);管道—過濾器;數(shù)據(jù)倉(cāng)庫(kù)

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2008)26-1625-02

Design and Realization of Universal ETL Based on Data Warehouse

WANG Qiu-nan, ZHOU Lian-zhe

(Changchun University of Technology, Changchun 130000, China)

Abstract: Base on Data Warehouse this paper studies ETL, and brings forward a universal solution to the process of ETL. It provides a complete framework for enterprises.

Key words: ETL; metadata; pipeline; data warehouse

1 引言

數(shù)據(jù)倉(cāng)庫(kù)是近些年來在信息領(lǐng)域迅速發(fā)展起來的數(shù)據(jù)庫(kù)新技術(shù),主要是為企業(yè)管理者決策過程提供支持,它是基于主題的、集成的、時(shí)間相關(guān)的、非易失數(shù)據(jù)的集合[1]。數(shù)據(jù)倉(cāng)庫(kù)的概念很簡(jiǎn)單:使用所有現(xiàn)存數(shù)據(jù),通過清洗和轉(zhuǎn)換,從而提供有用的決策信息[2]。ETL是構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的重要過程,是數(shù)據(jù)整理階段的一個(gè)主要工具,它提供了數(shù)據(jù)倉(cāng)庫(kù)信息內(nèi)容的前期工作。通常情況下,ETL過程要占整個(gè)數(shù)據(jù)倉(cāng)庫(kù)構(gòu)建工作總量的60%~80%[3],從而可以看出ETL是構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的基礎(chǔ)與前提。本文主要對(duì)數(shù)據(jù)倉(cāng)庫(kù)中ETL過程進(jìn)行了研究,同時(shí)提出一種通用ETL工具的解決方案。

2 相關(guān)理論與技術(shù)

2.1 ETL的含義

ETL(Extract Transform Load,簡(jiǎn)稱ETL)是將數(shù)據(jù)從源操作型系統(tǒng)抽取、轉(zhuǎn)換并加載到數(shù)據(jù)倉(cāng)庫(kù)的過程。ETL過程就是數(shù)據(jù)流動(dòng)的過程,從不同的數(shù)據(jù)源流向不同的目標(biāo)數(shù)據(jù)庫(kù)。在這個(gè)過程中,數(shù)據(jù)的抽取、清洗、轉(zhuǎn)換和裝載形成串行或并行的過程。

2.2 ETL工具的主要分類

ETL工具主要分為三類:數(shù)據(jù)轉(zhuǎn)換引擎、通過復(fù)制捕獲數(shù)據(jù)以及代碼生成器。以數(shù)據(jù)轉(zhuǎn)換引擎為核心的ETL工具靈活性強(qiáng),提供最合適的數(shù)據(jù)轉(zhuǎn)換方法來實(shí)施完全更新和增量裝載,其功能涵蓋了整個(gè)ETL過程;通過復(fù)制捕獲數(shù)據(jù)的一類工具中大部分使用由數(shù)據(jù)庫(kù)管理系統(tǒng)維護(hù)的交易日志,在交易日志中捕獲的源系統(tǒng)的變化可以近乎實(shí)時(shí)地在數(shù)據(jù)轉(zhuǎn)換區(qū)域被復(fù)制,等待進(jìn)一步的處理;代碼生成器會(huì)創(chuàng)建3GL/4GL的數(shù)據(jù)抽取和轉(zhuǎn)換程序,這類工具直接處理數(shù)據(jù)的抽取、轉(zhuǎn)換和裝載。

2.3 元數(shù)據(jù)

元數(shù)據(jù)(Metadata)是關(guān)于數(shù)據(jù)的數(shù)據(jù),是以概念、主題或集團(tuán)等形式建立的信息結(jié)構(gòu),并且記錄數(shù)據(jù)對(duì)象的位置。在數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)中,元數(shù)據(jù)是指關(guān)于數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù),指在數(shù)據(jù)倉(cāng)庫(kù)建設(shè)過程中所產(chǎn)生的有關(guān)數(shù)據(jù)源定義、目標(biāo)定義,轉(zhuǎn)換規(guī)則等相關(guān)的關(guān)鍵數(shù)據(jù),同時(shí)元數(shù)據(jù)還包含關(guān)于數(shù)據(jù)含義的商業(yè)信息。元數(shù)據(jù)在數(shù)據(jù)倉(cāng)庫(kù)中處于一個(gè)非常重要的地位,是整個(gè)數(shù)據(jù)倉(cāng)庫(kù)運(yùn)行和維護(hù)的中心,它對(duì)數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)、開發(fā)、維護(hù)和管理,對(duì)數(shù)據(jù)的組織信息查詢以及結(jié)果的理解都有重大作用[4]。

3 通用ETL過程的研究

3.1 ETL的需求和步驟

數(shù)據(jù)倉(cāng)庫(kù)中ETL的構(gòu)建過程是最具挑戰(zhàn)性、最耗時(shí)耗力的,其過程的主要步驟可以分成以下幾個(gè)方面:首先決定數(shù)據(jù)倉(cāng)庫(kù)中需要的所有的目標(biāo)數(shù)據(jù),同時(shí)確定所有的數(shù)據(jù)源(包括內(nèi)部和外部);其次,準(zhǔn)備從源到目標(biāo)數(shù)據(jù)元素的數(shù)據(jù)映像關(guān)系,從而建立全面的數(shù)據(jù)抽取規(guī)則;再次,確定數(shù)據(jù)轉(zhuǎn)換和清洗規(guī)則,并為聚集表制訂計(jì)劃,組織數(shù)據(jù)緩存區(qū)域和檢測(cè)工具;然后,為所有的數(shù)據(jù)裝載編寫規(guī)則;最后,建立緯度表的ETL和事實(shí)表的ETL。

3.2 ETL過程主要技術(shù)難點(diǎn)和解決方案

ETL的整體架構(gòu)如圖1所示。

1)平臺(tái)的無關(guān)性:平臺(tái)無關(guān)性是評(píng)價(jià)ETL工具的一個(gè)重要指標(biāo),JAVA語言“一處編寫,處處運(yùn)行”的優(yōu)勢(shì)是解決系統(tǒng)平臺(tái)無關(guān)性的一個(gè)較好的解決方案;

2)可擴(kuò)展性:系統(tǒng)的可擴(kuò)展性對(duì)于軟件來說至關(guān)重要,應(yīng)用面向?qū)ο蟮姆治龊驮O(shè)計(jì),充分運(yùn)用面向?qū)ο蠓椒ㄖ械睦^承、封裝和多態(tài)等特性進(jìn)行系統(tǒng)的設(shè)計(jì)和開發(fā);

3)異構(gòu)數(shù)據(jù)源訪問:JDBC(Java Database Connection,Java數(shù)據(jù)庫(kù)連接)作為Java平臺(tái)的一個(gè)標(biāo)準(zhǔn)組成部分,是根據(jù)“與平臺(tái)無關(guān)”的基本原則而設(shè)計(jì)的,對(duì)獨(dú)立于數(shù)據(jù)庫(kù)的跨平臺(tái)數(shù)據(jù)庫(kù)訪問提供了有力的技術(shù)支持[5]。

4 系統(tǒng)體系結(jié)構(gòu)

本系統(tǒng)呈現(xiàn)的是一個(gè)通用ETL過程,它與通常意義下的C/S結(jié)構(gòu)類似,但只是對(duì)操作型數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行遷移。ETL系統(tǒng)體系結(jié)構(gòu)如圖2所示,ETL工具把源數(shù)據(jù)和目標(biāo)數(shù)據(jù)分隔開,通過數(shù)據(jù)抽取控制對(duì)源數(shù)據(jù)進(jìn)行抽取并存儲(chǔ)在元數(shù)據(jù)管理模塊中。用戶在規(guī)則定義界面中定義抽取規(guī)則、轉(zhuǎn)換規(guī)則、通過簡(jiǎn)單的拖放操作建立從源到目標(biāo)的字段映射等,再將這些規(guī)則(元數(shù)據(jù))存儲(chǔ)在元數(shù)據(jù)管理模塊中。用戶在執(zhí)行任務(wù)時(shí),系統(tǒng)從元數(shù)據(jù)管理模塊中取得ETL任務(wù)的抽取、轉(zhuǎn)換、加載規(guī)則,與數(shù)據(jù)庫(kù)交互完成數(shù)據(jù)遷移的任務(wù)。

5 具體實(shí)現(xiàn)

系統(tǒng)采用管道—過濾器模型實(shí)現(xiàn)ETL過程中的轉(zhuǎn)換引擎模塊部分。管道—過濾器模型(pipeline)是由代表過濾器的數(shù)據(jù)加工處理模塊和代表數(shù)據(jù)傳輸?shù)墓艿滥K組成。過濾器是具有一組輸入(或輸出)和內(nèi)部數(shù)據(jù)處理的部件構(gòu)成,它們被傳輸數(shù)據(jù)的管道連接在一起。過濾器通過輸入端口從管道接受數(shù)據(jù),并將處理的數(shù)據(jù)通過端口輸出到管道進(jìn)行傳送。對(duì)于pipeline的實(shí)現(xiàn)主要包括3個(gè)重要的類:圖(TranformationGraph類)、過濾器(Node類)和管道(Edge類)。

TranformationGraph類首先經(jīng)由加載的過濾器和管道中的信息分別存儲(chǔ)在nodes和phase中在初始化方法init()中,同時(shí)使用TranformationGraph的distributeNode方法將過濾器和管道具體的分配到不同的與過濾器和管道相適應(yīng)的并行線程(phase)中,在phase中過濾器和管道的初始化將由init()方法完成。在TranformationGraph中將釋放對(duì)管道和過濾器的相應(yīng)的引用。Node類是所有過濾器節(jié)點(diǎn)的超類,如果要?jiǎng)?chuàng)建一個(gè)過濾器就必須繼承Node類,繼承字Node類的過濾器節(jié)點(diǎn)都遵守整個(gè)軟件的規(guī)范,所以可以自由的添加到任務(wù)流程中。各個(gè)過濾器有自己獨(dú)特的功能又?jǐn)U展相同的接口,加強(qiáng)了過濾器的獨(dú)立性,使軟件模塊可以重用。在運(yùn)行時(shí)每一個(gè)過濾器都作為一個(gè)線程運(yùn)行。Edge類在管道—過濾器模型中是連接不同的過濾器的數(shù)據(jù)流通橋梁,不參與整個(gè)模型中數(shù)據(jù)的處理與變換,只起到數(shù)據(jù)傳輸?shù)淖饔茫蔷哂懈叨葍?nèi)聚性的組件。

系統(tǒng)采用XML來進(jìn)行數(shù)據(jù)的傳輸。數(shù)據(jù)的獨(dú)立性把內(nèi)容及其表示法分離開來是XML的特征,從而使XML成為數(shù)據(jù)交換的理想選擇。XML即可作為ETL工具抽取數(shù)據(jù)的來源又可以是加載數(shù)據(jù)的目的地,應(yīng)用dtd可以方便的對(duì)生成的轉(zhuǎn)換規(guī)則進(jìn)行內(nèi)容驗(yàn)證,而dom可以實(shí)現(xiàn)xml的解析。

6 性能分析

性能測(cè)試是改善系統(tǒng)性能的有效手段,本系統(tǒng)的性能測(cè)試主要以并發(fā)性測(cè)試為主,對(duì)目標(biāo)數(shù)據(jù)庫(kù)實(shí)現(xiàn)ETL過程時(shí)單表隨著增量數(shù)據(jù)量的不斷增大,數(shù)據(jù)抽取、轉(zhuǎn)換和加載過程所消耗的時(shí)間的變化進(jìn)行追蹤。

硬件環(huán)境:CPU為主頻2.0G的奔騰4,1G的DDR內(nèi)存。

軟件環(huán)境:操作系統(tǒng)為Windows 2003、JDK版本為1.5.0、數(shù)據(jù)庫(kù)為SQL Server2000和Oracle 10g

從測(cè)試結(jié)果分析,隨著數(shù)據(jù)量的不斷增加,系統(tǒng)ETL過程所消耗的時(shí)間也就不斷升高,但系統(tǒng)對(duì)少量數(shù)據(jù)完全可以滿足一般的需求。系統(tǒng)不太適合增量數(shù)據(jù)過大的情況下的應(yīng)用。系統(tǒng)整體運(yùn)行平穩(wěn),CPU占用率在28%~32%之間。

7 結(jié)束語

通用ETL過程的實(shí)現(xiàn)是一個(gè)比較復(fù)雜的過程,各方面需要考慮的因素很多。目前,通用ETL工具的開發(fā)研究工作一直都是國(guó)內(nèi)外在數(shù)據(jù)倉(cāng)庫(kù)建設(shè)方面的重點(diǎn)和熱點(diǎn)。采用JAVA語言和XML技術(shù)設(shè)計(jì)實(shí)現(xiàn)了ETL過程的跨平臺(tái)運(yùn)行、多線程處理,支持增量同步更新,從而更好地加強(qiáng)通用性和使用效率。同時(shí),數(shù)據(jù)清洗方法和轉(zhuǎn)換效率有待進(jìn)一步的提高。

參考文獻(xiàn):

[1] Inmon W H. Building the Data Warehouse[M]. New York: Wiley Sons,1993,16:4-5.

[2] Paulraj Ponniah. Data Warehousing Fundamentals[M].New York:Wiley,2001,25:22-27.

[3] 馬瑞新,許力.基于SOA的實(shí)時(shí)ETL的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2007,29(8):3-4.

[4] 王強(qiáng),劉東波,王建新等.數(shù)據(jù)倉(cāng)庫(kù)元數(shù)據(jù)標(biāo)準(zhǔn)研究[J].計(jì)算機(jī)工程,2002,18(6)30-33.

[5] 胡逢彬,沈煒.數(shù)據(jù)ETL過程中的數(shù)據(jù)質(zhì)量控制[J].信息技術(shù),2006,(4):19-21.

主站蜘蛛池模板: 欧美日韩国产在线人成app| a天堂视频| 国产激情无码一区二区免费 | 亚洲av日韩综合一区尤物| 国产精品亚洲а∨天堂免下载| 国产免费黄| 国产美女精品人人做人人爽| 黄片在线永久| 九一九色国产| 欧美成人午夜在线全部免费| 97成人在线观看| 国产97区一区二区三区无码| 国产91视频免费| 日韩在线第三页| 午夜福利无码一区二区| 国产在线高清一级毛片| 大学生久久香蕉国产线观看| 中国一级特黄视频| 欧美精品啪啪| 国产女人18水真多毛片18精品| 日韩大片免费观看视频播放| 国产农村1级毛片| 无码专区在线观看| 无码精油按摩潮喷在线播放| 中文字幕天无码久久精品视频免费 | 无码国产偷倩在线播放老年人| 国产老女人精品免费视频| 色首页AV在线| 亚洲高清无在码在线无弹窗| 人妻中文字幕无码久久一区| 亚洲AⅤ综合在线欧美一区| 亚洲国产综合精品中文第一| 91久久国产热精品免费| 亚洲精品无码成人片在线观看 | 97se亚洲综合在线韩国专区福利| 久久无码av三级| 国外欧美一区另类中文字幕| 精品撒尿视频一区二区三区| V一区无码内射国产| 最新加勒比隔壁人妻| 国产精品香蕉在线| 日韩小视频在线播放| 国产精品香蕉在线| 视频二区欧美| 伊人久久久大香线蕉综合直播| 亚洲日韩AV无码精品| 婷五月综合| 99r在线精品视频在线播放| 在线亚洲精品自拍| a级毛片免费网站| 40岁成熟女人牲交片免费| 色偷偷综合网| 亚洲男人天堂久久| 强乱中文字幕在线播放不卡| 思思99热精品在线| 999在线免费视频| 一级毛片a女人刺激视频免费| 97人妻精品专区久久久久| 亚洲AV无码精品无码久久蜜桃| 亚洲swag精品自拍一区| 99视频在线免费观看| 免费不卡在线观看av| www精品久久| 欧美成人午夜视频免看| 一级福利视频| 91高清在线视频| 久久国产精品电影| 免费久久一级欧美特大黄| 亚洲欧美成人综合| 国产又爽又黄无遮挡免费观看| 精品91自产拍在线| 91www在线观看| 久久久久88色偷偷| 91精品国产91久久久久久三级| 国产精品视频3p| 在线免费不卡视频| 一区二区影院| 99re在线观看视频| 亚洲成综合人影院在院播放| 在线无码私拍| 高潮爽到爆的喷水女主播视频| 99精品久久精品|