2014-11-25 38 views
1

如果ETL進程在臨時數據庫刷新之前開始敲入登臺數據庫,則會發生問題。防止這種情況發生的最佳實踐是什麼?我現在看到這兩個選項:登臺數據庫和etl進程

(1)不要運行ETL processeses分期刷新已完成

前(2)具有被刷新週期之間交換2個升級數據庫。

+2

數字1是顯而易見的。我喜歡2號,但我只聽說它用於實際的數據庫(一直加載1,然後在完成並重新加載時交換)。你可以嘗試將分段/ ETL分解成儘可能小的單元。我們使用項目來演示/加載一個項目(同時進行幾個項目),但是它是一種#1的形式,相對而言只有很小的分段刷新。 – 2014-11-25 14:15:52

+0

@Nick。謝謝你的評論。 (2)怎麼可能實現?我做了很多Google搜索,但沒有找到有用的東西。謝謝。 – cs0815 2014-11-29 11:59:03

回答

1

我們使用方法#1。

我們記錄將臨時數據庫刷新到表的SSIS包的執行開始,並將完成或錯誤記錄到同一行中的單獨列。

我們的ETL進程檢查該表中的最新行,以確定暫存刷新當前是否正在運行以及暫存數據的年齡。

如果數據過時,ETL包可以通過調用其他包來強制刷新,如有必要。