InfoSphere DataStage 是 IBM 統一資料內建平台InfoSphere Information Server的重要元件,是業界主流的ETL(Extract, Transform, Load)軟體。
在之前的文章中,小編曾經介紹過DataStage不僅支援各種異構平台的資料庫,提供多種功能強大的資料庫連接配接器;而且也支援對非結構化資料的通路,例如TXT、CSV、XML、COBOL和Excel檔案等。
而對于常見的資料庫存儲過程,DataStage同樣也提供強大的支援,接下來将以Oralce的存儲過程為例示範在DataStage如何進行調用。
前期準備工作
1. 建立存儲過程p2,p2定義了一個遊标查詢表A的資料,然後将資料傳回給輸出參數。
2. 表A的結構如下所示
3. 表A的資料如下所示
4. 在DataStage中導入存儲過程P2的定義
5. 使用設定好的Oracle資料源(ODBC DSN): oraodbc
6. 選擇存儲過程P2,開始導入
将存儲過程作為資料源生成資料
1. 建立DataStage作業,使用Stored Procedure Stage作為資料源,将結果輸出 到Peek元件(Peek元件一般用于開發調試,可将運作結果直接列印到螢幕中)。
2. 設定存儲過程的連接配接資訊
3. 設定存儲過程屬性,選擇存儲過程類型為Source(表示作為源),在Syntax屬性欄手工設定輸入參數pa的值為1,輸出參數pb用:1作為占位符,表示将存儲過程的結果輸出到後續的DataStage元件(Peek)。
4. 在Output屬性欄中設定要輸出的列定義,aname是自己設定的,ProCode和ProMess列由系統自動生成。
5. 運作作業,日志顯示存儲過程P2被DataStage調用,并輸出正确結果。
存儲過程作為中間過程處理資料
1. 建立DataStage作業,使用Stored Procedure Stage作為中間過程,讀取Oracle表資料後,經過中間轉換和處理,将最終結果輸出到Peek元件。
2. 檢視源端Oracle表資料
3. 設定存儲過程的連接配接資訊
4. 設定存儲過程屬性,選擇存儲過程類型為Transform(表示作為中間階段),在Syntax屬性欄中手工設定輸入參數pa用:1作為占位符,表示讀取前面Oracle資料庫的表資料;輸出參數pb用:2作為占位符,表示将存儲過程的處理結果輸出到後續的DataStage元件(Peek)。
5. 檢視Input選項
6.檢視Output選項
7. 将PA映射到auuid字段,參數類型設定為Input;将PB映射到aname字段,參數設定為Output。
8. 運作作業,日志顯示存儲過程P2被DataStage調用,并輸出正确結果。