IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁(yè)數(shù)據(jù)庫(kù)MSSQL → DTS構(gòu)建組件及其如何完成數(shù)據(jù)轉(zhuǎn)換服務(wù)

DTS構(gòu)建組件及其如何完成數(shù)據(jù)轉(zhuǎn)換服務(wù)

時(shí)間:2015/6/28來(lái)源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評(píng)論(0)

在使用sql server 的過(guò)程,中由于經(jīng)常需要從多個(gè)不同地點(diǎn)將數(shù)據(jù)集中起來(lái)或向多個(gè)地點(diǎn)復(fù)制數(shù)據(jù),所以數(shù)據(jù)的導(dǎo)出,導(dǎo)入是極為常見(jiàn)的操作.我們可以使用BCP 命令來(lái)完成這一任務(wù),但是記住 BCP 的命令格式是一件令人頭痛的苦差事,雖然你可以查看幫助文件,所以我們需要功能強(qiáng)大操作簡(jiǎn)單的工具來(lái)完成這一任務(wù),數(shù)據(jù)轉(zhuǎn)換服務(wù)DTS 提供了這種支持。因此本章將介紹DTS 的基本情況、討論DTS 的各個(gè)構(gòu)建組件以及如何完成數(shù)據(jù)轉(zhuǎn)換服務(wù)。

數(shù)據(jù)轉(zhuǎn)換服務(wù)簡(jiǎn)介

為了支持企業(yè)決策,許多組織都需將數(shù)據(jù)集中起來(lái)進(jìn)行分析。但是通常數(shù)據(jù)總是以不同的格式存儲(chǔ)在不同的地方。有的可能是文本文件,有的雖然具有表結(jié)構(gòu)但不屬于同一種數(shù)據(jù)源,這些情況極大地妨礙數(shù)據(jù)的集中處理。SQL Server 為我們提供了令人欣慰的組件,即Data Transformation Services( DTS)。 DTS 本身包含多個(gè)工具并提供了接口來(lái)實(shí)現(xiàn)在任何支持OLE DB 的數(shù)據(jù)源間導(dǎo)入、導(dǎo)出或傳遞數(shù)據(jù),并使這一工作變得簡(jiǎn)單高效。這意味著不僅可以在SQL Server 數(shù)據(jù)源間進(jìn)行數(shù)據(jù)的轉(zhuǎn)儲(chǔ),而且可以把Sybase, oracle, Informix 下的數(shù)據(jù)傳遞到SQL Server。

利用Data Transformation Services (DTS) 可能在任何OLE DB、 ODBC 驅(qū)動(dòng)程序的數(shù)據(jù)源或文本文和SQL Server 之間導(dǎo)入、導(dǎo)出或傳遞數(shù)據(jù)。具體表現(xiàn)在:

數(shù)據(jù)的導(dǎo)入、導(dǎo)出服務(wù)

通過(guò)讀寫(xiě)數(shù)據(jù)在不同應(yīng)用程序間交換數(shù)據(jù)。例如,可將文本文件或Microsoft access 數(shù)據(jù)庫(kù)導(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ù)源前而對(duì)數(shù)據(jù)采取的系列操作。比如DTS 允許從源數(shù)據(jù)源的一列或多列計(jì)算出新的列值,然后將其存儲(chǔ)在目標(biāo)數(shù)據(jù)庫(kù)中。

傳遞數(shù)據(jù)庫(kù)對(duì)象

在異構(gòu)數(shù)據(jù)源情況下DTS, 的內(nèi)置工具只能在數(shù)據(jù)源間傳遞表定義和數(shù)據(jù)。如果要傳遞其它數(shù)據(jù)庫(kù)對(duì)象,如索引、約束、視圖時(shí),必須定義一個(gè)任務(wù),從而在目標(biāo)數(shù)據(jù)庫(kù)上執(zhí)行那些包含在任務(wù)中的SQL 語(yǔ)句,SQL 語(yǔ)句是被用來(lái)創(chuàng)建這些數(shù)據(jù)庫(kù)對(duì)象的。

DTS 將數(shù)據(jù)導(dǎo)入、導(dǎo)出或傳遞定義成可存儲(chǔ)的對(duì)象,即包裹或稱為包。每一個(gè)包都是包括一個(gè)或具有一定順序的多個(gè)任務(wù)的工作流。每個(gè)任務(wù)可以將數(shù)據(jù)從某一數(shù)據(jù)源拷貝至目標(biāo)數(shù)據(jù)源或使用Active 腳本轉(zhuǎn)換數(shù)據(jù)或執(zhí)行SQL 語(yǔ)句或運(yùn)行外部程序。也可以在SQL Server 數(shù)據(jù)源間傳遞數(shù)據(jù)庫(kù)對(duì)象。

包對(duì)象用來(lái)創(chuàng)建并存儲(chǔ)步驟,這些步驟定義了一系列任務(wù)執(zhí)行的順序以及執(zhí)行任務(wù)的必要細(xì)節(jié)。包對(duì)象中還包括源列、目標(biāo)列以及有關(guān)在數(shù)據(jù)傳遞過(guò)程中如何操縱數(shù)據(jù)的信息。

包可以存儲(chǔ)在DTS COM 結(jié)構(gòu)的存儲(chǔ)文件中、msdb 數(shù)據(jù)庫(kù)中、或Microsoft Repository 中。

