動態數據連接,使JOB得以復用
背景
移動執法系統在目前的主要的部署策略為1+N的方式,即總隊部署一套,地市各部署一套,且基本都在環保專網。各地市的業務數據需要推送到總隊系統,以便總隊系統做整體的監督、決策。在整個數據對接過程中,基於Kettle開發的各地市對接省廳的ETL程序,除了數據鏈接信息不同之外,其他信息基本相同。重復開發的成本過高。是否可以通過切換數據庫鏈接信息以復用相同的數據對接程序?
設計思路
獲取數據鏈接信息進行保存到結果,然后循環調用數據鏈接信息,動態配置給數據抽取的程序,以達到JOB的復用。
kettle實現
- 增加動態數據鏈接(使用變量的方式,以實現動態獲取)
- 執行入口JOB
- 可復用JOB
TR_LOAD_DB:獲取數據鏈接信息,並將數據鏈接信息保存的記錄(內存中);
JOB_LOAD_ZFSJ_ITEM:可復用的數據對接程序
TR_SET_DB_PRO:將傳遞過來的數據鏈接信息保存到變量中。
TR_LOAD_[數據類型]:加載指定的業務數據
TR_EXCUTE_SQL:各地市數據加載成功之后的后操作(非必須)
- !重點設置說明
TR-LOAD-DB:
JOB-LOAD-ZFSJ-ITEM:
為了可以逐條調用數據鏈接信息,需要配置成“執行每一個輸入行”
TR-SET-DB-PRO:
TR-LOAD-[數據類型]:
源數據鏈接使用動態數據鏈接
這樣配置完成之后,針對1+N方式部署的系統,需要做數據對接整合的,就只需要開發一次數據對接程序,然后配置相應的數據鏈接信息,就可以完成對N個系統的數據對接工作,比起以前復制多份的方式,方便了很多,而且也便於以后進行維護。