【问题标题】:how to pass database connection properties dynamically to connect to different database in pentaho如何动态传递数据库连接属性以连接到 pentaho 中的不同数据库
【发布时间】:2014-08-04 14:00:12
【问题描述】:

我正在使用kettle转换将CSV文件数据存储到数据库。我的客户要求是将相同的CSV文件动态存储到不同的数据库(例如:Oracle和postgres)中。如何实现这一点?我已经尝试使用kettle Job并设置变量方法。它对我不起作用。如何将数据库连接属性作为参数动态传递给转换以连接到不同的数据库。请帮我解决这个问题。

【问题讨论】:

    标签: kettle


    【解决方案1】:

    要连接到相同类型的不同数据库,您只需设置相关属性(主机、端口、数据库名称、架构、用户名、密码以及连接所需的任何内容)。

    但是,如果您的数据库类型发生变化,您需要建立一个通用数据库连接,您需要在其中提供 JDBC 驱动程序的类、完整的连接 URL(包括参数)、用户名和密码。

    通过更改这些变量,您可以切换目标数据库。

    请记住,不能在同一转换中设置和使用变量。由于转换步骤的并行性质,您需要在转换 1 中设置变量值,然后在转换 B 中使用它们并将两个转换都包含在父作业中。最佳变量范围是“在根作业内有效”。

    【讨论】:

    • 如果答案是正确的,你应该接受它。投赞成票只是礼貌。
    • 您如何处理通用数据库连接?你是怎样做的?你能提供更多细节吗?谢谢
    【解决方案2】:

    实际上,对于在多个 KETTLE_HOME 位置使用多个 shared.xml 文件的不同数据库可能工作得很好,我没有时间彻底测试,但我确实使用 KETTLE_HOME 和 shared.xml 进行一次性运行,数据库是不过,至少根据 connection.type 相同。

    【讨论】:

      猜你喜欢
      • 2017-02-15
      • 2015-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      相关资源
      最近更新 更多