2016-08-18 3 views
1

У меня есть много баз данных (+100), каждый из которых имеет ту же структуру и разные соединения. Я использую Kettle для запуска преобразования в разных базах данных, чтобы создать хранилище данных.Запуск того же преобразования с несколькими подключениями к базе данных на чайнике

Как я могу автоматизировать прогон одного и того же преобразования с различными соединениями?

Я уже доказываю это Pass DB Connection parameters to a Kettle a.k.a PDI table Input step dynamically from Excel, но он принимает только строку в csv.

Должен ли я создать цикл, или мне нужно будет создать сценарий?

Любая помощь будет оценена по достоинству. (Извините за мой английский)

+0

«но он принимает только строку в csv» - что это значит? Он может +100 строк (каждая строка содержит сведения о соединении с определенным БД). Задайте сведения о соединении в переменных и выполните субтрансформацию после. В каталогах есть пример $ KETTLE_HOME/пример использования субтрансформации – simar

ответ

2

Вы можете сделать это с помощью петли. Но, не волнуйся, это не сложно сделать с Пентахо.

Прежде всего, вы будете использовать РАБОТУ, чтобы создать свой цикл:

START ->Transform_that_holds_parameters ->Transform_to_run_in_a_loop

Как вы можете догадаться, ваше преобразование, которое работает одинаково на каждом БД является последним в этом потоке. Но нам нужно установить два дополнительных флага на этом задании:

  • Выполнение для каждой строки ввода?
  • Скопировать предыдущий результат в параметры?

Тогда мы должны строить наши Transform_that_holds_parameters со следующей структурой:

Some_sort_of_input -> copy_rows_to_result

Здесь вам придется захватить все параметры соединения от где-то, будь то файл Excel или таблицу в другой базе данных. Но как только вы будете граблировать эти данные, обязательно укажите 1 строку для каждой базы данных, в которой вы хотите запустить преобразование.

Подключитесь к шагу «Копировать строки в результат», этот шаг отправляет данные обратно в нашу Работу, и если вы помните, наше следующее преобразование устанавливается в «Выполнение для каждой строки ввода» и «Копировать предыдущий результат в параметры ».

Теперь, помните, какие имена столбцов переходят на последний шаг этого преобразования, вам понадобятся они на следующем шаге.

Возвращается к нашей работе и перейти к свойствам Transform_to_run_in_a_loop, открытых параметров и заполнить «параметр» столбца и «поток имя столбца» с колоннами, мы просто скопировали к результату.

Внутри вашего преобразования вам нужно будет установить одинаковые параметры с точно такими же именами. И используйте эти параметры в настройках соединения.

Выполнено, теперь у вас будет первое преобразование, задающее все параметры, а второе - для каждой конфигурации базы данных.

Смежные вопросы