來源:互聯網
上載者:User
關鍵字
Datastage
Transformer
IBM InfoSphere DataStage 是業界主流的 ETL(Extract, Transform, Load) 工具,它使用了 Client-Server 架構,在伺服器端存儲所有的專案和中繼資料, 並支援在多重資料結構中對大量資料進行收集、整合和轉換。 用戶端 DataStage Designer 為整個 ETL 過程提供了一個圖形化的開發環境,使用者在 Designer 中對 DataStage Job 的進行設計和開發。 DataStage 中提供了多個過程處理 Stage 來滿足 ETL 的需要,然而 Transformer Stage 在這些 Stage 中用途和使用方法最為廣泛,本文將對 Transformer Stage 在 ETL 過程中的用法及實現的 功能做出詳盡描述。 本文中涉及到 IBM InfoSphere DataStage 為 IBM Information Server 8.0.1 版本。
Transformer Stage 元件介紹
Transformer Stage 在 DataStage 中是一個重要的,HTTP://www.aliyun.com/zixun/aggregation/17547.html">功能強大的元件,在 ETL 過程中,它承擔「T 」( 即資料的轉化 ) 的責任。 在 Transformer Stage 中可以指定資料的來源和目的地,匹配對應輸入欄位和輸出欄位,並指定轉換規則和約束條件。
圖 1. Transformer Stage 運用在 DataStage job 中的運用
圖 2. Transformer Stage 列映射與欄位運算式
Transformer Stage 在 DataStage job 中可實現的功能及案例分析
1. 欄位轉換
欄位轉換是 Transformer Stage 中最常見的一個功能,它能夠將來源資料根據一定的規格轉換成為目標資料。 下面將以 ETL 過程中比較常見的 Date 與 Timestamp 相互轉換為例,說明欄位轉換的實現方式。
1.1 源資料類型為 Timestamp,目標型別為 Date
清單 1. 時間轉換函數
TimestampToDate(in. ADD_DATE)
圖 3. 欄位轉換運算式
圖 4. 欄位轉換前後對比
1.2 源資料類型為 Date,目標型別為 Timestamp
這種轉換需要將 Date 類型先轉換為 Varchar 類型,再將 Varchar 補齊 Timestamp 所需的時分秒的字元,再轉換為 Timestamp 類型
清單 2. 時間轉換函數
StringToTimestamp((DateToString(in. ADD_DATE,"%yyyy-%mm-%dd"):' 00:00:00'), "%yyyy-%mm-%dd %hh:%nn:%ss")
圖 5. 欄位轉換運算式
圖 6. 欄位轉換前後對比