時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
在使用SQL Server 的過程,中由于經(jīng)常需要從多個不同地點將數(shù)據(jù)集中起來或向多個地點復(fù)制數(shù)據(jù),所以數(shù)據(jù)的導(dǎo)出,導(dǎo)入是極為常見的操作.我們可以使用BCP 命令來完成這一任務(wù),但是記住 BCP 的命令格式是一件令人頭痛的苦差事,雖然你可以查看幫助文件,所以我們需要功能強(qiáng)大操作簡單的工具來完成這一任務(wù),數(shù)據(jù)轉(zhuǎn)換服務(wù)DTS 提供了這種支持。因此本章將介紹DTS 的基本情況、討論DTS 的各個構(gòu)建組件以及如何完成數(shù)據(jù)轉(zhuǎn)換服務(wù)。
數(shù)據(jù)轉(zhuǎn)換服務(wù)簡介
為了支持企業(yè)決策,許多組織都需將數(shù)據(jù)集中起來進(jìn)行分析。但是通常數(shù)據(jù)總是以不同的格式存儲在不同的地方。有的可能是文本文件,有的雖然具有表結(jié)構(gòu)但不屬于同一種數(shù)據(jù)源,這些情況極大地妨礙數(shù)據(jù)的集中處理。SQL Server 為我們提供了令人欣慰的組件,即Data Transformation Services( DTS)。 DTS 本身包含多個工具并提供了接口來實現(xiàn)在任何支持OLE DB 的數(shù)據(jù)源間導(dǎo)入、導(dǎo)出或傳遞數(shù)據(jù),并使這一工作變得簡單高效。這意味著不僅可以在SQL Server 數(shù)據(jù)源間進(jìn)行數(shù)據(jù)的轉(zhuǎn)儲,而且可以把Sybase, Oracle, Informix 下的數(shù)據(jù)傳遞到SQL Server。
利用Data Transformation Services (DTS) 可能在任何OLE DB、 ODBC 驅(qū)動程序的數(shù)據(jù)源或文本文和SQL Server 之間導(dǎo)入、導(dǎo)出或傳遞數(shù)據(jù)。具體表現(xiàn)在:
數(shù)據(jù)的導(dǎo)入、導(dǎo)出服務(wù)
通過讀寫數(shù)據(jù)在不同應(yīng)用程序間交換數(shù)據(jù)。例如,可將文本文件或Microsoft Access 數(shù)據(jù)庫導(dǎo)入到SQL Server, 也可以把數(shù)據(jù)從SQL Server 導(dǎo)出到任何OLE DB 數(shù)據(jù)源。
轉(zhuǎn)換數(shù)據(jù)
所謂傳遞是指在數(shù)據(jù)未到達(dá)目標(biāo)數(shù)據(jù)源前而對數(shù)據(jù)采取的系列操作。比如DTS 允許從源數(shù)據(jù)源的一列或多列計算出新的列值,然后將其存儲在目標(biāo)數(shù)據(jù)庫中。
傳遞數(shù)據(jù)庫對象
在異構(gòu)數(shù)據(jù)源情況下DTS, 的內(nèi)置工具只能在數(shù)據(jù)源間傳遞表定義和數(shù)據(jù)。如果要傳遞其它數(shù)據(jù)庫對象,如索引、約束、視圖時,必須定義一個任務(wù),從而在目標(biāo)數(shù)據(jù)庫上執(zhí)行那些包含在任務(wù)中的SQL 語句,SQL 語句是被用來創(chuàng)建這些數(shù)據(jù)庫對象的。
DTS 將數(shù)據(jù)導(dǎo)入、導(dǎo)出或傳遞定義成可存儲的對象,即包裹或稱為包。每一個包都是包括一個或具有一定順序的多個任務(wù)的工作流。每個任務(wù)可以將數(shù)據(jù)從某一數(shù)據(jù)源拷貝至目標(biāo)數(shù)據(jù)源或使用Active 腳本轉(zhuǎn)換數(shù)據(jù)或執(zhí)行SQL 語句或運行外部程序。也可以在SQL Server 數(shù)據(jù)源間傳遞數(shù)據(jù)庫對象。
包對象用來創(chuàng)建并存儲步驟,這些步驟定義了一系列任務(wù)執(zhí)行的順序以及執(zhí)行任務(wù)的必要細(xì)節(jié)。包對象中還包括源列、目標(biāo)列以及有關(guān)在數(shù)據(jù)傳遞過程中如何操縱數(shù)據(jù)的信息。
包可以存儲在DTS COM 結(jié)構(gòu)的存儲文件中、msdb 數(shù)據(jù)庫中、或Microsoft Repository 中。
可以通過以下工具來運行包,它們是:dtsrun 工具,DTS Designer, DTS 的導(dǎo)入、導(dǎo)出向?qū)В琒QL Server Agent 來運行規(guī)劃作業(yè),使用Execute 方法調(diào)用DTS 包對象的COM應(yīng)用程序。
包是頂層對象,它包含三種底層對象:連接、任務(wù)、步驟。
連接
連接定義了有關(guān)源和目標(biāo)數(shù)據(jù)(數(shù)據(jù)源或文件)的信息這些信息包括數(shù)據(jù)格式和位置,以及安全認(rèn)證的密碼。DTS 包可不包含或包含多個連接。使用連接的任務(wù)有:
DTS Data Pump 任務(wù) 執(zhí)行SQL 任務(wù) 數(shù)據(jù)驅(qū)動查詢?nèi)蝿?wù) 定制任務(wù);
有三種類型的連接對象 數(shù)據(jù)源連接。
數(shù)據(jù)源連接定義了有關(guān)源和目標(biāo)OLE DB 數(shù)據(jù)源的信息。這些信息包括服務(wù)器名稱、數(shù)據(jù)格式和位置,以及安全認(rèn)證的密碼。第一個使用連接的任務(wù)負(fù)責(zé)創(chuàng)建該連接。如果使用ODBC 的OLE DB 提供者,則連接也可以定義ODBC 數(shù)據(jù)源信息。
文件連接定義了有關(guān)源和目標(biāo)文件的信息。這些信息包括文件格式和位置。 Microsoft 數(shù)據(jù)連接對象
Microsoft 數(shù)據(jù)連接對象或者加載數(shù)據(jù)連接文件(*.udl) 或者為OLE DB 提供者設(shè)置數(shù)據(jù)連接文件的屬性。
任務(wù)
每個DTS 包都含有一個或多個任務(wù),每個任務(wù)都是數(shù)據(jù)轉(zhuǎn)換(傳遞)處理的工作項目。任務(wù)的種類包括: 執(zhí)行SQL 任務(wù):即執(zhí)行SQL 語句; Data Pump 任務(wù)該任務(wù):為Data Pump 操作定義了源和目標(biāo)數(shù)據(jù)源以及數(shù)據(jù)轉(zhuǎn)換。Data Pump 從源和目標(biāo)OLE DB 數(shù)據(jù)源間拷貝并轉(zhuǎn)換數(shù)據(jù); ActiveX 腳本執(zhí)行:ActiveX, VB, Jscript 或Perscript 腳本。凡是腳本支持的操作都可以執(zhí)行; 執(zhí)行處理任務(wù)(Execute Process task): 指執(zhí)行外部程序; 批量插入指執(zhí)行:SQL Server 批拷貝操作; 發(fā)送郵件:使用SQL Mail 發(fā)送尋呼或郵件; 數(shù)據(jù)驅(qū)動查詢:執(zhí)行OLE DB 數(shù)據(jù)源間的高級數(shù)據(jù)傳遞; 轉(zhuǎn)換SQL Server 對象:即從SQL Server OLE DB 數(shù)據(jù)源向另外的同類數(shù)據(jù)源復(fù)制對象,例如表、索引、視圖。
步驟
步驟對象定義了任務(wù)執(zhí)行的順序,以及某一任務(wù)的執(zhí)行是否依賴于前一個任務(wù)的結(jié)果。如果某一任務(wù)不與步驟對象相關(guān)聯(lián),則其將無法被執(zhí)行??梢詾槟骋徊襟E設(shè)定運行條件,使其只在一定條件才被執(zhí)行,為了提高執(zhí)行的性能,也可以并行執(zhí)行多個步驟。
步驟的一個重要特性是步驟優(yōu)先權(quán)約束。步驟優(yōu)先權(quán)約束定義了前一步必須滿足哪些條件之后才會執(zhí)行當(dāng)前步驟,通過步驟優(yōu)先權(quán)約束可以控制任務(wù)的執(zhí)行順序。有三種類型的優(yōu)先權(quán)約束:
完成:表示前一步驟完成后就執(zhí)行當(dāng)前步驟,而不管其成功與否; 成功:表示前一步驟只有成功執(zhí)行才執(zhí)行當(dāng)前步驟; 失敗:表示前一步驟執(zhí)行失敗時才執(zhí)行當(dāng)前步驟。某一步驟可有多個優(yōu)先權(quán)約束,只有前一步滿足所有的約束后,才能執(zhí)行當(dāng)前步驟。
關(guān)鍵詞標(biāo)簽:DTS構(gòu)建,數(shù)據(jù)轉(zhuǎn)換
相關(guān)閱讀
熱門文章 淺談JSP JDBC來連接SQL Server 2005的方法 SqlServer2005對現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 sql server系統(tǒng)表損壞的解決方法 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫用戶、角色、架構(gòu)的關(guān)系
人氣排行 配置和注冊O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠(yuǎn)程備份(還原)SQL2000數(shù)據(jù)庫 SQL2000數(shù)據(jù)庫遠(yuǎn)程導(dǎo)入(導(dǎo)出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫服務(wù)端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級到2000的正確操作步驟 sql server系統(tǒng)表損壞的解決方法 淺談JSP JDBC來連接SQL Server 2005的方法