如何在 Carte 上运行的 Pentaho Kettle Job 中为数据库日志连接名称使用变量?

Posted

技术标签:

【中文标题】如何在 Carte 上运行的 Pentaho Kettle Job 中为数据库日志连接名称使用变量?【英文标题】:How to use variable for database Log Connection name in Pentaho Kettle Job running on Carte? 【发布时间】:2018-05-15 23:32:36 【问题描述】:

我想参数化要使用的(预定义和参数化的)日志数据库连接,例如data.import.log.db=LOG_DB:

但我无法使用作业参数 data.import.log.db 或在调用父作业中设置变量 data.import.log.db

我看到的唯一方法是在kettle.properties 中设置变量,或者从命令行设置变量。但是如果作业在 Carte 中执行,我希望调用者决定要使用哪个日志连接——有时调用者决定根本不记录(空变量)。我是否缺少有关如何将此变量移交给作业日志连接的内容?

提前感谢建设性的提示和解释。

-- 编辑:使用 PDI CE 8.0.0-28。

【问题讨论】:

这个类似的帖子没有合适的答案,所以我敢再问一遍,也明白我为什么失败了。 ***.com/questions/36052615 【参考方案1】:

您不能参数化连接名称。

您可以参数化其属性(例如主机、端口、用户名和密码),但不能参数化连接名称本身。

【讨论】:

【参考方案2】:

恐怕你不能。日志参数是在流程的早期定义的,远在读取作业/转换的变量之前。

您可以做的是登录一个 tmp 表,然后让调用者通过简单的转换来决定是否必须复制该表以及复制到哪里。

这种方法的缺点是并发作业。然后复制转换需要根据通道号做出决定。

【讨论】:

以上是关于如何在 Carte 上运行的 Pentaho Kettle Job 中为数据库日志连接名称使用变量?的主要内容,如果未能解决你的问题,请参考以下文章

pentaho 数据集成:执行 PDI BI Server 还是使用 carte?

kettle 包错误怎么处理

如何在 Pentaho BI server v6 CE 上部署预定的 Kettle 作业

如何卸载kettle?

使用 Web 服务运行 PDI 作业

怎么查看kettle的版本