ETL DataStage實現V16

Parallel Job的實現方式基本一樣,只不過他們用到的Stage的”長相”相差比較大。另外,Parallel Job中有多得多的Stage可以選擇,用他們的組合可以實現很複雜,很強大的功能,前提是對這些Stage的能力,優缺點有個清楚的認識。不過,剛開始時,可以只熟悉一些常用的Stage,然後用時再考慮。

這些Stage將功能都進行了封裝,除了那些選項外,其他的不能添加、修改,其靈活性就差一些。一旦讀到數據,無論是從數據文件還是從數據庫中讀到的,其操作方式就完全一樣了,不用關心數據來自哪裡。

上面這兩個示例都是實現了很基本的功能,對於稍複雜的ETL,可能需要每一步都分成一個JOB,而不同的JOB間的關係可能會有依賴,互斥等,這些關係如何處理?這就用到了Job SequenceJob Sequence也是用StageParallel JobServer Job等聯接起來,再加上其他的Stage,就可以實現滿足哪些條件開始執行,哪些JOB執行完成功或者失敗之後,其他相關JOB才能執行,以及循環操作等功能。而且Job Sequence可以再調用Job Sequence,將其合理的組合,就可以比較好的實現ETL

4.5    Stage權衡取捨

術業有專攻,DS提供了這麼多的Stage,都是專於某類特定功能的,所以我們需要記住常用Stage的適用範圍。常用Stage的適用範圍和用法,詳見聯想網盤à文檔下的《DataStage學習文檔.doc》中的”常用組件使用方法”

4.6    性能優化

這個範圍很廣,就說點最常用的也是最廢話也是很容易忽視的東西,:

1、儘早將沒用的數據過濾掉,包括數據範圍和字段等,無論是用DS還是數據庫的存儲過程。

2、用最合適的Stage,如Join StageLookup StageDatabase Plug-inODBCSequentional fileDataSet功能很相近,某些情況下一種很合適,另一種用不了,或者是性能相差幾十甚至上百倍。

3、充分應用操作系統,DS,數據庫和自編程序的優勢,如果硬件資源豐富,可以大量的應用並行化(DS的,數據庫的,自編程序的多進程,多線程等),如果資源本來就很稀缺,就千萬別用什麼並行化的方式,會導致性能嚴重下降。

4、不要過早優化。說的人很多,我也不清楚啥意思,知道的幫我補充一下。

具體且有用的優化方式詳見聯想網盤à文檔下的《DataStage學習文檔.doc》中的”性能調優”。

第5章    ETL維護

5.1    自編程序的維護

把最新且正確的shell,存儲過程,DS Basic等程序放在CVS,或者SVN上,這個都知道,只是做起來很難,自勉。

5.2    DS維護

有大的JOB變動,就導出一份,最好別放在DS服務器上。雖然服務器很健壯,但99.9%的努力也許就是為了可能的0.1%

附錄I.    幫助

首先也是最重要的,就是打開的DS窗口中,按F1就出來的幫助,還有自帶的PDF的文檔,最全的,也是最權威的。

適合新手的,
http://dazheng.360doc.com
目錄”DW–>tools“下本人收集的幾篇入門級的文章。系統學習DS就是IBM出的紅皮書《IBM InfoSphere DataStage Data Flow and Job Design》,也在聯想網盤中。

遇到問題,不知道如何解決的,可以上DS MSN 群:group214752@xiaoi.com或者是到論壇:http://www.itpub.net/list.html 討論。

聯想網盤:http://www.lenovodata.com在首頁,點左下角的原測試版登錄,進去後輸入”登錄郵箱/密碼”: cuixuezheng@hotmail.com/group214752
。軟件和文檔都是從網上找到的,僅供學習用。

附錄II.    DS Job狀態

無論是在Job Control中用Basic調用JOB,或者是自己寫的調度程序,都需要知道DS JOB的狀態。以下是DS JOB常用的一些狀態

Status Code 

Description 

Job is Actually Running

Job Finished with no Warnings

Job Finished with Warnings

Job Finished with wit Fatal error

11 

Job Validated with No Warnings

12 

Job Validated with Warnings

13 

Job alidation Failed

21 

Job Reset Finished

96 

Job has Crashed

97 

Job was Stopped by Operator

98 

Job has not been Compiled

99 

Any Other Status

在用的過程中,發現我們正在運行的JOB的狀態返回值有時為空,不知道是不是那個版本軟件的BUG

 

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營