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

Avoid duplicate inserts without unique constraint in target table?

源和目标 table 相似。

目标 table 有一个在 tMap 中计算的 UUID 字段,但是流程不应在目标中插入重复的人,即 unique (firstname,lastname,dob,gender).我尝试在 tMap 中将这些列标记为 key,如下图所示,但这并不能阻止重复插入。如何在不对目标添加唯一约束的情况下避免重复插入?

我也在target中试过"using field"。

编辑:解决方案如下所示:

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

在 Open Studio 中,您可以根据复合的唯一键(名字、姓氏、出生日期、性别)滚动自己的更改数据捕获。

  • 对来自 stage_geno_patients 的数据使用 tUniqueRow,以下列为唯一:名字、姓氏、出生日期、性别
  • 将其输入 tMap
  • 添加另一个查询作为 tMap 的输入,以针对 "patients_test" 后面的 table 执行查找,以找到名字、姓氏、出生日期、性别的匹配项。该查找应该 "Reload for each row" 使用查找暂存行中的值
  • 在不匹配的情况下,检测它然后将数据的暂存行插入到"patients_test"
  • 后面的table

问:你也要更新信息吗?或者,目标是否只是在数据尚未存在的情况下执行唯一插入?