Sql-Server

SSIS ETL 或 CDC - 實時 DWH 報告

  • October 17, 2018

我目前正在開發 SSIS 包,用於從 OLTP 系統到駐留在不同伺服器上的報告數據庫的表(現在 40 個表,預計在不久的將來會增加)的持續增量數據載入。

該請求用於兩個源之間的實時數據同步。

我應該繼續使用正常 SSIS -> Staging -> merge route 進行測試,還是應該考慮實施 CDC。考慮到涉及的表數量,這會比普通的舊 ETL 更快嗎?

CDC 不會取代 SSIS -> Staging -> Merge 路線,它只是使 SSIS 部分更容易 - ETL 的提取。CDC 使這變得更容易,這是它設計的案例之一。對於每次更改,您都會獲得更改前後的行的副本,您可以抓住它然後清理它。

它確實有一些在你開始之前並不明顯的陷阱。讓我大吃一驚的兩個重大變化是:

  • 源表上的模式更改更難,特別是對於刪除和創建表而不是僅僅修改的部署工具
  • 如果您使用鏡像或可用性組,則 cdc 讀取器將在副本離線時暫停(請參閱:當鏡像暫停時更改數據擷取不執行

它也沒有提供任何方法來完全重新同步數據,它只是附加的。

我認為如果我做一個或另一個,答案是不可能的,答案(通常情況下)是“它取決於”。不過,這絕對值得研究。

另請注意,CDC 僅在企業版中可用,直到 SQL 2016 SP1(當它在所有版本中可用時)。

引用自:https://dba.stackexchange.com/questions/220397