2016-09-27 1 views
1

У меня есть ситуация, когда у меня есть следующие таблицы.Как бороться с 1 ко многим SQL (входы таблицы) в Pentaho Kettle

Сотрудник - emp_id, emp_name, emp_address

Employee_assets - emp_id (FK), ASSET_ID, asset_name (1-многие для работника)

Employee_family_members - emp_id (FK) , fm_name, fm_relationship (1-много для сотрудника)

Теперь у меня есть для запуска запланированного задания на чайник, которое считывает данные из этих таблиц, например, в количестве 1000 сотрудников, и создает выход XML для этих 1000 записей на основе отношений в БД с членами семьи и активами. Это будет вложенная запись XML для каждого сотрудника.

Обратите внимание, что выполнение этой работы с чайником очень важно в моем сценарии.

У меня есть два вопроса -

  1. Что является лучшим способом, чтобы тянуть в записи из базы данных для 1-многим в схеме?
  2. Каков наилучший способ генерации структуры вывода XML, учитывая, что шаги присоединения XML являются результатом?

ответ

0

Вот как я это достиг.

Transformation showing the XML creation out of one to many

Итак, есть одна таблица ввода шаг, чтобы прочитать базовую таблицу, а затем создать XML-фрагмент для него. Впоследствии в потоке я использую отношение 1-many (дочерняя таблица) в качестве другого шага соединения базы данных, передающего ему ключ отношения. После выталкивания данных XML-файлы генерируются для дочерних строк. Затем это передается на шаг измененного значения Java Script Value (слияние строк), который затем объединяет содержимое с использованием trans_Status = SKIP_TRANSFORMATION для похожих строк. Когда подобные строки объединены/объединены, putRow(row) используется для выгрузки в качестве вывода на следующий шаг. Обратите внимание, что для этого SQL должен иметь порядок/сортировку на основе ключей отношений. Это работает хорошо, поэтому я могу продолжить его.

0

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

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