kettle通过命令行参数传递数据库连接信息

在用kettle进行数据库数据同步时,需要设置数据库连接信息,但是一般开发环境和生产环境数据库不一样,如果在开发阶段把数据库连接信息写死,那么在生产环境部署时又要重新打开.krt或.kjb文件重新编辑数据库连接信息。解决方法是数据库连接信息可以通过命令行参数传入,这样只需要在启动时改变一下参数就可以了。下面以配置一个简单的表输入为例来说明。

新建一个转换,数据库连接信息设置如下,注意我们都是用的变量,没有写死数据库连接信息。这里说个小插曲,如果我们定义的数据库连接没有在转换中用到,那么下次打开文件的时候这个定义的数据库连接就会消失,不得不吐槽这设计。。。

接下来我们定义一个转换,随便从数据库查点什么。

接下来在文件空白处右键,选择“转换设置”,在命名参数标签下设置我们刚才用到的4个参数。这个参数还可以设置默认值,也就是我们在命令行不指定参数值时会用默认值,设置默认值还有个好处是我们在spoon中调试时可以直接用这个默认值,不然每次我们在spoon中运行ktr文件时还要手动输入这些参数。我这里就先不设置了。

以上都设置好后,保存文件,然后输入如下命令执行即可将参数传入.ktr文件中进行使用。这里为了后期方便修改参数值,我设置了一些bat相关的变量。命令行有一个地方一定要注意,/param:"xxx=xxx"这里的双引号不能省略,我就在这里踩坑了,不加双引号参数是传递不了的。

:: kettle软件安装路径
set kettlePath=E:\zzj\apps\data-integration
:: *.kjb文件存放路径
set jobPath=E:\zzj\javaweb\ETL
:: 数据库连接url
set dbUrl=localhost
:: 数据库名
set dbName=mybatis
:: 数据库连接用户名
set dbUsername=root
:: 数据库连接密码
set dbPassword=123456
%kettlePath%\pan /file %jobPath%\test.ktr /param:"db_url=%dbUrl%" /param:"db_name=%dbName%" /param:"db_username=%dbUsername%" /param:"db_password=%dbPassword%"

执行成功

 

 

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值