日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

用DataStage進(jìn)行數(shù)據(jù)整合: 第 1 部分

 dazheng 2007-11-14
數(shù)據(jù)整合的核心內(nèi)容是從數(shù)據(jù)源中抽取數(shù)據(jù),然后對(duì)這些數(shù)據(jù)進(jìn)行轉(zhuǎn)化,最終加載的目標(biāo)數(shù)據(jù)庫(kù)或者數(shù)據(jù)倉(cāng)庫(kù)中去,這也就是我們通常所說(shuō)的 ETL 過(guò)程。IBM WebSphere DataStage 為整個(gè) ETL 過(guò)程提供了一個(gè)圖形化的開發(fā)環(huán)境。

引言

傳統(tǒng)的數(shù)據(jù)整合方式需要大量的手工編碼,而采用 IBM WebSphere DataStage 進(jìn)行數(shù)據(jù)整合可以大大的減少手工編碼的數(shù)量,而且更加容易維護(hù)。數(shù)據(jù)整合的核心內(nèi)容是從數(shù)據(jù)源中抽取數(shù)據(jù),然后對(duì)這些數(shù)據(jù)進(jìn)行轉(zhuǎn)化,最終加載的目標(biāo)數(shù)據(jù)庫(kù)或者數(shù)據(jù)倉(cāng)庫(kù)中去,這也就是我們通常所說(shuō)的ETL過(guò)程。IBM WebSphere DataStage 為整個(gè) ETL 過(guò)程提供了一個(gè)圖形化的開發(fā)環(huán)境。本文將從以下幾個(gè)方面來(lái)介紹 IBM WebSphere DataStage:

1. 數(shù)據(jù)源連接能力

2. 完備的開發(fā)環(huán)境

3. ETL Job 的并行執(zhí)行能力

4. 開發(fā)一個(gè)簡(jiǎn)單的 ETL Job





回頁(yè)首


出色的數(shù)據(jù)源連接能力

數(shù)據(jù)整合工具的數(shù)據(jù)源連接能力是非常重要的,這將直接決定它能夠應(yīng)用的范圍。IBM WebSphere DataStage 能夠直接連接非常多的數(shù)據(jù)源,包括:

1、 文本文件

2、 XML 文件

3、 企業(yè)應(yīng)用程序,比如 SAP、Siebel、Oracle 以及PeopleSoft

4、 幾乎所有的數(shù)據(jù)庫(kù)系統(tǒng),比如 DB2、Oracle、SQL Server、Informix等

5、 Web services

6、 WebSphere MQ

正是因?yàn)檫@么好的連接能力,IBM WebSphere DataStage 使用戶能夠?qū)W⒂跀?shù)據(jù)轉(zhuǎn)換的邏輯而不用太擔(dān)心數(shù)據(jù)的抽取和加載。





回頁(yè)首


完備的開發(fā)環(huán)境

IBM WebSphere DataStage 的開發(fā)環(huán)境是基于 C/S 模式的,通過(guò) DataStage Client 連接到DataStage Server 上進(jìn)行開發(fā)。這里有一點(diǎn)需要注意,DataStage Client 只能安裝在 Windows 平臺(tái)上面。而 DataStage Server 則支持多種平臺(tái),比如 Windows、Redhat Linux、AIX、HP-UNIX。

DataStage Client 有四種客戶端工具。分別是 DataStage Administrator、DataStage Designer、DataStage Manager、DataStage Director。接下來(lái)首先介紹這幾種客戶端工具在 DataStage 架構(gòu)中所處的位置以及它們?nèi)绾螀f(xié)同工作來(lái)開發(fā) ETL Job 的,接著再分別詳細(xì)介紹每個(gè)工具的功能。

