【问题标题】:Pass DB Connection parameters to a Kettle a.k.a PDI table Input step dynamically from Excel将 DB 连接参数传递给 Kettle a.k.a PDI 表 从 Excel 动态输入步骤
【发布时间】:2014-06-22 20:27:55
【问题描述】:

我有一个要求,即每当我运行 Kettle 作业时,必须在每次运行时从 excel 源动态获取数据库连接参数。

假设我有一个列名的 excel:主机名、用户名、数据库、密码。

我想在作业运行时将这些连接参数动态传递给我的表输入步骤。

这就是我想要做的。

【问题讨论】:

    标签: excel parameters pentaho kettle


    【解决方案1】:

    你可以通过

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

    如下进行

    • 创建另一个转换来设置变量(您不能在使用它的同一转换中执行此操作):

    Set Variables 元素中配置变量:

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

    • 在您的工作中,首先调用变量转换,然后调用函数部分:

    【讨论】:

    • 谢谢马库斯。它现在工作得很好。非常感谢。问候,
    • @Marcus 将为连接的 csv 文件输入中的每一行运行该作业吗?
    • 谢谢@Marcus。你知道我是否可以为复选框属性设置变量吗?我的意思是,例如,设置“使用 .. 来分离架构 ...”。我需要为带有 Native (JDBC) 驱动程序的 MS SqlServer (Native) 设置“使用集成安全性”,并为不同的环境更改连接。
    【解决方案2】:

    您只需要 XLS 输入和设置变量步骤。将您的变量定义为在根作业中有效,您可以在后续作业中使用它们,只要它们在定义连接时被同一个根作业调用。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-18
      • 2022-08-14
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 1970-01-01
      相关资源
      最近更新 更多