ETL 專案中,大量封裝共用相同架構:啟動記錄、結束更新狀態、統一錯誤處理、參數驗證、事件記錄等。若每次從空白拖拉,不僅耗時且易導致命名、設定不一致。本文示範建立 SSIS 專案範本,新建封裝即內含標準框架。
痛點分析
- 重複拖拉 Execute SQL Task (寫入 ProcessLog)、Event Handlers (OnError 寫錯誤表)。
- 連接管理器、參數命名、註解風格各人不同,後期維護困難。
- 新人上手需花費大量時間學習團隊規範。
建立專案範本步驟 (VS 2010/2012/2015/2017/2019 通用)
- 開啟一個已配置完善的「標準封裝」 (
Template_Package.dtsx):
- 變數區定義標準變數:PackageID, StartTime, BatchID, LogTable 等。
- 控制流程:
① Sequence Container: Initialization 內含 SQL_LogStart (INSERT ProcessLog)。
② Sequence Container: MainWork (預留給開發者放入業務資料流程)。
③ Sequence Container: Finalization 內含 SQL_LogEnd (UPDATE ProcessLog SET EndTime=GETDATE(), Status=@Status)。
- 事件處理器:OnError → SQL_LogError (INSERT ErrorLog 含 ErrorCode, ErrorDescription, SourceName)。
- 專案參數:Param_Conn_DW, Param_BatchID 等,套用至連接管理器運算式。
- 選單 File → Export Template。
- 選 Project Template。
- 填寫名稱:SSIS Standard ETL Package,描述:含標準日誌、錯誤處理、參數化框架。
- 圖示可自訂,匯出為 .zip 至 %USERPROFILE%\Documents\Visual Studio \Templates\ProjectTemplates。
使用範本建立新專案/封裝
- 新專案對話框 (
Ctrl+Shift+N) → 搜尋 SSIS Standard ETL Package → 建立。
專案內已包含 Template_Package.dtsx,重新命名即可開發。
- 或在現有專案右鍵 → Add → New Item → 選擇 SSIS Standard ETL Package (若匯出為 Item Template)。
進階:參數化與組態管理
- 將連接字串、資料夾路徑、批次代碼等全部提升為專案參數 (Project Parameters),部署至 SSISDB 後可在目錄層級設定環境變數 (Development/QA/Production),實現一次開發、多環境部署。
- 搭配 BIML (Business Intelligence Markup Language) 可進一步以中繼資料驅動大量生成標準化封裝,適合數百張表同步場景。
團隊推廣建議
- 建立 範本維護小組,定期審視更新 (如新增資料品質檢查容器)。
- 文件化:
README.md 說明各容器用途、變數定義、命名規範。
- Code Review 檢查點:是否使用標準範本、參數命名是否符合規範、錯誤處理是否完整。