圖 1 描述了 IBM WebSphere DataStage 的整個(gè)系統(tǒng)架構(gòu)。DataStage 的客戶端工具連接到DataStage Server 上進(jìn)行 ETL Job 的開發(fā),DataStage Server 再與后臺(tái)的數(shù)據(jù)庫(kù)連接起來(lái)進(jìn)行數(shù)據(jù)處理。DataStage 的客戶端工具之間的是一個(gè)相互合作的關(guān)系。下面通過(guò)介紹 ETL Job的開發(fā)過(guò)程來(lái)介紹他們之間的這種關(guān)系。

ETL Job開發(fā)流程

1. 用 DataStage Administrator 新建一個(gè)項(xiàng)目;

2. 用 DataStage Designer 連接到這個(gè)新建的項(xiàng)目上進(jìn)行ETL Job的設(shè)計(jì);

3. 用 DataStage Director 對(duì)設(shè)計(jì)好的ETL Job設(shè)置運(yùn)行的模式,比如多長(zhǎng)時(shí)間運(yùn)行一次ETL Job;

4.用 DataStage Manager 進(jìn)行ETL Job的備份等。


圖 1:IBM WebSphere DataStage 架構(gòu)圖
圖 1:ibm websphere datastage 架構(gòu)圖

DataStage Administrator

DataStage Administrator 的主要功能有以下幾個(gè):

1. 設(shè)置客戶端和服務(wù)器連接的最大時(shí)間。

以管理員的身份登陸 DataStage Administrator。你就會(huì)看到如下圖所示的畫面。在這里你可以設(shè)置客戶端和服務(wù)器的最大連接時(shí)間,默認(rèn)的最大連接時(shí)間是永不過(guò)期。最大連接時(shí)間的意思就是如果客戶端和服務(wù)器的連接時(shí)間超過(guò)了最大連接時(shí)間,那么客戶端和服務(wù)器之間的連接將被強(qiáng)行斷開。



2. 添加和刪除項(xiàng)目

在 Projects 這個(gè)標(biāo)簽中,可以新建或者刪除項(xiàng)目,以及設(shè)置已有項(xiàng)目的屬性。這里有必要介紹一下項(xiàng)目的概念,要用 DataStage 進(jìn)行 ETL 的開發(fā),首先就要用 DataStage Administrator 新建一個(gè)項(xiàng)目,然后在這個(gè)項(xiàng)目里面進(jìn)行 ETL Job 的開發(fā)。



3. License的管理

可以在Licensing標(biāo)簽中更新License。



DataStage Designer

DataStage Designer是ETL Job開發(fā)的核心環(huán)境。值得注意的是,登陸DataStage Designer 的時(shí)候,不僅要指定DataStage Server 的IP,而且要指定連接到這個(gè)DataStage Server上的哪個(gè)項(xiàng)目上面,上面已經(jīng)提到DataStage的項(xiàng)目是由DataStage Administrator 來(lái)創(chuàng)建的。DataStage Designer的主要功能可以概括為以下三個(gè)方面:

1. ETL Job的開發(fā)

DataStage Designer里面包含了DataStage為ETL開發(fā)已經(jīng)構(gòu)建好的組件, 主要分為兩種,一種是用來(lái)連接數(shù)據(jù)源的組件,另一種是用來(lái)做數(shù)據(jù)轉(zhuǎn)換的組件。利用這些組件,開發(fā)人員可以通過(guò)圖形化的方式進(jìn)行ETL Job的開發(fā)。

2. ETL Job的編譯

開發(fā)好ETL Job后,可以直接在DataStage Designer里面進(jìn)行編譯。如果編譯不通過(guò),編譯器會(huì)幫助開發(fā)人員定位到出錯(cuò)的地方。

3. ETL Job的執(zhí)行

編譯成功后,ETL Job就可以執(zhí)行了,在DataStage Designer里面可以運(yùn)行ETL Job。ETL Job的運(yùn)行情況可以在DataStage Director中看到,這方面的內(nèi)容將在介紹DataStage Director的時(shí)候提到。

DataStage Manager

