1. 程式人生 > >DataStage最佳實踐之儲存過程呼叫

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