将数据库连接parameter passing给Kettle aka PDI表从Excel中dynamicinput步骤

我有一个要求,每当我运行我的Kettle作业时,数据库连接参数必须在每次运行时从一个Excel源中dynamic获取。

说我有一个excel列名称:主机名,用户名,数据库,密码。

我想要传递这些连接参数到我的表input步骤dynamic,每当作业运行。

这正是我想要做的。

在这里输入图像描述

你可以通过

  • 从源读取数据库连接参数(例如Excel或在我的示例中为CSV文件)
  • 将参数存储在variables中
  • 在连接设置中使用variables。

继续如下

  • 为设置variables创build另一个转换(不能在使用它的相同转换中执行此操作):

用于设置变量的转换

Set Variables元素中configurationvariables:

配置变量

  • 在元素读/写你的数据创build一个新的连接,并使用${variable_name}设置连接参数。 请注意,您必须盲目地将${password}写入相应的字段。 另外请注意,这可能是一个安全问题,因为该值可能在日志文件中显示为纯文本!

配置数据库连接

  • 在你的工作中首先调用variables转换,然后调用function部分:

工作

所有你需要的是XLSinput和Set Variables步骤。 将根variables定义为在根作业中有效,并且可以在后续作业中使用它们,只要在定义连接时由相同的根作业调用它们即可。

“将结果复制到行”和“从结果获取行”用于将信息(数据行)从一个转换发送到同一个父作业中的下一个转换或作业。 他们不习惯在步骤之间发送数据,这就是跳转的目的。