前言:從 DTS 到 SSIS 的架構躍升
SQL Server 2005 將 DTS 重寫為 Integration Services (SSIS),引入資料流程/控制流程分離、設計/部署分離架構,並大幅擴充轉換元件,邁向企業級 ETL 平台。本文以最簡單的「資料表複製」專案,示範 SSIS 專案完整生命週期:開發 → 部署 → 排程 → 管理。
一、開發階段
1. 開發工具:Business Intelligence Development Studio (BIDS)
- SQL Server 2005 客戶端工具高度整合:
- SSMS → 資料庫管理與 T-SQL 開發
- BIDS → SSIS/SSRS/SSAS 專案開發
2. 建立專案與資料流程
- BIDS → 新增專案 → Integration Services 專案,命名
SSISTEST
- 切換 Data Flow 索引標籤 → 建立新資料流程
- 從 Data Flow Sources 拖曳 OLE DB 來源 到設計面
3. 建立連線管理員
- Connection Managers 區域右鍵 → New OLE DB Connection
- 點擊 New 設定來源資料庫連線(伺服器、驗證、資料庫)
- 回到資料流程,雙擊 OLE DB 來源 → 選擇連線 → 資料存取模式:資料表或檢視 → 選取來源表
4. 加入目的地與連接
- 從 Data Flow Destinations 拖曳 OLE DB 目的地
- 將來源的綠色輸出箭頭拖曳至目的地(建立資料流路徑)
- 雙擊目的地 → 設定目標連線(若不同資料庫需另建連線管理員)
- 對應: 系統自動對應同名欄位,可手動調整
5. 控制流程設計
切換 Control Flow 索引標籤,本範例僅有一個資料流程任務,故控制流程自動包含該任務。複雜專案可加入:
- 容器:Sequence、For Loop、Foreach Loop
- 任務:Execute SQL、File System、Send Mail、Script Task 等
- 優先順序限制條件(成功/失敗/完成)控制流程走向
二、部署階段
1. 產生部署公用程式
- 專案右鍵 → Properties → Deployment Utility
CreateDeploymentUtility = True
- 重新 Build 專案
2. 部署檔案結構
輸出目錄(預設 bin\Deployment)包含:
SSISTEST.SSISDeploymentManifest(部署資訊清單)
*.dtsx 封裝檔案
*.dtsConfig 組態檔(若有設定)
3. 執行部署精靈
- 將
Deployment 目錄複製至目標伺服器
- 右鍵
SSISTEST.SSISDeploymentManifest → Deploy
- 精靈步驟:選擇部署至 SQL Server (msdb) 或 檔案系統 → 指定目標伺服器 → 完成
三、排程執行
SQL Server Agent 作業排程
- SSMS 連線 → SQL Server Agent → Jobs 右鍵 New Job
- Steps 頁籤 → New → Type: SQL Server Integration Services Package
- 指定套件來源(SQL Server / 檔案系統)、封裝路徑
- Schedules 頁籤設定執行頻率(每日、每週、自訂)
- 啟用作業
四、管理與監控
SSMS 管理 Integration Services
- SSMS 連線時,伺服器類型 選 Integration Services
- 物件總管顯示:Stored Packages → MSDB / File System
- 右鍵封裝可:執行、匯入、匯出、刪除、產生報表
執行狀態監控
- SSMS → Integration Services → 匯入/匯出報表 查看執行歷史
- sysssislog 資料表(若啟用記錄)儲存詳細事件
- 效能計數器:
SQLServer:SSIS Pipeline、SQLServer:SSIS Service
進階主題預告
- 參數化與組態檔: 透過
.dtsConfig 實現多環境部署
- 事件處理器: OnError、OnWarning、OnPostExecute 客製化邏輯
- 資料流程效能調優: 緩衝區大小、平行執行、非同步元件
- 專案部署模型 (SQL 2012+): SSISDB 目錄、環境變數、版本控制
結語
SSIS 雖比 DTS 複雜,但其架構分離帶來的可維護性、擴充性與企業級功能,使大型 ETL 專案反而更易管理。掌握「開發 → 部署 → 排程 → 管理」標準化流程,是 BI 開發者的核心技能。