2016-02-18 30 views
0

来源&目标表类似。 Source-tMap-Target避免在目标表中没有唯一约束的重复插入?

目标表有计算在TMAP,但流动不应该插入目标重复者即唯一的(名字,姓氏,出生日期,性别等)一个UUID场。我尝试在tMap中将这些列标记为,如下面的屏幕截图所示,但这并不妨碍重复的插入。我怎样才能避免重复的插入,而不增加对目标的唯一约束?

tMap - setting keys on equivalent unique constraint columns

我也尝试过在目标 “使用领域”。

Field options

编辑:解决方案如下建议: enter image description here

+2

你试过'tUniqRow'吗? – Kermit

+1

你必须自己处理这个。这意味着你必须在你的工作中从目标表中读取数据,然后对这个目标表执行查找/左外部连接,以决定源中哪一行需要插入并哪些更新... – garpitmzn

+0

你想在重复的情况下发生什么?它应该什么都不做,或更新重复的记录? –

回答

1

在Talend工作室的数据集成无疑是解决这一问题的付费版本的CDC组件。

在Open Studio中,您可以基于组合键,唯一键(名,姓,dob,性别)来滚动您自己的更改数据捕获。

  • 使用tUniqueRow数据从stage_geno_patients到来,独特的上下面的列:名字,姓氏,出生日期,性别
  • 饲料是成TMAP
  • 作为输入添加另一个查询到的TMAP,进行一下在“patient_test”后面的表格上查找,找到名字,姓氏,dob,性别上的匹配项。该查找应使用查找来自分段行的值的“查找每行”
  • 在不匹配的情况下,检测它,然后将数据的分段行插入“patient_test”后面的表中

问:你打算更新信息吗?或者,目标仅仅是在数据尚未存在的地方执行独特的插入操作?

+0

谢谢,tUniqRow适用于独特的插入(数据不存在)。我没有使用查找。 – Espresso

相关问题