避免在目标表中没有唯一约束的重复插入?

时间:2016-02-18 06:06:09

标签: postgresql talend

来源&目标表是类似的。 Source-tMap-Target

目标表具有在tMap中计算的UUID字段,但是流不应在目标中插入重复的人,即唯一(名字,姓氏,dob,性别)。我尝试在tMap中将这些列标记为,如下面的屏幕截图所示,但这并不能防止重复插入。如何在不向目标添加唯一约束的情况下避免重复插入?

tMap - setting keys on equivalent unique constraint columns

我也试过"使用字段"目标。

Field options

编辑:解决方案如下所示: enter image description here

1 个答案:

答案 0 :(得分:1)

Talend Studio for Data Integration的付费版本中的CDC组件无疑解决了这个问题。

在Open Studio中,您可以根据复合的唯一键(名字,姓氏,dob,性别)推送自己的更改数据捕获。

  • 对来自stage_geno_patients的数据使用tUniqueRow,在以下列中是唯一的:firstname,lastname,dob,gender
  • 将其输入tMap
  • 将另一个查询作为输入添加到tMap,以针对" patients_test"后面的表执行查找,以找到firstname,lastname,dob,gender上的匹配项。该查找应该"重新加载每一行"使用查找来自分段行的值
  • 如果不匹配,请检测它,然后将暂存数据行插入到" patients_test"
  • 后面的表格中
问:你还要更新信息吗?或者,目标是仅执行数据尚未存在的唯一插入?