动态数据连接,使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个系统的数据对接工作,比起以前复制多份的方式,方便了很多,而且也便于以后进行维护。