Я использую Talend Open Studio для интеграции данных, чтобы создать работу, которая, как предполагается сделать следующее:Добавить строку в многие ко многим таблице отношений после создания строки с Talend
- Получить строку из table1
- Если строка с определенным значением не существует в таблице 2: добавьте строку в таблицу2
- добавьте строку во таблицу отношений «многие ко многим», используя идентификатор из строки таблицы и идентификатора из таблицы2 (существующей или вновь созданной) строка
, например, скажем, у меня есть таблицы PROFILE, USER и REL_PROFILES_USERS, мне нужно заполнить USER начиная с PROFILE и каждый PROFILE ряд с тем же именем будет связан с тем же USER
так я начать с PROFILE таблица
id | name | address
-----------------------------------
1 | jsmith | 1234 Main Street
2 | jasonp | 321 Secondary Street
3 | jsmith | NULL
и я хочу, чтобы в конечном итоге с USER popuplated этот путь
id | username
----------------
1 | jsmith
2 | jasonp
и REL_PROFILES_USERS
user | profile
----------------
1 | 1
1 | 3
2 | 2
мне удалось сделать пункт 1. и 2. с помощью простого TMAP между PROFILE
и USER
и я заселением REL_PROFILES_USERS
после первого tMap
с использованием отдельного подзадания с tMap
и а внутренним соединением на все матчи между USER
и PROFILE
на PROFILE.name = USER.username
.
Что бы я хотел сделать, это заполнить REL_PROFILE_USERS в том же подзагороде, где я заполняю ПОЛЬЗОВАТЕЛЬ, вскоре после того, как новая строка была вставлена или когда вы видите уже существующую строку, не зная о связи между USER и ПРОФИЛЬ (это имя пользователя = имя), но только потому, что я работаю над этими строками
Как выглядит ваша работа? – tobi6
Сделайте это за 2 прохода. 1-й проход фильтрует отдельных пользователей из вашего потока.Затем присоедините это к целевой таблице. В tMap catch inner join reject -> у вас есть пользователи, которых нет в вашей таблице. Добавьте этих пользователей в свою таблицу. Второй проход, присоединитесь к таблице пользователей с вашим потоком ввода. –