可以通過(guò)以下工具來(lái)運(yùn)行包,它們是:dtsrun 工具,DTS Designer, DTS 的導(dǎo)入、導(dǎo)出向?qū)В琒QL Server Agent 來(lái)運(yùn)行規(guī)劃作業(yè),使用Execute 方法調(diào)用DTS 包對(duì)象的COM應(yīng)用程序。

包是頂層對(duì)象,它包含三種底層對(duì)象:連接、任務(wù)、步驟。

連接

連接定義了有關(guān)源和目標(biāo)數(shù)據(jù)(數(shù)據(jù)源或文件)的信息這些信息包括數(shù)據(jù)格式和位置,以及安全認(rèn)證的密碼。DTS 包可不包含或包含多個(gè)連接。使用連接的任務(wù)有:

DTS Data Pump 任務(wù) 執(zhí)行SQL 任務(wù) 數(shù)據(jù)驅(qū)動(dòng)查詢?nèi)蝿?wù) 定制任務(wù);

有三種類型的連接對(duì)象 數(shù)據(jù)源連接。

數(shù)據(jù)源連接定義了有關(guān)源和目標(biāo)OLE DB 數(shù)據(jù)源的信息。這些信息包括服務(wù)器名稱、數(shù)據(jù)格式和位置,以及安全認(rèn)證的密碼。第一個(gè)使用連接的任務(wù)負(fù)責(zé)創(chuàng)建該連接。如果使用ODBC 的OLE DB 提供者,則連接也可以定義ODBC 數(shù)據(jù)源信息。

文件連接定義了有關(guān)源和目標(biāo)文件的信息。這些信息包括文件格式和位置。 Microsoft 數(shù)據(jù)連接對(duì)象

Microsoft 數(shù)據(jù)連接對(duì)象或者加載數(shù)據(jù)連接文件(*.udl) 或者為OLE DB 提供者設(shè)置數(shù)據(jù)連接文件的屬性。

任務(wù)

每個(gè)DTS 包都含有一個(gè)或多個(gè)任務(wù),每個(gè)任務(wù)都是數(shù)據(jù)轉(zhuǎn)換(傳遞)處理的工作項(xiàng)目。任務(wù)的種類包括: 執(zhí)行SQL 任務(wù):即執(zhí)行SQL 語(yǔ)句; 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ū)動(dòng)查詢:執(zhí)行OLE DB 數(shù)據(jù)源間的高級(jí)數(shù)據(jù)傳遞; 轉(zhuǎn)換SQL Server 對(duì)象:即從SQL Server OLE DB 數(shù)據(jù)源向另外的同類數(shù)據(jù)源復(fù)制對(duì)象,例如表、索引、視圖。

步驟

步驟對(duì)象定義了任務(wù)執(zhí)行的順序,以及某一任務(wù)的執(zhí)行是否依賴于前一個(gè)任務(wù)的結(jié)果。如果某一任務(wù)不與步驟對(duì)象相關(guān)聯(lián),則其將無(wú)法被執(zhí)行?梢詾槟骋徊襟E設(shè)定運(yùn)行條件,使其只在一定條件才被執(zhí)行,為了提高執(zhí)行的性能,也可以并行執(zhí)行多個(gè)步驟。

步驟的一個(gè)重要特性是步驟優(yōu)先權(quán)約束。步驟優(yōu)先權(quán)約束定義了前一步必須滿足哪些條件之后才會(huì)執(zhí)行當(dāng)前步驟,通過(guò)步驟優(yōu)先權(quán)約束可以控制任務(wù)的執(zhí)行順序。有三種類型的優(yōu)先權(quán)約束:

完成:表示前一步驟完成后就執(zhí)行當(dāng)前步驟,而不管其成功與否; 成功:表示前一步驟只有成功執(zhí)行才執(zhí)行當(dāng)前步驟; 失。罕硎厩耙徊襟E執(zhí)行失敗時(shí)才執(zhí)行當(dāng)前步驟。某一步驟可有多個(gè)優(yōu)先權(quán)約束,只有前一步滿足所有的約束后,才能執(zhí)行當(dāng)前步驟。

關(guān)鍵詞標(biāo)簽:DTS構(gòu)建,數(shù)據(jù)轉(zhuǎn)換

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 SqlServer2005對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟SqlServer2005對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟sql server系統(tǒng)表?yè)p壞的解決方法sql server系統(tǒng)表?yè)p壞的解決方法MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫(kù)用戶MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫(kù)用戶Access、SQL Server、Oracle常見(jiàn)應(yīng)用的區(qū)別Access、SQL Server、Oracle常見(jiàn)應(yīng)用的區(qū)別

相關(guān)下載

人氣排行 如何遠(yuǎn)程備份(還原)SQL2000數(shù)據(jù)庫(kù)SQL2000數(shù)據(jù)庫(kù)遠(yuǎn)程導(dǎo)入(導(dǎo)出)數(shù)據(jù)配置和注冊(cè)O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程SQL2000和SQL2005數(shù)據(jù)庫(kù)服務(wù)端口查看或修改SQL Server 2005降級(jí)到2000的正確操作步驟修改Sql Server唯一約束教程淺談JSP JDBC來(lái)連接SQL Server 2005的方法SQL Server創(chuàng)建表語(yǔ)句介紹