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

SQL Server 數據轉換服務 (DTS) 深度解析:架構、組件、任務與工作流全景圖

     編輯:關於SqlServer

DTS(Data Transformation Services)是 SQL Server 7.0/2000 時代核心 ETL 平台,雖已被 SSIS 取代,但其架構思想仍具參考價值。本文系統梳理 DTS 核心概念、物件模型、任務類型與執行流程。

一、DTS 核心價值

  • 支援任意 OLE DB/ODBC 數據源間的導入、導出、轉換(SQL Server、Oracle、Sybase、Access、文本檔等)。
  • 提供圖形化設計器(DTS Designer)與向導,降低 ETL 開發門檻。
  • 支援工作流控制:任務排序、條件分支、並行執行、錯誤處理。

二、DTS 物件層級結構

Package (包/包裹) ── 頂層容器,存儲步驟、連線、任務、全域變數
├── Connection (連線) ── 定義源/目標數據源屬性(伺服器、資料庫、檔案、UDL、認證)
├── Task (任務) ── 工作單元,執行具體操作
│   ├── Execute SQL Task
│   ├── Data Pump Task (核心:源→轉換→目標)
│   ├── ActiveX Script Task (VBScript/JScript)
│   ├── Execute Process Task (外部程式)
│   ├── Bulk Insert Task (BCP)
│   ├── Send Mail Task
│   ├── Data Driven Query Task (高級行級轉換)
│   └── Transfer SQL Server Objects Task (架構同步)
└── Step (步驟) ── 定義任務執行順序與優先權約束
    ├── 完成 (Completion) ── 無視成敗執行下一步
    ├── 成功 (Success) ── 僅前步成功才執行
    └── 失敗 (Failure) ── 僅前步失敗才執行

三、連線類型詳解

類型用途典型提供者
數據源連線OLE DB 數據源(關係型資料庫)SQLOLEDB, OraOLEDB, MSDASQL(ODBC)
檔案連線文本、CSV、Excel 等平面檔案Microsoft Jet, Text ODBC
Microsoft 數據連線載入 *.udl 檔或配置 OLE DB 屬性通用連線字串管理

四、包的儲存與執行方式

  • 儲存位置:結構化儲存檔 (*.dts)、msdb 資料庫 (sysdtspackages)、Microsoft Repository。
  • 執行工具:dtsrun 命令列、DTS Designer、導入導出向導、SQL Server Agent 作業、COM 應用呼叫 Execute 方法。

五、異構環境下的數據庫物件傳遞

內建「轉換 SQL Server 物件任務」僅支援表定義與數據複製。若需傳遞索引、約束、視圖、預存程序,必須在目標庫建立「執行 SQL 任務」運行對應 DDL 腳本。

六、從 DTS 到 SSIS 的演進

  • SQL Server 2005 引入 SSIS(Integration Services),架構全面重寫:資料流引擎與控制流引擎分離、支援斷點重啟、豐富的資料流轉換組件、腳本任務支援 .NET (C#/VB.NET)、部署模型現代化 (Project Deployment/ISDB)。
  • DTS 封裝可透過「DTS 封裝遷移精靈」升級至 SSIS,但複雜 ActiveX 腳本需人工重寫為 .NET 腳本。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved