設計復原能力

設計具備復原性整合時,請使用這些最佳作法。

設計重新啟動

部分整合處理作業非常複雜,而且與其他處理作業有相依性。它們可以進入最終載入至最終目標系統之前的一些階段。為了協助重新啟動,請將額外的資料欄新增至暫存表格,以追蹤目前負載的 Id (load_idload_date,或任何可唯一識別此負載的項目)。這可以提供更好的可追蹤性,並讓您的清除程序更容易設計。

Oracle Data Integrator 的意義為何

  • 使用變數追蹤正在載入之處理 Id,並可能將這些值新增至中繼資料階段 (臨時資料表中的額外欄)。
  • 可使用這些變數為每個分析藍本執行設定不同的階段作業名稱 (SESS_NAME):這讓運算子可立即識別知道要顯示的處理作業。請參閱在分析藍本階段作業使用唯一或動態名稱
  • 使用相同處理作業來載入數百個檔案的先前範例,處理檔案之後命名的工作比所有檔案的一般工作名稱相同,可以更實際。

設計限制停機影響

在預先定義的時間執行大量擷取,會對整個基礎架構造成大量影響。

例如:

  • 來源系統會受到影響,因為它必須為要求提供服務。
  • 網路會受到影響,因為頻寬會與要求的服務分開。
  • 整體整合工作執行所需的時間較長,因為必須處理的資料量較少。
  • 整合階段網路中小型可用性或中斷功能,對整合工作有重大影響。

整合工作不需要是批次或即時。通常是次數,兩者皆可。如果最終載入必須是批次作業 (因為已合併或彙總例項資料),則擷取作業及部分預先整合程序可以更即時的方式執行。如此可降低整體基礎架構的負載,並限制當您在整合階段嘗試存取來源系統時,會面臨停機時間。如果資料是以串流方式擷取和準備,則當最終整合時,不需要存取來源系統。

Oracle Data Integrator 提供許多工具,可用於建構套裝程序以偵測有新資料。請參閱使用事件導向工具瞭解清單。

為了與真正的即時複製整合,Oracle Data Integrator 可以建立一個基礎架構,讓它能夠使用上述 api 來進行變更。

在插入及合併資料之間選擇

INSERT 和 MERGE 方法之間會發生資料載入的交易。除了整合策略之外,您可以考慮載入部分失敗時會發生什麼狀況。

視您在目標系統中載入資料的方式而定,將會區分載入的內容與失敗的內容,或是識別部分載入的元素可能會較為複雜。即使您是在設計觀點上所執行的一切都是在目標系統中附加資料,但它對於可復原的觀點來說,以考慮將內送資料與已在目標系統中的資料合併的效益。

如果您選擇此方法,您將要對此策略的影響重複檢查在載入項目的效能上。但請注意,一個失敗的完全最佳化 INSERT 負載不會比成功的 MERGE 更快。

Oracle Data Integrator 的觀點,將 INSERT 策略的變更為 MERGE 策略是一項非常簡單的作業:您只需要變更整合策略,然後選取適當的「知識模組」。這樣做可以變更大量對應的知識模組,是節省工作。您可以使用 Oracle Data Integrator SDK 將此類工作自動化。

設計為限制計畫的中斷

修正和升級通常需要預定的中斷。

在修正和升級所在的雲端環境中,與一般使用者的觀點更具彈性,因為我們正在修正整合處理作業的程式碼,因此我們最後想要強制停止運作。這表示修正必須是正向開發策略的一部分,以確保中斷保持至最小。

Oracle Data Integrator 的執行單位是一個分析藍本。產生分析藍本時,會與版本號碼關聯 (從 001 開始)。您可以重新產生分析藍本 (覆寫目前的版本),或者產生新的版本 (002、003 等等)。

呼叫分析藍本時,Oracle 建議您一律指定版本號碼-1。這有兩個優點:

  • Oracle Data Integrator 將一律使用您分析藍本的最新版本。您不需要在產生新版本時變更如何呼叫這些分析藍本;
  • 建立新版本的分析藍本後,這就是 Oracle Data Integrator 執行的版本。設定「代理程式藍圖快取逾時」描述如何控制可能的延遲。您不需要停止並重新啟動 Oracle Data Integrator,也不需要使用您正在使用的任何外部協調工具,讓 Oracle Data Integrator 使用最新版本的整合分析藍本。

注意:只有在 Oracle Data Integrator 中沒有無限迴圈時,才能使用此方法。不建議在 Oracle Data Integrator 中進行無限迴圈 (實際上限為防圖樣):

  • 他們關閉 Oracle Data Integrator 日誌:日誌整個清除將永遠不會影響執行中的工作。一律有無限的迴圈在執行中,因此無法永久清除對應的日誌。
  • 他們無法即時修正分析藍本:為了讓 ODI 選取新版本的分析藍本,必須要有啟動該分析藍本的機會。無限的迴圈一律不結束…,因此一律不會有機會重新啟動。
  • 相對於無限迴圈,您可以透過以非同步方式呼叫相同的分析藍本來完成分析藍本:亦即結束之前的最後一個步驟,可在新的階段作業中開始新的本身複本。