首页 > 解决方案 > 如何使用 Java 更新 Pentaho 转换连接数据?

问题描述

我正在使用 Java 围绕 Pentaho 数据集成的功能构建一个宁静的 API。

我已经实现了几个端点,例如创建包含作业和转换的存储库、运行作业和转换、显示作业和转换的图像、在存储库中显示数据库连接的能力,以及更多。

我正在尝试构建一个允许更改数据源的端点,例如主机名、数据库名称等。但是在保存新的连接详细信息时遇到了问题。

这是我得到的一段代码。我只是为了测试目的对这些值进行了硬编码。我遍历包含 DatabaseMeta 的数组列表,然后更改字段的值。

for(DatabaseMeta meta: databaseMeta) {
       meta.setHostName(“test_host”) ;
       meta.setDBPort(“test_port”);
       meta.setDBName(“test_database”);
       repositoryService.updateDataSource(databaseMeta);
 }

updateDatasource() 方法简单地调用 repository.save()(它是 org.pentaho.di.repository 包的一部分)并传入 DatabaseMeta。

当此方法执行时,它会在我的存储库中创建一个 .kdb 文件,其中包含我在上面设置的值,并向端点发出 GET 请求会返回来自新文件的连接详细信息。但是,我只想覆盖现有转换连接中的值并在 GET 请求中返回它们。有什么办法可以做到这一点?任何帮助将不胜感激。

谢谢。

标签: javapentahopentaho-data-integration

解决方案


我不知道 JAVA 集成部分,但就纯 Pentaho 而言,KTR/KJB 中声明的数据库连接需要具有在 KTR/KJB 中声明的相同参数,例如: 在此处输入图像描述

这样,您传递给 KTR/KJB 的任何参数都将在连接中被换出。


推荐阅读