DataStage Manager主要用來(lái)管理項(xiàng)目資源。一個(gè)項(xiàng)目可能包含多個(gè)ETL Job,可以用DataStage Manager把一個(gè)項(xiàng)目里面的ETL Job導(dǎo)出來(lái)。然后再用DataStage Manager導(dǎo)入到另外一個(gè)項(xiàng)目中去,利用這個(gè)功能一方面可以實(shí)現(xiàn)ETL Job的備份,另一方面就是可以在多個(gè)項(xiàng)目之間來(lái)重復(fù)使用開發(fā)好的ETL Job。在DataStage Manager里面可以把數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)直接導(dǎo)入到項(xiàng)目中來(lái),供這個(gè)項(xiàng)目中的所有ETL Job使用。DataStage Designer也提供了從數(shù)據(jù)庫(kù)中直接導(dǎo)入表結(jié)構(gòu)的功能。

DataStage Director

DataStage Director 主要有以下兩個(gè)功能:

1. 監(jiān)測(cè)ETL Job的運(yùn)行狀態(tài)

ETL Job在DataStage Designer中編譯好后,可以通過(guò)DataStage Director來(lái)運(yùn)行它。前面在介紹DataStage Designer的時(shí)候提到在DataStage Designer中也可以運(yùn)行ETL Job,但是如果要監(jiān)測(cè)ETL Job的運(yùn)行情況還是要登陸到DataStage Director中。在這里,你可以看到ETL Job運(yùn)行的詳細(xì)的日志文件,還可以查看一些統(tǒng)計(jì)數(shù)據(jù),比如ETL Job每秒所處理的數(shù)據(jù)量。

2. 設(shè)置何時(shí)運(yùn)行ETL Job

ETL Job開發(fā)完成后,我們可能希望ETL Job在每天的某個(gè)時(shí)間都運(yùn)行一次。DataStage Director為這種需求提供了解決方案。在DataStage Director中可以設(shè)置在每天、每周或者每月的某個(gè)時(shí)間運(yùn)行ETL Job。





回頁(yè)首


ETL Job的并行執(zhí)行

ETL Job的并行執(zhí)行是IBM WebSphere DataStage企業(yè)版的一大特色。ETL Job開發(fā)好以后,可以在多臺(tái)裝有DataStage Server的機(jī)器上并行執(zhí)行,這也是傳統(tǒng)的手工編碼方式難以做到的。這樣,DataStage就可以充分利用硬件資源。而且,當(dāng)你的硬件資源升級(jí)的時(shí)候也不用修改已經(jīng)開發(fā)好的ETL Job,只需要修改一個(gè)描述硬件資源的文件即可。并行執(zhí)行能力是DataStage所能處理數(shù)據(jù)的速度可以得到趨近于線性的擴(kuò)展,輕松處理大量數(shù)據(jù)

。



回頁(yè)首


開發(fā)一個(gè)簡(jiǎn)單的ETL Job

我們將要開發(fā)一個(gè)非常簡(jiǎn)單的ETL Job,使大家對(duì)用DataStage進(jìn)行ETL開發(fā)有一個(gè)總體的認(rèn)識(shí)。將要開發(fā)的ETL Job是把DB2數(shù)據(jù)庫(kù)Source中的表employee的內(nèi)容導(dǎo)入到另外一個(gè)DB2數(shù)據(jù)庫(kù)Target中的表employee中去。其中兩個(gè)數(shù)據(jù)庫(kù)中的employee表的結(jié)構(gòu)是相同的。employee表的結(jié)構(gòu)為:



這里需要說(shuō)明的是,DB2數(shù)據(jù)庫(kù)的Client端必須和DataStage Server裝在同一臺(tái)機(jī)器上面。如果要連接的DB2數(shù)據(jù)庫(kù)的Server和DataStage Server不在同一臺(tái)機(jī)器上面,那么就需要先用和DataStage Server裝在同一臺(tái)機(jī)器上的DB2的Client端提供的工具"配置助手"把要連接的數(shù)據(jù)庫(kù)添加到DB2的Client端當(dāng)中。這就為DataStage連接該數(shù)據(jù)庫(kù)做好了準(zhǔn)備。另外一點(diǎn)需要注意的是,如果你的DataStage Server是安裝在Windows上的,那么做完上面所描述的事情后就可以用DataStage連接DB2數(shù)據(jù)庫(kù)了,但是如果你的DataStage Server是安裝在Linux或者Unix上面的,你還需要配置DataStage的一個(gè)名字叫dsenv文件。因?yàn)槲覀兊睦赢?dāng)中DataStage Server是運(yùn)行在Linux上面的。我們將以Linux為例講述dsenv文件的配置方法。

