Применение левого соединения в Пентахо - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь создать Transformation, и мне нужно объединить две базы данных на основе такого запроса, используя Merge Join, и я немного путаю, что я должен заполнить First Step, Second Step для поиска для этого каждого формата запроса .

Формат запроса:

SELECT * FROM A a LEFT JOIN B b on a.value=b.value

SELECT * FROM A a LEFT JOIN B b on b.value=a.value

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Есть разные способы сделать это.

  • Напишите sql с объединением в Table input step. Быстрое грязное решение, если ваша таблица находится в той же базе данных, но не говорите эксперту по PDI, что вы сделали это таким образом.

  • Если вы знаете, что для каждой записи A есть только одна B-запись, используйте Lookup Stream Step. Очень, очень, очень эффективно. Основной поток - это A, а шаг поиска - B.

  • Если у вас много записей B для каждой записи A, используйте Join Rows. Не бойтесь, вы на самом деле не производите декартово произведение, так как вы можете поставить свое условие a.value = b.value.

  • В той же ситуации вы также можете сделать Merge join. Первый шаг - это первый шаг в операторе выбора SQL.

0 голосов
/ 04 июля 2018

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

...