Smart's Blog

kettle 命令行传参

需求:从服务器上pgsql的一张表抽取100条数据插入到本地mysql对应表中,表名可以自己通过命令行传参指定。

新建一个转换如下图:

image

表输入的配置如下如下:
image

其中的sql语句是一条动态sql,表名的写法是${table},表示使用命名参数table,接下来我们需要设置命名参数。

先新建一个job,在job的属性里设置命名参数:
image

然后将转换拖入这个job:
image

保存得到job.kjb文件,然后在kettle的安装目录下运行kettle.sh,命令如下:

./kitchen.sh -file /Users/yangml/Desktop/项目资料/各种项目/ 百胜项目/kettle\ 测试/测试job.kjb “-param:table=user1”

-file 后写需要执行的job文件的路径,”-param:key=value”为传入的参数,key的名称要和我们在job或转换里设置的命名参数名称对应。最后的执行结果如下:
image