1. 配置dsenv文件(Linux環(huán)境)

dsenv文件是主要是用來(lái)存放環(huán)境變量的,這些環(huán)境變量包含了DataStage要用到的類庫(kù),以及要連接的數(shù)據(jù)庫(kù)的安裝的路徑等。dsenv文件位于位于文件夾 $DataStage/DSEngine里面,$DataStage/是DataStage的安裝目錄,例如:/home/dsadm/Ascential/DataStage/。

打開dsenv文件,在文件的最后加上如下內(nèi)容:


DB2DIR=/opt/IBM/DB2/V8.1;export DB2DIR
            DB2INSTANCE=db2inst1; export DB2INSTANCE
            INSTHOME=/home/db2inst1;export INSTHOME
            PATH=$PATH:$INSTHOME/sqllib/bin:$INSTHOME/sqllib/adm:$INSTHOME/sqllib/misc
            export PATH
            LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INSTHOME/sqllib/lib;export LD_LIBRARY_PATH
            THREADS_FLAG=native;export THREADS_FLAG
            

這些環(huán)境變量用來(lái)描述DB2的安裝路徑、DB2的實(shí)例、以及DB2類庫(kù)的路徑。配置好這些環(huán)境變量后,我們就可以用DataStage連接DB2了。下面我們正式進(jìn)入開發(fā)環(huán)節(jié)。

2. 新建項(xiàng)目

(1)用DataStage Administrator登錄到DataStage Server。Host system是安裝DataStage Server的主機(jī),輸入它的IP地址或者主機(jī)名。另外再輸入用戶名和密碼后,單擊按鈕"OK";



(2)登錄后,在標(biāo)簽Projects中可以看到目前這個(gè)DataStage Server上面所有的項(xiàng)目。單擊按鈕"Add"新建一個(gè)項(xiàng)目;



(3)在彈出的對(duì)話框中輸入項(xiàng)目名SampleProject,項(xiàng)目存儲(chǔ)的默認(rèn)路徑是DataStage安裝路徑的Projects目錄下面,你可以通過(guò)單擊按鈕"Browse"來(lái)改變默認(rèn)路徑。注意不要鉤上選擇框"Create protected project",因?yàn)槿绻^上的話你所創(chuàng)建的工程將沒辦法被改變。單擊按鈕"OK";



(4)你會(huì)看到在項(xiàng)目列表里面已經(jīng)有了我們剛創(chuàng)建好的項(xiàng)目SampleProject,單擊按鈕"Close"關(guān)閉DataStage Administrator;



(5)用DataStage Designer登陸到DataSatge Server,輸入DataStage Server的IP或主機(jī)名以及用戶名和密碼,并指定Project為我們剛才創(chuàng)建的項(xiàng)目SampleProject。單擊按鈕"OK";



(6)在DataStage Designer當(dāng)中單擊File‘New去創(chuàng)建一個(gè)新的ETL Job;



(7)選擇"Parallel Job",單擊按鈕"OK";



(8) 一個(gè)新的ETL Job已經(jīng)創(chuàng)建了,單擊工具欄上的圖標(biāo)"保存",或者用快捷鍵"Ctrl+S"來(lái)保存,這時(shí)候一個(gè)保存ETL Job的對(duì)話框會(huì)彈出來(lái);



(9)在彈出的對(duì)話框中。在Job name一欄輸入"SampleJob",在Category中輸入"Sample"。單擊按鈕"OK";



