【发布时间】:2016-07-19 09:49:26
【问题描述】:
我正在使用 Talend Open Studio for Data Integration 创建一个应该执行以下操作的作业:
- 从 table1 中获取一行
- 如果表2中不存在具有特定值的行:在表2中添加一行
- 使用 table1 的行中的 id 和 table2 (现有或新创建的)行中的 id 将一行添加到多对多关系表中
例如,假设我有表 PROFILE、USER 和 REL_PROFILES_USERS,我需要从 PROFILE 开始填充 USER,并且每个具有相同名称的 PROFILE 行都将关联到同一个 USER
所以我从 PROFILE 表开始
id | name | address
-----------------------------------
1 | jsmith | 1234 Main Street
2 | jasonp | 321 Secondary Street
3 | jsmith | NULL
我想最终以这种方式填充用户
id | username
----------------
1 | jsmith
2 | jasonp
和 REL_PROFILES_USERS
user | profile
----------------
1 | 1
1 | 3
2 | 2
我已经设法通过PROFILE 和 USER 之间的简单 tMap 说明第 1 点和第 2 点,并且我在第一个 tMap 之后使用带有 tMap 和在PROFILE.name = USER.username 上USER 和PROFILE 之间的所有匹配进行内连接。
我想做的是在我填充 USER 的同一子作业中填充 REL_PROFILE_USERS,在插入新行后不久或当您看到已经存在的行时,不知道 USER 和 PROFILE 之间的关系(那个用户名=名字)但只是因为我正在处理那些行
【问题讨论】:
-
那么你的工作怎么样?
-
分 2 次完成。第一次通过从您的流程中过滤掉不同的用户。然后将其与目标表连接起来。在 tMap 中捕获内部连接拒绝 -> 您的表中缺少用户。将这些用户添加到您的表中。第二遍,将用户表与您的输入流连接起来。
标签: many-to-many talend data-integration