Нормализация групп столбцов в Pentaho Data Integration

У меня есть следующая таблица ввода (счета с платежными планами):

account_number upfront_amount hour_price unlock_amount a1 10 2 150 a2 10 2 150 a3 12 1 140 a4 20 1 140 a5 20 1 140

и я хотел бы создать следующие выходные таблицы:

таблица счетов:

account_number payplanId a1 1 a2 1 a3 2 a4 3 a5 3

таблица зарплат:

id      upfront_amount  hour_price  unlock_amount
1               10              2           150
2               10              2           150
3               12              1           140
4               20              1           140
5               20              1           140

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

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

Был бы очень признателен за любую помощь, спасибо!


person Pim    schedule 22.08.2018    source источник


Ответы (1)


Row normalizer работает для многих столбцов, хотя его сложно параметризовать.

Поэтому я обычно использую Unique Row, за которым следует Stream Lookup в главном источнике, возможно, за которым следует Group by. Это кажется странным при первом использовании. Во второй раз вы обнаружите гибкость этого паттерна.

person AlainD    schedule 23.08.2018
comment
Спасибо, это работает! Хотя это немного медленно. Как ни странно, использование слияния LEFT OUTER выполняется быстрее. Может, это связано с моей сортировкой. В будущем добавлю больше информации! - person Pim; 23.08.2018
comment
Начиная с Pentaho 6 вам больше не нужно сортировать. Есть Unique Row (Memory) и Group by (Memory), которые очень хорошо работают для небольшого (1 миллион) числа или записей. - person AlainD; 27.08.2018