Как мне обновить данные о соединении преобразований Pentaho, используя Java? - PullRequest
0 голосов
/ 10 октября 2018

Я использую Java для создания полноценного API на основе функциональности интеграции данных Pentaho.

Я реализовал несколько конечных точек, таких как возможность создавать репозиторий, содержащий задания и преобразования, запускать заданияи преобразования, отображение изображения задания и преобразования, отображение подключений к базе данных в репозитории и еще немало.

Я пытаюсь создать конечную точку, которая позволяет изменять источники данных,такие как имя хоста, имя базы данных и т. д. Но я столкнулся с проблемой, когда речь идет о сохранении новых сведений о соединении.

Вот фрагмент кода, который я получил.Я жестко закодировал значения просто для целей тестирования.Я перебираю список массивов, содержащий 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.Есть ли способ, которым это может быть достигнуто?Любая помощь будет оценена.

Спасибо.

1 Ответ

0 голосов
/ 10 октября 2018

Я не знаю об части интеграции JAVA, но что касается чистого Pentaho, соединение базы данных, указанное в KTR / KJB, должно иметь те же параметры, объявленные в KTR / KJB, как таковые: enter image description here

Таким образом, любые параметры, которые вы передаете в KTR / KJB, будут заменены в соединении.

...