(10) 保存好剛創(chuàng)建的ETL Job后,我們用DataStage Designer來(lái)導(dǎo)入數(shù)據(jù)庫(kù)的表結(jié)構(gòu)。在DataStage Designer的左下方的Repository中右鍵單擊"Table Definition"。然后選擇 Import‘Pug-in Meta Data Definitions…;



(11)在彈出的對(duì)話框中選擇DSDB2,單擊按鈕OK;



(12) 在彈出的對(duì)話框中,Server Name選擇Source。輸入用戶名和密碼,再鉤上Tables選擇框之后單擊按鈕Next;



(13)選擇表employee,把要保存到的目錄改成PlugIn\Source。然后單擊按鈕 Import.;



(14)重復(fù)步驟 10-13把存儲(chǔ)在Target數(shù)據(jù)庫(kù)中的表employee的表結(jié)構(gòu)導(dǎo)入進(jìn)來(lái),這次存放的路徑改成PlugIn\Target。完成后,你會(huì)在Repository中看到你導(dǎo)入的表結(jié)構(gòu);



(15)從左邊的palette中拖入兩個(gè)DB2/UDB API Stage到右邊的面板上。DB2/UDB2 API Stage是用來(lái)連接DB2數(shù)據(jù)庫(kù)的,我們這兩個(gè)DB2/UDB API Stage一個(gè)用來(lái)連接數(shù)據(jù)庫(kù)source,另一個(gè)用來(lái)連接數(shù)據(jù)庫(kù)Target;



(16)右鍵單擊左邊的DB2/UDB API Stage不要放開,一直拖拽鼠標(biāo)到右邊的DB2/UDB2 API Stage上面。這時(shí)候在這兩個(gè)Stage之間會(huì)出現(xiàn)一條連線,代表了數(shù)據(jù)的流向。下面我們將配置這兩個(gè)Stage的屬性;



(17)左鍵雙擊左邊的DB2/UDB API Stage,會(huì)彈出如下圖所示的屬性框。在標(biāo)簽Stage的子標(biāo)簽General中,設(shè)置Stage name為Source,Server name為Source,User ID和 Password設(shè)置為右權(quán)限訪問(wèn)這個(gè)數(shù)據(jù)庫(kù)的用戶名和密碼。Transaction Isolation的默認(rèn)的選項(xiàng)是Cursor Stability,保持默認(rèn)選項(xiàng)然后單擊標(biāo)簽Output;



(18)在標(biāo)簽Output的子標(biāo)簽General中,輸入Table names為employee,并在Query type下拉框中選擇Generated SQL Query。這樣DataStage會(huì)自動(dòng)幫你生成大部分的SQL代碼。然后單擊子標(biāo)簽Columns;



(19)在Columns子標(biāo)簽中單擊按鈕Load去導(dǎo)入剛才從數(shù)據(jù)庫(kù)中導(dǎo)進(jìn)來(lái)的表結(jié)構(gòu);



(20)在彈出的對(duì)話框中選擇目錄PlugIn\Source中的表結(jié)構(gòu)employee,然后單擊按鈕OK;



(21) 在彈出的對(duì)話框中選擇要導(dǎo)入的表的列,默認(rèn)是全選,保持默認(rèn)并單擊按鈕OK;



(22) 這時(shí)候你會(huì)看到表的字段已經(jīng)被導(dǎo)入進(jìn)來(lái)。單擊子標(biāo)簽SQL;



(23) 在子標(biāo)簽SQL中,你會(huì)看到系統(tǒng)自動(dòng)生成的SQL語(yǔ)句。單擊按鈕 View Data查看表employee中的數(shù)據(jù);



(24)當(dāng)前employee表中有兩條數(shù)據(jù)。單擊按鈕Close關(guān)掉數(shù)據(jù)查看窗口;



