Kettle-动态数据链接,使JOB得以复用

Posted xiaotao726

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kettle-动态数据链接,使JOB得以复用相关的知识,希望对你有一定的参考价值。

动态数据连接,使JOB得以复用 

背景

移动执法系统在目前的主要的部署策略为1+N的方式,即总队部署一套,地市各部署一套,且基本都在环保专网。各地市的业务数据需要推送到总队系统,以便总队系统做整体的监督、决策。在整个数据对接过程中,基于Kettle开发的各地市对接省厅的ETL程序,除了数据链接信息不同之外,其他信息基本相同。重复开发的成本过高。是否可以通过切换数据库链接信息以复用相同的数据对接程序?
技术图片

设计思路

获取数据链接信息进行保存到结果,然后循环调用数据链接信息,动态配置给数据抽取的程序,以达到JOB的复用。
技术图片

kettle实现
  • 增加动态数据链接(使用变量的方式,以实现动态获取)
    技术图片
  • 执行入口JOB
    技术图片
  • 可复用JOB
    技术图片
  1. TR_LOAD_DB:获取数据链接信息,并将数据链接信息保存的记录(内存中);
  2. JOB_LOAD_ZFSJ_ITEM:可复用的数据对接程序
  3. TR_SET_DB_PRO:将传递过来的数据链接信息保存到变量中。
  4. TR_LOAD_[数据类型]:加载指定的业务数据
  5. TR_EXCUTE_SQL:各地市数据加载成功之后的后操作(非必须)
  • !重点设置说明

TR-LOAD-DB:
技术图片
JOB-LOAD-ZFSJ-ITEM:
为了可以逐条调用数据链接信息,需要配置成“执行每一个输入行”
技术图片
TR-SET-DB-PRO:
技术图片
TR-LOAD-[数据类型]:
源数据链接使用动态数据链接
技术图片

这样配置完成之后,针对1+N方式部署的系统,需要做数据对接整合的,就只需要开发一次数据对接程序,然后配置相应的数据链接信息,就可以完成对N个系统的数据对接工作,比起以前复制多份的方式,方便了很多,而且也便于以后进行维护。

以上是关于Kettle-动态数据链接,使JOB得以复用的主要内容,如果未能解决你的问题,请参考以下文章

从 Pentaho Kettle Job 的 java api 调用中获取数据

kettle运行job不自动释放内存

kettle的job中运行每行

Kettle(Pentaho)实现web方式远程执行job或transformation

Pentaho BIServer Community Edtion 6.1 使用教程 第三篇 发布和调度Kettle(Data Integration) 脚本 Job & Trans(示例代码

动态链接:共享程序