設計原理:經過在ODI的mapping中關聯主表和子表,而後在主表的rksj上設置時間過濾,最後將子表的字段映射到目標表中。在此設計中,須要有一個變量,此變量在第一次運行時,使用一個初始值,這樣第一次運行會獲取此初始值後的全部源數據到目標表,而後根據目標表的rksj更新此變量值,從而獲得目標表上最大的時間戳,再基於此時間點去獲取源表的記錄,從而實現每次運行均可以獲得新增的數據。app
新建一個變量保存目標表入庫時間的最大值。ide
基於文本類型定義變量。spa
使用SQL獲取目標表時間字段的最大值。設計
主表的數據基於時間字段過濾,再跟子表關聯後加載子表的數據到目標表。日誌
主表的過濾條件設置orm
主表和子表的關聯條件設置blog
目標表上新增的入庫時間字段,從源端主表獲取。ip
以上映射創建完成以後,能夠試運行,確保邏輯是正確的,理論上會基於變量的初始值獲取源端的數據加載到目標表。即獲取rksj>’2018-05-11’的全部數據加載到目標表。ci
再創建相關的數據處理流程,即循環獲取增量。新建一個「程序包」get
拖拉剛纔建立的變量兩次,以及剛纔的mapping.
第一個變量上設置爲「聲明變量」
第二個變量爲「刷新變量」
以上程序包已經能夠手工執行,每次執行獲取相應的增量數據到目標表。
保存「程序包」,並生成場景。
在生成的場景上,新建一個調度(前提是後臺的agent在正常運行)
設置場景開始運行的時間
設置場景循環的間隔
在agent配置處,更新調度信息。
如今便可在查看日誌處,看到指定間隔的時間以後,有該程序包處理的日誌,以及每次運行後獲取的增量記錄數等信息。