2017-08-01 98 views
0

要求將輸入記錄從源標記爲目標,如I,U,D,I插入,D刪除,u更新。源和目標是各種RDBMS系統。標記插入使用informatica更新和刪除目標中的源記錄

來源 - 甲骨文 目標 - Greenplum的

在SCD TYPE1使用查找我們能夠達到我和U標誌。由於查找是基於主鍵的equi連接,因此標記刪除的記錄是一項挑戰。不能使用左或最外連接

你的投入是非常可觀的

回答

0

我不知道我是否正確,但是假設你是基於沒有來自源中的數據刪除記錄瞭解的要求。

可能有一些方法。你應該有一個關鍵的來源和目標,以確定相同的記錄。

如果上述假設是正確的遵循了這一過程:

  1. 首先使用輸入數據來更新/插入記錄。
  2. 使用目標加載計劃並運行另一個映射,將目標數據庫作爲源並對傳入數據執行減號操作。
  3. 刪除附加的已識別記錄。

如果我對上述問題的理解錯誤,請更正。

0

正如Thilak提到的,源和目標是兩個不同的RDBMS,我們無法逆向減去。

你必須在兩步處理階段處理你在oracle中的臨時表中從源端收到的所有東西,然後在加載增量比較時根據臨時表來決定基於完全外連接的I/U/D。

假設您始終從源接收全部負載。如果源未發送完整數據,您將無法跟蹤刪除。

希望它有幫助!

+0

你的意思是,我們需要設計2個映射,舞臺表加載一個映射。第二個映射使用階段作爲來源並進行比較。 –

+0

是的。既然你正在處理兩種不同的RDBMS,這是一個更好的方法。您的資源再次應該始終發送滿載。 –

1

除了已經提到的解決方案之外,爲了提高性能,您可以在加載之前將所有內容標記爲已刪除,然後相應地標記插入/更新。這樣你可以避免比較。

+0

提供一些ETL邏輯 –

+0

由於您「能夠實現I和U標誌」,因此我想您會詢問有關刪除操作的信息。更新YourTable set statusFlag = -1 - 你需要什麼? – Maciejg

0

Powerexchange是另一種可從oracle重做日誌中讀取以實時確定源數據庫記錄更改的informatica產品。這些記錄可以在DTL__CAPXACTION字段中標記爲I U或D.然後Powerexchange通過應用程序多組來源限定符連接到powercenter映射。

如果他們之後是該解決方案更內嵌別人取得了我與馬切伊去的假設 - 漂亮,整齊,易

相關問題