天天看點

DataStage最佳實踐之存儲過程調用

InfoSphere DataStage 是 IBM 統一資料內建平台InfoSphere Information Server的重要元件,是業界主流的ETL(Extract, Transform, Load)軟體。

在之前的文章中,小編曾經介紹過DataStage不僅支援各種異構平台的資料庫,提供多種功能強大的資料庫連接配接器;而且也支援對非結構化資料的通路,例如TXT、CSV、XML、COBOL和Excel檔案等。

而對于常見的資料庫存儲過程,DataStage同樣也提供強大的支援,接下來将以Oralce的存儲過程為例示範在DataStage如何進行調用。

前期準備工作

1. 建立存儲過程p2,p2定義了一個遊标查詢表A的資料,然後将資料傳回給輸出參數。

DataStage最佳實踐之存儲過程調用

2. 表A的結構如下所示

DataStage最佳實踐之存儲過程調用

3. 表A的資料如下所示

DataStage最佳實踐之存儲過程調用

4. 在DataStage中導入存儲過程P2的定義

DataStage最佳實踐之存儲過程調用

5. 使用設定好的Oracle資料源(ODBC DSN): oraodbc

DataStage最佳實踐之存儲過程調用

6. 選擇存儲過程P2,開始導入

DataStage最佳實踐之存儲過程調用

将存儲過程作為資料源生成資料

1. 建立DataStage作業,使用Stored Procedure Stage作為資料源,将結果輸出 到Peek元件(Peek元件一般用于開發調試,可将運作結果直接列印到螢幕中)。

DataStage最佳實踐之存儲過程調用

2. 設定存儲過程的連接配接資訊

DataStage最佳實踐之存儲過程調用

3. 設定存儲過程屬性,選擇存儲過程類型為Source(表示作為源),在Syntax屬性欄手工設定輸入參數pa的值為1,輸出參數pb用:1作為占位符,表示将存儲過程的結果輸出到後續的DataStage元件(Peek)。

DataStage最佳實踐之存儲過程調用

4. 在Output屬性欄中設定要輸出的列定義,aname是自己設定的,ProCode和ProMess列由系統自動生成。

DataStage最佳實踐之存儲過程調用

5. 運作作業,日志顯示存儲過程P2被DataStage調用,并輸出正确結果。

DataStage最佳實踐之存儲過程調用

存儲過程作為中間過程處理資料

1. 建立DataStage作業,使用Stored Procedure Stage作為中間過程,讀取Oracle表資料後,經過中間轉換和處理,将最終結果輸出到Peek元件。

DataStage最佳實踐之存儲過程調用

2. 檢視源端Oracle表資料

DataStage最佳實踐之存儲過程調用

3. 設定存儲過程的連接配接資訊

DataStage最佳實踐之存儲過程調用

4. 設定存儲過程屬性,選擇存儲過程類型為Transform(表示作為中間階段),在Syntax屬性欄中手工設定輸入參數pa用:1作為占位符,表示讀取前面Oracle資料庫的表資料;輸出參數pb用:2作為占位符,表示将存儲過程的處理結果輸出到後續的DataStage元件(Peek)。

DataStage最佳實踐之存儲過程調用

5. 檢視Input選項

DataStage最佳實踐之存儲過程調用

6.檢視Output選項

DataStage最佳實踐之存儲過程調用

7. 将PA映射到auuid字段,參數類型設定為Input;将PB映射到aname字段,參數設定為Output。

DataStage最佳實踐之存儲過程調用

8. 運作作業,日志顯示存儲過程P2被DataStage調用,并輸出正确結果。

DataStage最佳實踐之存儲過程調用

繼續閱讀