2016-02-18 35 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

相關問題