首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server BI 實戰:SSIS 進階應用(事務、檢查點、錯誤輸出、事件處理、日誌記錄)

     編輯:關於SqlServer

前言

SSIS 套件如同一般應用程式,需具備健壯性與穩定性。本章系統介紹 SSIS 提供的六大企業級支援機制,並透過一個完整的「產品價格即時更新整合」案例實作。

SSIS 六大核心機制

機制說明
事務支援套件層級、工作層級事務,可使用 DTC 分散式事務或 SQL Server 引擎原生事務,確保資料一致性
檢查點記錄套件執行進度,失敗重啟時從錯誤任務續跑,避免重複處理
錯誤輸出資料流元件支援列級錯誤導向,可修復、記錄或忽略錯誤列
優先約束控制流中支援成功/失敗/完成觸發,並可使用運算式動態決定流向
事件處理針對套件/工作/容器事件(如 OnError)撰寫處理邏輯,可設定中斷點、控制日誌
日誌記錄執行時記錄指定事件,支援文字、XML、SQL Server、Windows Event Log、Profiler 等多種目的地,可擴充自訂記錄器

實戰案例:AdventureWorks 產品價格即時更新

需求描述

  • 從指定 URL 下載壓縮檔,解壓後解析匯入
  • 來源檔案由人工維護,格式可能有誤 → 需忽略錯誤列
  • 處理失敗時保留歷史檔案備份
  • 發生錯誤發送 Email 通知
  • 完整保留執行日誌供事後追蹤

變數設計

變數名稱類型值 / 運算式說明
filePathStringD:\ProductPrice\資料根目錄
dataPathStringD:\ProductPrice\ProductList.txt解壓後資料檔
backPathString@[User::filePath] + "bak\" + (DT_WSTR,4)YEAR(GETDATE()) + "-" + (DT_WSTR,2)MONTH(GETDATE()) + "-" + (DT_WSTR,2)DAY(GETDATE()) + ".zip"備份檔路徑(含日期),EvaluateAsExpression=True
WinRarStringC:\Program Files\WinRAR\WinRAR.exeWinRAR 執行檔路徑
zipPathStringD:\ProductPrice\Price.zip下載壓縮檔路徑
erroCountInt320解析錯誤列計數

核心實作架構

  1. 檔案下載:使用 Script Task 或 Web Client 下載 ZIP 至 zipPath
  2. 解壓縮:Execute Process Task 呼叫 WinRAR 解壓至 dataPath
  3. 資料流處理:
    • Flat File Source 讀取文字檔
    • 資料轉換與驗證
    • 錯誤輸出導向:錯誤列導向記錄檔或錯誤表,erroCount 累加
    • OLE DB Destination 寫入目的資料庫
  4. 檢查點設定:套件層級啟用 Checkpoint,設定 CheckpointFileName 與 SaveCheckpoints
  5. 事件處理器:OnError 事件發送郵件、記錄錯誤詳情
  6. 日誌提供者:設定 SQL Server 或檔案日誌,記錄 OnError、OnWarning、OnTaskFailed 等事件
  7. 事務屬性:套件 TransactionOption=Required,資料流工作同樣設定

關鍵技術提示

  • 錯誤輸出設定:在元件編輯器「錯誤輸出」頁面,將錯誤/截斷動作設為「重新導向列」
  • 檢查點檔案建議放在共享儲存,支援叢集環境故障轉移
  • 日誌記錄建議包含:電腦名稱、操作員、執行開始/結束時間、錯誤描述
  • Email 發送可使用 Send Mail Task,結合 SMTP 伺服器設定
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved