Pentaho ETL: соединение базы данных и ввод таблицы

Мне нужно записать данные таблицы базы данных в текстовый файл с некоторым преобразованием. Доступны два шага для извлечения данных из таблицы, а именно: ввод таблицы и соединение с базой данных. Я не вижу большой разницы между ними, кроме "внешнего соединения?" вариант (поправьте меня, если я неправильно понял). Итак, что было бы лучше использовать?

Окружающая обстановка:

База данных: оракул

Pentaho Spoon: 5.3. * (Версия от сообщества)

Заранее спасибо.


person Jeet    schedule 18.07.2015    source источник


Ответы (1)


Шаг Ввод таблицы в PDI используется для чтения данных из таблиц базы данных. Запрос будет выполнен один раз и вернет вам набор результатов. Посетите вики.

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

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

Если вам нужно получить набор данных из таблицы базы данных, вы должны использовать шаг ввода таблицы - лучший выбор.

В случае, если вам нужно выполнить запрос в базе данных для каждой строки, чтобы получить результат, используйте «Присоединение к базе данных - лучший выбор».

Надеюсь, поможет :)

person Rishu Shrivastava    schedule 18.07.2015
comment
Спасибо. Оба шага могут выполняться на основе предыдущего шага. Но шаг присоединения к базе данных может выполняться только в том случае, если он имеет предыдущий шаг. Теперь я могу это понять. - person Jeet; 18.07.2015
comment
Сохраняя все то же самое с точно такими же SQL без каких-либо переданных динамических параметров, соединение с базой данных выполняется намного быстрее, чем этап ввода таблицы. Любая подсказка, почему? - person Akshay Lokur; 09.11.2016
comment
Поскольку соединение с базой данных использует подготовленный оператор вместо sting concat на этапе таблицы. Разница в производительности значительная. - person simar; 16.10.2017