我一直無法找到有關如何使用SSIS在SQL Server 2014中使用更改數據捕獲(CDC)重新加載增量數據的文檔/說明。如何使用SQL Server CDC重新加載增量數據?
基本上,在給定的一天,如果你的SSIS增量處理失敗,你需要重新開始。您如何再次播放最近更改的記錄?
我一直無法找到有關如何使用SSIS在SQL Server 2014中使用更改數據捕獲(CDC)重新加載增量數據的文檔/說明。如何使用SQL Server CDC重新加載增量數據?
基本上,在給定的一天,如果你的SSIS增量處理失敗,你需要重新開始。您如何再次播放最近更改的記錄?
所以我弄清楚瞭如何在SSIS中做到這一點。
我每次在我的數據倉庫中的一個表中運行我的SSIS包時,記錄最小和最大LSN編號。
如果我想從CDC源重新加載一組數據到分段,在SSIS包中,我需要使用CDC控制任務並將其設置爲「Mark CDC Start」,並在文本框中標記爲「SQL Server LSN開始......「我把我想用的LSN值作爲起點。
我還沒有想出如何設置終點,但我可以進入我的登臺表並刪除LSN值>然後是我的終端節點的任何數據。
您只能對尚未「清理」的CDC更改執行此操作 - 僅適用於最近3天內更改的數據。
作爲一個觀點,我還將lsn_time_mapping表引入我的數據倉庫,因爲我發現這些信息歷史上很有用,並且它在源數據庫中每4天得到一次「清理」。
我想這取決於你對數據做什麼,呃? :)但在一般情況下,您可以將其分解爲三種情況:
假設您使用新的CDC SSIS 2012組件,特別是軟件包開頭和結尾的CDC控制任務。然後,如果軟件包因爲任何原因在軟件包末尾運行CDC控制任務之前失敗,那麼這些LSN(日誌序列號)將不會被標記爲已處理,因此您可以在解決問題之後從頂部重新啓動SSIS軟件包,並它只會重新處理這些記錄。你必須使用CDC控制任務來完成這項工作,或者自己跟蹤LSN(在SSIS 2012之前,這是唯一的方法)。
馬特·馬森(高級項目經理對MSFT SQL Server團隊)有一個很好的職位有一步一步的演練:CDC in SSIS for SQL Server 2012
而且,看到布拉德利沙赫特的帖子:Understanding the CDC state Value
我確實在SSIS 2012中設置了CDC控制任務,而且我大部分都在工作。我想我問的是你如何「取消」這些記錄? – tember 2015-02-24 18:40:56
另外,有關CDC控制任務使用的CDC狀態的細目以及如何修改CDC以重新處理CDC記錄,請參閱Bradley Schacht的文章:http://www.bradleyschacht.com/understanding-the-cdc-state-值/ – 2015-02-24 18:44:03
但是ETL的第一步 - 從源頭獲取已更改的數據。你如何「重置」它,以便再次分析最近的變化。一旦進入暫存數據庫,很容易處理。但是CDC - 黑匣子的一部分正在困擾着我。如果需要,我想重新安排相同的數據(手動很好)。 – tember 2015-02-24 18:28:01
CDC數據的任何拉動都取決於您提供的first_lsn和last_lsn。據推測,如果出現故障,您只需再次提供相同的端點。 – 2015-02-24 18:30:25
你會怎麼做?我想這有兩個問題:你如何讀取lsn值?你如何告訴SSIS使用自定義的lsn範圍? – tember 2015-02-24 18:36:09