2017-06-21 59 views
0

ODI中是否存在錯誤處理機制? 我想處理的情況下,ODI可以將不良數據加載到錯誤表中,因爲它無法執行轉換源數據並插入到目標表中。即使傳入數據格式中有任何更改,該進程也不會停止。Oracle Data Integrator(ODI)錯誤處理

回答

0

大多數集成知識模塊(IKM)都有一個選項來啓用或禁用流量控制。啓用流量控制時,將執行以下主要步驟:

  • 數據將首先插入到與目標表具有相同結構的臨時表中。這些表的默認前綴爲I$_
  • 將檢查模型中爲目標數據存儲定義的所有條件(約束)。
  • 條件失敗的行將被插入到錯誤表中,其中包含一些關於加載時間,已斷開的條件和行的所有數據的信息。這些表格的前綴爲E$_
  • 通過條件的行將被插入/更新到目標表中。

不用說,啓用流量控制將影響您的加載性能,因爲有額外的插入和一些條件檢查。但是,如果需要捕捉數據質量問題,這是一個很容易實現的強大功能。

+1

除了JeromeFr所說的內容:您還可以指定接口在什麼情況下會引發錯誤。在「控件」選項卡中,有一個帶有標籤「允許的最大錯誤數」的文本框,並帶有百分比複選框。在這裏,您可以在停止接口或錯誤行佔總行數的百分比之前設置錯誤的行數。 –

+0

如果目標列需要一個數字,並且它是否接收到一個字符,是否可以將其存儲在錯誤表中。我問,因爲錯誤表與目標表具有相同的結構,因此如果目標表列被定義爲數字,那麼how我們可以跟蹤具有字符值的行嗎? –

+0

這會有點棘手。我看到了兩個解決方案。 您可以在第一次運行創建數據庫後修改E $ _表,並將其設置爲VARCHAR2(4000)。然後在您的模型中,在目標數據存儲中的該列上添加Check Condition。該條件將檢查varchar中只有數字與'REGEXP_LIKE(X,'^ [[:digit:]] + $')'類似。如果需要,您還可以添加點或逗號。 另一種選擇是在映射中自己捕獲這類數據質量問題,並使用拆分組件加載手動創建的錯誤表。 – JeromeFr

相關問題