Parallel Job的實現方式基本一樣,只不過他們用到的Stage的”長相”相差比較大。另外,Parallel Job中有多得多的Stage可以選擇,用他們的組合可以實現很複雜,很強大的功能,前提是對這些Stage的能力,優缺點有個清楚的認識。不過,剛開始時,可以只熟悉一些常用的Stage,然後用時再考慮。
這些Stage將功能都進行了封裝,除了那些選項外,其他的不能添加、修改,其靈活性就差一些。一旦讀到數據,無論是從數據文件還是從數據庫中讀到的,其操作方式就完全一樣了,不用關心數據來自哪裡。
上面這兩個示例都是實現了很基本的功能,對於稍複雜的ETL,可能需要每一步都分成一個JOB,而不同的JOB間的關係可能會有依賴,互斥等,這些關係如何處理?這就用到了Job Sequence。Job Sequence也是用Stage將Parallel Job、Server 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 Stage和Lookup Stage,Database Plug-in和ODBC,Sequentional file和DataSet功能很相近,某些情況下一種很合適,另一種用不了,或者是性能相差幾十甚至上百倍。
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 |
|
0 |
Job is Actually Running |
|
1 |
Job Finished with no Warnings |
|
2 |
Job Finished with Warnings |
|
3 |
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…