如何从java将数据库连接传递给Kettle作业
Posted
技术标签:
【中文标题】如何从java将数据库连接传递给Kettle作业【英文标题】:How to pass database connection to Kettle job from java 【发布时间】:2014-04-15 06:29:18 【问题描述】:我有一个 Kettle 作业,它将从数据库 X 获取数据并将数据复制到另一个数据库 Y。
我使用了一些 Kettle jars 从 java 运行这项工作,并且工作正常。
现在,我的要求是,如何将数据库名称从 java 动态传递给作业?
例子:
String filename = "myJob.kjb";
KettleEnvironment.init();
JobMeta jobMeta = new JobMeta(filename, null);
jobMeta.setParameterValue("TEST_DB", "MyDatabase");
jobMeta.setInternalKettleVariables();
Job job = new Job(null, jobMeta);
job.start();
job.waitUntilFinished();
【问题讨论】:
【参考方案1】:你尝试过 jobMeta.activateParameters() 吗?
【讨论】:
【参考方案2】:似乎jobMeta.activateParameters()
似乎不起作用,动态传递连接所需的一切,但是作业步骤未选择参数化名称,如下所示:
<connection>$kettle.db.connection.name</connection>
【讨论】:
【参考方案3】:您不需要动态传递数据库名称使用通用连接将所有数据库连接属性动态传递给水壶作业。
【讨论】:
以上是关于如何从java将数据库连接传递给Kettle作业的主要内容,如果未能解决你的问题,请参考以下文章