使用SSIS作ETL的過程當中會遇到各類各樣的錯誤,對於一些大數據量的Job失敗之後咱們不但願從新運行,由於從新運行的時間開銷是很是大的,咱們只但願從失敗的部分開始運行,這樣能夠省去不少的時間。
SSIS提供了Checkpoints的功能,能夠捕獲檢查點文件中的從新啓動點。失敗的容器類型以及功能(例如事務)的實現都會影響在檢查點文件中所記錄的從新啓動點。檢查點文件中還捕獲變量的當前值。
建立SSIS的時候須要制定 checkpoint文件目錄,checkpoint的信息會被保存到這個xml文件。當package運行的時候,SSIS執行下面的步驟執行checkpoints:
1. 建立xml文件測試
2. 記錄當前用戶定義的變量大數據
3. 記錄每個成功的步驟spa
4. 根據狀況選擇執行下面的一個選項3d
A. 當package因爲錯誤中止,保存checkpoint文件xml
B. 當整個Package執行成功時刪除checkpoint文件blog
建立SSIS包以下:事務
1. 配置Checkpoints,有三個選項須要配置CheckpointFileName,CheckpointUsage,SaveCheckpointsget
SSIS 包屬性:io
CheckpointFileName: D:\BAC_SSIS_Processing\BOA Reports-Excel\SSIS_CheckPoint.txt
CheckpointUsage: IfExists
SaveCheckpoints: True容器
2. 將使用Checkpoints的每一個Task屬性FailPackageOnFailure設置爲設置爲True
3. 測試失敗的情況,能夠更改其中一個Task的ForceExecutionResults選項爲Failure,這樣能夠模擬Task失敗。
4. 執行一次,失敗,在目錄下面能夠找到自動建立的checkpoint的文件。
5. 修改後從新執行,只從出錯task開始執行,checkpoint的文件會被刪除。