首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Pentaho中的变量为两个不同的数据集定义数据库连接

问使用Pentaho中的变量为两个不同的数据集定义数据库连接
EN

Stack Overflow用户
提问于 2019-04-08 23:34:29
回答 2查看 1.1K关注 0票数 0

我需要使用一个变量连接到两个不同的数据集,该变量用于比较这些数据集。我使用了两个不同的表输入步骤,其中数据库连接名称和主机名是硬编码的。我想使用一个变量来定义这些连接,并且应该能够连接到它们,而不是使用硬编码

​

EN

回答 2

Stack Overflow用户

发布于 2019-04-09 00:40:56

您可以在.kettle目录下的kettle.properties文件中定义变量。然后,您可以在数据库连接设置中使用这些变量。

您还可以在自己的.properties文件中定义变量,并使用Set variables作业条目读取它们。

如下所示设置变量:

代码语言:javascript
复制
db_name.host=localhost
db_name.db=databasename
db_name.user=username

然后使用${db_name.host}等格式访问作业/转换中的这些变量。

票数 1
EN

Stack Overflow用户

发布于 2019-04-09 04:10:09

使用JNDI设置所有连接参数:

1)编辑文件:data-integration/simple-jndi/jdbc.properties,添加您的DB连接字符串,例如:

代码语言:javascript
复制
db1/type=javax.sql.DataSource
db1/driver=com.mysql.jdbc.Driver
db1/url=jdbc:mysql://127.0.0.1:3305/mydb
db1/user=user1
db1/password=password1 
db2/type=javax.sql.DataSource
db2/driver=com.mysql.jdbc.Driver
db2/url=jdbc:mysql://mydbserver:3306/mydb
db2/user=user2
db2/password=password2 

在这里,我们创建了两个JNDI名称db1和db2,我们可以在PDI作业/转换中使用它们。

(2)在您的PDI作业/转换中,通过菜单'Edit‘-> Settings... -> Parameters Tab添加一个参数,即mydb。如果使用了多个数据库参数,则可以添加更多这样的数据库参数。

(3)在Table Input步骤中,单击Edit...或New..按钮,在接下来的对话框中,将Access:框中的项目切换到JNDI,然后在右上角的JNDI name中添加${mydb}。您还可以使用我们在(1)中定义的纯文本db1和db2来标识DB连接。

使用JNDI来管理DB连接,我们能够通过使用参数简单地在登台和生产数据库之间切换。您可以执行与PRD类似的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55576985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档