1.需求
將ods_cust_info表抽取到edw層,當表中有新增記錄,只抽取新增記錄,而不全表重新執行抽取。
2.操作
1.導入源表:從oltp用戶下導入ods_cust_info表。
2.定義目標表:根據源表,在目標表新增edw_date日期字段,命名爲edw_cust_info表,在edw用戶下創建該表。
3.創建映射:
使用lookup查找轉換組件,查找目標表edw_cust_info,設置目標表的edw_cust_id與源表的ods_cust_id相等,若沒有相等,則說明是新增的數據,抽取到目標表中。
設置連接來源是edw層。
使用update更新策略轉換組件,標記要插入、刪除、更新或拒絕的記錄的表達式,本需求是要求當edw_cust_id爲空的時候就插入到表中,否則拒絕插入。
把源表的字段全部拉到update組件,再從lookup組件中把edw_cust_id字段拉到update組件,當edw_cust_id爲空時,就插入源表的所有字段到目標表,若edw_cust_id不爲空,則不插入。(這就是增量抽取)
使用expression表達式轉換組件,添加一個日期時間字段,最終再連接到目標表,保存映射
4.創建任務:
清空表truncate不需要打勾,因爲我們需要進行增量抽取,有新增記錄就抽取進目標表。
5.創建工作流,保存執行,可以看到導入了3000條數據。
3.測試
1.在ods_cust_info表中新添加2條數據,記得添加完成後要提交。
2.重新執行工作流,看見只會導入新添加的2條數據。