日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

运行SSIS包的几种方式

發(fā)布時(shí)間:2025/4/16 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 运行SSIS包的几种方式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

很多程序員,不止.net程序員都有可能會(huì)用到SSIS包來(lái)處理一些數(shù)據(jù)流程上的任務(wù)。可以說(shuō)SSIS作為BI下的一個(gè)ETL工具,方便易學(xué),而且功能也確實(shí)很強(qiáng)大。于是開(kāi)發(fā)OLTP的同事總會(huì)到我們這邊尋求技術(shù)上的支持,更多的時(shí)候會(huì)問(wèn)我,當(dāng)一個(gè)SSIS包開(kāi)發(fā)完成之后,都有哪幾種方式可以讓它運(yùn)行起來(lái)。一直以來(lái)我都想把這個(gè)問(wèn)題總結(jié)下來(lái),今天在MSSQLTIPS網(wǎng)站上看老外寫了一個(gè)現(xiàn)成的總結(jié),于是加上自己的理解,簡(jiǎn)略的對(duì)其進(jìn)行了翻譯,并且加以補(bǔ)充。

如果大家對(duì)這篇文章的原文感興趣,可以參考老外原文地址鏈接:

http://www.mssqltips.com/sqlservertip/1775/different-ways-to-execute-a-sql-server-ssis-package/

?

方式一: 在BIDS里直接跑。

這個(gè)BIDS指的就是SQL Server Business Intelligence Development Studio,對(duì)于.net開(kāi)發(fā)者來(lái)說(shuō)它就是Visual Studio。以下是老外文章中的步驟:

首先,包設(shè)計(jì)完成之后,右鍵解決方案瀏覽器,選擇屬性。

在包配置界面中,Build旁邊的OutputPath選擇包被Build之后的存放路徑,確認(rèn)后點(diǎn)擊OK結(jié)束配置。

然后在解決方案管理器中,右鍵點(diǎn)擊要運(yùn)行的包,選擇Set as StartUp Object。

最后,在解決方案管理器中再次右鍵要運(yùn)行的包,選擇Execute Package。

以上是老外文章中提到的四個(gè)步驟,個(gè)人感覺(jué)設(shè)置Build目錄這塊有些多余。設(shè)置Startup Object,主要考慮到一個(gè)項(xiàng)目下如果有很多包的時(shí)候,當(dāng)你點(diǎn)擊運(yùn)行的時(shí)候,運(yùn)行哪一個(gè)包。當(dāng)然我們平時(shí)最多的時(shí)候還是直接到最后一步,就是直接右鍵要運(yùn)行的包然后直接選擇運(yùn)行包。

這種方法是開(kāi)發(fā)和運(yùn)行SSIS包最基本的方式,尤其是在開(kāi)發(fā)和調(diào)試以及測(cè)試包運(yùn)行的時(shí)候,比如可以看一個(gè)數(shù)據(jù)流任務(wù)中某一個(gè)步驟在運(yùn)行時(shí)所傳遞的數(shù)據(jù)。

?

方法二:使用DTEXEC.EXE命令行工具。

DTEXEC.EXE位于SQL Server的安裝目錄下,通過(guò)這個(gè)命令可以指定dtsx包文件來(lái)運(yùn)行包或者運(yùn)行已經(jīng)部署到SQL Server中的包,比如通過(guò)如下命令:

DTEXEC.EXE /F "C:\BulkInsert\BulkInsertTask.dtsx"

這種命令行的方式給批處理以及Powershell 下進(jìn)行調(diào)用就方便了很多。

?

方法三:使用DTEXECUI.EXE工具。

方法二使用的是命令行工具的方式,這里將要介紹的是帶圖形界面的方式。

首先,在命令行中輸入命令DTEXECUI.EXE。

在彈出的界面中指定想要運(yùn)行的包就可以了。

其實(shí)這個(gè)界面就是在SQL Server Management Studio的Intergration Services中執(zhí)行包一樣的界面。

?

方法四:使用SQL Server作業(yè)。

這個(gè)方法是執(zhí)行SSIS包最常見(jiàn)的方法。在Management Studio下連接數(shù)據(jù)引擎,然后在Agent下找到Jobs建立作業(yè)。

借助作業(yè)里的Schedule,可以讓SSIS包在一個(gè)指定的周期里進(jìn)行運(yùn)行。

在作業(yè)的步驟里,可以指定步驟為SSIS包類型,然后指定SSIS包所在的位置。

?

方法五:c#調(diào)用數(shù)據(jù)包。

這個(gè)是老外原文沒(méi)有提到的方法,在這里補(bǔ)充上。

這種方法首先需要引入對(duì)應(yīng)的dll組件:Microsoft.SqlServer.DTSRuntimeWrap.dll

然后引入命名空間:using DtsRunTime = Microsoft.SqlServer.Dts.Runtime.Wrapper;

實(shí)例化如下對(duì)象:

DtsRunTime.Application dtsApplication = new DtsRunTime.Application();

之后,可以調(diào)用實(shí)例化對(duì)象對(duì)應(yīng)的方法來(lái)運(yùn)行包,比如保存在本地的包文件:

DtsRunTime.IDTSPackage90 package = dtsApplication.LoadPackage(@"c:\abc.dtsx", true, null);

或者部署到SSIS里的包:

DtsRunTime.IDTSPackage90 package = dtsApplication.LoadFromSQLServer(PACAAGENAME, SEVERNAME, SQLUSER, SQLPWD, true, null);

最后無(wú)論以哪種方式調(diào)用的包,都通過(guò)如下方法來(lái)接收結(jié)果:

DtsRunTime.DTSExecResult result = package.Execute();

?

?

?

最后的幾點(diǎn)補(bǔ)充:

留意方法四,在任務(wù)里調(diào)用包的方法可以衍生到方法五里的另外一種實(shí)現(xiàn),比如通過(guò)SQL語(yǔ)句來(lái)啟動(dòng)一個(gè)Job:

EXEC msdb.dbo.sp_start_job N'JOBNAME'

方法五經(jīng)過(guò)在實(shí)際測(cè)試中,對(duì)版本和權(quán)限可能會(huì)出現(xiàn)各種問(wèn)題,所以這種方法四的衍生方法相對(duì)更容易實(shí)現(xiàn)些。

無(wú)論以哪一種方式運(yùn)行SSIS包,都需要SSIS安裝在對(duì)應(yīng)的機(jī)器上。也就是說(shuō),你把開(kāi)發(fā)好的包拿到一臺(tái)沒(méi)有安裝SSIS機(jī)器上想要運(yùn)行是行不通的。另外就是通過(guò)程序調(diào)用的方式雖然是需要SSIS的支持,但是SSIS服務(wù)沒(méi)有必要運(yùn)行。

所以在很多商業(yè)智能項(xiàng)目中,通常借助SSIS包來(lái)定期從OLTP中向數(shù)據(jù)倉(cāng)庫(kù)中抽取數(shù)據(jù),或者數(shù)據(jù)倉(cāng)庫(kù)中其它的數(shù)據(jù)任務(wù),當(dāng)然還有園子里的高手提到過(guò)的用它來(lái)實(shí)現(xiàn)監(jiān)控任務(wù)。

轉(zhuǎn)載于:https://www.cnblogs.com/purple5252/p/10335115.html

總結(jié)

以上是生活随笔為你收集整理的运行SSIS包的几种方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。