在進行資料匯整時為了查詢方便及效率,會進行反正規化,將要關聯的資料表匯整至一張目標資料表中。
使用 LOOKUP_EXT() 函數,來找出對應值。首先在 Data Flow 工作區中拖拉出兩個來源資料表、一個 Query Transform 及一個目標資料表。
D_COMPLAINTS 資料表:RecordID、CallerName、ServiceTypeID、CreatedDateTime
B_SERVICETYPE 資料表:ServiceTypeID、ServiceTypeName
T4 目標資料表:RecordID、CallerName、ServiceTypeID、CreatedDateTime、ServiceTypeName
( 來源資料表可以來自不同的資料來源或資料庫 )
接著要定義 join 來源資料表,點擊 Query Transform 開啟編輯視窗。在 Schema In 中可以看到來源兩個資料表的 Schema,切換至 From 頁籤,在 Join paris 下方的區域中,Left 欄位選取 D_COMPLAINS 資料表,在 Right 欄位選取 B_SERVICETYPE 資料表;在 Join Condition 欄位會自動找出兩張資料表中的 Primary Key 和 Foreign Key 的欄位名稱。
在 FROM clause 區域中會顯示其語法如下:
FROM D_COMPLAINTS __SAP_INNER_JOIN B_SERVICETYPE ON (
B_SERVICETYPE.SERVICETYPEID = D_COMPLAINTS.SERVICETYPEID
)
SET("ui_on_text"='B_SERVICETYPE.SERVICETYPEID = D_COMPLAINTS.SERVICETYPEID')
點選 Smart Edit Icon ,開啟 Smart Edit 的視窗。
在 Smart Edit 視窗內加入以下的條件篩選特定日期區間至目標資料表。
B_SERVICETYPE.SERVICETYPEID = D_COMPLAINTS.SERVICETYPEID
AND D_COMPLAINTS.CREATEDDATETIME >= to_date('2013/01/01','yyyy/mm/dd')
AND D_COMPLAINTS.CREATEDDATETIME <= to_date('2013.01.31','yyyy.mm.dd')
to_date('Input String 輸入字串','Format String 格式字串') 函數,可以將字串轉換為日期,輸入字串的格式要和格式字串一致。
再將 Schema In 的相關欄位對應至 Schema Out 中。
點擊目的資料表,在 Options 頁籤中勾選 Delete data from table before loading 。
執行 JOB 即可看到成功的畫面。
沒有留言:
張貼留言