(25)現(xiàn)在我們開始編輯用來(lái)連接目標(biāo)數(shù)據(jù)庫(kù)的DB2/UDB API Stage的屬性。雙擊這個(gè)Stage,彈出的屬性設(shè)置窗口如下圖所示。在標(biāo)簽Stage的子標(biāo)簽General中,Stage name設(shè)置為Target,Server name設(shè)置為Target,User ID和Password分別設(shè)置為有權(quán)限對(duì)Target數(shù)據(jù)庫(kù)進(jìn)行操作的用戶名和密碼。其他屬性保持默認(rèn)值,然后單擊標(biāo)簽Input;



(26)在標(biāo)簽Input的子標(biāo)簽General中,設(shè)置Table name為employee,Update action選擇 Insert rows without cleaning。Create table action選擇Do not create target table。然后單擊子標(biāo)簽Columns;



(27)在子標(biāo)簽Columns中,你會(huì)發(fā)現(xiàn)已經(jīng)有表結(jié)構(gòu)load進(jìn)來(lái)了,這個(gè)表結(jié)構(gòu)是和source數(shù)據(jù)庫(kù)中的employee表的結(jié)構(gòu)一致的。單擊按鈕OK并保存ETL Job;



(28)在工具欄中單擊圖標(biāo)"編譯"對(duì)剛開發(fā)完的ETL Job進(jìn)行編譯;



(29)編譯過(guò)程中會(huì)彈出一個(gè)對(duì)話框顯示編譯的進(jìn)行情況。最終ETL Job編譯成功后對(duì)話框中會(huì)顯示如下圖中所示的消息:"Job successfully compiled with no errors";



(30)編譯成功后,我們打開DataStage Director來(lái)運(yùn)行我們開發(fā)的ETL Job。從DataStage Designer中打開DataStage Director的方法為:從菜單欄中選擇Tools‘Run Director;



(31)打開DataStage Director后你會(huì)在Sample目錄下面發(fā)現(xiàn)我們開發(fā)好的ETL Job SampleJob,狀態(tài)為Compiled。選擇SampleJob,然后單擊工具欄中的"運(yùn)行"按鈕;



(32)在彈出的對(duì)話框中可以設(shè)置運(yùn)行的參數(shù),比如出現(xiàn)多少個(gè)warning后ETL Job會(huì)自動(dòng)中止掉。我們保持這個(gè)對(duì)話框中的默認(rèn)設(shè)置,單擊按鈕Run;



(33) 這時(shí)候你會(huì)注意到SampleJob的狀態(tài)從Compiled變成了Running,等到SampleJob的狀態(tài)變成Finished后,該ETL Job的運(yùn)行就結(jié)束了;



(34)如下圖所示,SampleJob的狀態(tài)變成了Finished。SampleJob成功結(jié)束運(yùn)行;



(35)到DataStage Designer中,用View Data功能查看目標(biāo)數(shù)據(jù)庫(kù)Target中employee表中的數(shù)據(jù)。你會(huì)發(fā)現(xiàn)和源數(shù)據(jù)庫(kù)source中的employee表中的數(shù)據(jù)是一樣的。也說(shuō)明我們開發(fā)的ETL Job成功的完成了我們想要它完成的任務(wù)。







回頁(yè)首


總結(jié)

本文首先介紹IBM WebSphere DataStage在數(shù)據(jù)源連接能力以及并行執(zhí)行能力兩方面的特性,接著介紹了它的開發(fā)環(huán)境。最后用一個(gè)簡(jiǎn)單的ETL Job演示了用IBM WebSphere DataStage進(jìn)行ETL開發(fā)的過(guò)程,使大家對(duì)這個(gè)過(guò)程有了一個(gè)比較清楚的了解。IBM WebSphere DataStage提供的圖形化的環(huán)境使我們更容易進(jìn)行開發(fā)和維護(hù)。



關(guān)于作者

 

周登朋,上海交通大學(xué)研究生,熟悉DB2, IBM WebSphere DataStage. 對(duì)數(shù)據(jù)整合以及Java技術(shù)非常感興趣。 Email:zhoudengpeng@yahoo.com.cn

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多