如何使用Java更新Pentaho转换连接数据?
我正在使用Java围绕Pentaho数据集成的功能构建一个restful API
我已经实现了几个端点,比如创建存储库的能力 包含作业和转换,运行作业和转换,显示作业和转换的映像,显示repo中的数据库连接,还有很多其他内容
我正在尝试构建一个允许更改数据源的端点,例如主机名、数据库名等。但在保存新的连接详细信息时,我遇到了一个问题
这是我得到的一段代码。我硬编码这些值只是为了测试。 我循环遍历包含DatabaseMeta的数组列表,然后更改字段的值
for(DatabaseMeta meta: databaseMeta) {
meta.setHostName(“test_host”) ;
meta.setDBPort(“test_port”);
meta.setDBName(“test_database”);
repositoryService.updateDataSource(databaseMeta);
}
updateDatasource()方法只调用存储库。save()(它是org.pentaho.di.repository包的一部分)并传入DatabaseMeta
当此方法执行时,它将创建一个。我的存储库中的kdb文件,使用上面设置的值,并向端点发出GET请求,将从新文件返回连接详细信息。 但是,我只想覆盖现有转换连接中的值,并在GET请求中返回它们。 有没有办法做到这一点? 任何帮助都将不胜感激
谢谢
# 1 楼答案
我不知道JAVA集成部分,但就纯Pentaho而言,KTR/KJB中声明的数据库连接需要在KTR/KJB中声明相同的参数,如下所示:
这样,传递给KTR/KJB的任何参数都将在连接中交换