总结运行SSIS包的几种方式

原文:总结运行SSIS包的几种方式

很多程序员,不止.net程序员都有可能会用到SSIS包来处理一些数据流程上的任务。可以说SSIS作为BI下的一个ETL工具,方便易学,而且功能也确实很强大。于是开发OLTP的同事总会到我们这边寻求技术上的支持,更多的时候会问我,当一个SSIS包开发完成之后,都有哪几种方式可以让它运行起来。一直以来我都想把这个问题总结下来,今天在MSSQLTIPS网站上看老外写了一个现成的总结,于是加上自己的理解,简略的对其进行了翻译,并且加以补充。

如果大家对这篇文章的原文感兴趣,可以参考老外原文地址链接:

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

 

方式一: 在BIDS里直接跑。

这个BIDS指的就是SQL Server Business Intelligence Development Studio,对于.net开发者来说它就是Visual Studio。以下是老外文章中的步骤:

首先,包设计完成之后,右键解决方案浏览器,选择属性。

在包配置界面中,Build旁边的OutputPath选择包被Build之后的存放路径,确认后点击OK结束配置。

然后在解决方案管理器中,右键点击要运行的包,选择Set as StartUp Object。

最后,在解决方案管理器中再次右键要运行的包,选择Execute Package。

以上是老外文章中提到的四个步骤,个人感觉设置Build目录这块有些多余。设置Startup Object,主要考虑到一个项目下如果有很多包的时候,当你点击运行的时候,运行哪一个包。当然我们平时最多的时候还是直接到最后一步,就是直接右键要运行的包然后直接选择运行包。

这种方法是开发和运行SSIS包最基本的方式,尤其是在开发和调试以及测试包运行的时候,比如可以看一个数据流任务中某一个步骤在运行时所传递的数据。

 

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

DTEXEC.EXE位于SQL Server的安装目录下,通过这个命令可以指定dtsx包文件来运行包或者运行已经部署到SQL Server中的包,比如通过如下命令:

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

这种命令行的方式给批处理以及Powershell 下进行调用就方便了很多。

 

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

方法二使用的是命令行工具的方式,这里将要介绍的是带图形界面的方式。

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

在弹出的界面中指定想要运行的包就可以了。

其实这个界面就是在SQL Server Management Studio的Intergration Services中执行包一样的界面。

 

方法四:使用SQL Server作业。

这个方法是执行SSIS包最常见的方法。在Management Studio下连接数据引擎,然后在Agent下找到Jobs建立作业。

借助作业里的Schedule,可以让SSIS包在一个指定的周期里进行运行。

在作业的步骤里,可以指定步骤为SSIS包类型,然后指定SSIS包所在的位置。

 

方法五:c#调用数据包。

这个是老外原文没有提到的方法,在这里补充上。

这种方法首先需要引入对应的dll组件:Microsoft.SqlServer.DTSRuntimeWrap.dll

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

实例化如下对象:

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

之后,可以调用实例化对象对应的方法来运行包,比如保存在本地的包文件:

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

或者部署到SSIS里的包:

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

最后无论以哪种方式调用的包,都通过如下方法来接收结果:

DtsRunTime.DTSExecResult result = package.Execute();

 

 

 

最后的几点补充:

留意方法四,在任务里调用包的方法可以衍生到方法五里的另外一种实现,比如通过SQL语句来启动一个Job:

EXEC msdb.dbo.sp_start_job N'JOBNAME'

方法五经过在实际测试中,对版本和权限可能会出现各种问题,所以这种方法四的衍生方法相对更容易实现些。

无论以哪一种方式运行SSIS包,都需要SSIS安装在对应的机器上。也就是说,你把开发好的包拿到一台没有安装SSIS机器上想要运行是行不通的。另外就是通过程序调用的方式虽然是需要SSIS的支持,但是SSIS服务没有必要运行。

所以在很多商业智能项目中,通常借助SSIS包来定期从OLTP中向数据仓库中抽取数据,或者数据仓库中其它的数据任务,当然还有园子里的高手提到过的用它来实现监控任务

时间: 2024-10-22 07:05:29

总结运行SSIS包的几种方式的相关文章

Intellij IDEA 添加jar包的三种方式

intellij很好用但是对于用习惯了eclipse的童鞋来说有些不习惯,下面是intellij导入jar包的几种方法. Intellij IDEA 添加jar包的三种方式   一.直接复制:(不推荐) 方法:直接将硬盘上的jar包复制粘贴到项目的lib目录下即可. 注意: 1.对于导入的eclipse项目,该方式添加的jar包没有任何反应,用make编译项目会报错 2.对于在idea中创建的项目,该方式添加jar包,编译不报错,但是打开Structure会有"...jar ... is mis

可运行jar包的几种打包/部署方式

java项目开发中,最终生成的jar,大概可分为二类,一类是一些通用的工具类(不包含main入口方法),另一类是可直接运行的jar包(有main入口方法),下面主要讲的是后者,要让一个jar文件可直接运行,通常有几下三种方式: 动工之前,先搭一个项目架子便于后面分析: 项目结构图:  这是一个gradle项目(当然,也可以换成ant项目或maven项目,这不重要),里面有二个模块,my-jar的DemoApp里提供了main入口方法,通常一个可运行的java项目,都会依赖其它一些jar包,所以另

【IDEA】向IntelliJ IDEA创建的项目导入Jar包的两种方式

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 今天用IDEA,需要导入一个Jar包,因为以前都是用eclipse的,所以对这个idea还不怎么上手,连打个Jar包都是谷歌了一下. 但是发现网上谷歌到的做法一般都是去File –> Project Structure中去设置,有没有如同eclipse一样简便的右键添加方法呢. 然后自己摸索了一下,找到了. 以阿里大于的依赖包为例子,因为正好是我遇到要导入的Jar包. 先说下第一种

Eclipse下导入外部jar包的3种方式

我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式.   1.最常用的普通操作方式:基本步骤式          右击"项目"→选择Properties,在弹出的对话框左侧列表中选择Java Build Path,如下图所示:选择Add External JARs,就可以逐个(也可以选择多个jar,但是限制在同一个文件夹中)添加第三方引用jar包.       

使用Maven运行Java main的3种方式

maven使用exec插件运行java main方法,以下是3种不同的操作方式. 一.从命令行运行 1.运行前先编译代码,exec:java不会自动编译代码,你需要手动执行mvn compile来完成编译. mvn compile 2.编译完成后,执行exec运行main方法. 不需要传递参数: mvn exec:java -Dexec.mainClass="me.biezhi.App" 需要传递参数: mvn exec:java -Dexec.mainClass="me.b

在SQL Server中使用命令调用SSIS包

  在SQL Server中可以使用dtexec命令运行SSIS包(2005以上版本),当然也可以通过系统过程:xp_cmdshell调用dtexec运行SSIS包. 具体操作步骤如下: 1.首先,当然是要在Business Intelligence中设计好包,并调试通过. 2.然后,有两种方式可以在SQL Server中使用命令运行SSIS包 第一种是直接执行ssis包文件,命令如: exec xp_cmdshell 'dtexec /f "c:test.dtsx"' 第二种是将包文

在SQL Server中使用命令调用SSIS包的具体方法_MsSql

具体操作步骤如下: 1.首先,当然是要在Business Intelligence中设计好包,并调试通过. 2.然后,有两种方式可以在SQL Server中使用命令运行SSIS包 第一种是直接执行ssis包文件,命令如: exec xp_cmdshell 'dtexec /f "c:\test.dtsx"' 第二种是将包文件发布或者导入到Integration Services服务中,然后再执行. 发布包是在Business Intelligence中生成发布文件,并发布到Integr

在SQL Server中使用命令调用SSIS包的具体方法

具体操作步骤如下: 1.首先,当然是要在Business Intelligence中设计好包,并调试通过. 2.然后,有两种方式可以在SQL Server中使用命令运行SSIS包 第一种是直接执行ssis包文件,命令如: exec xp_cmdshell 'dtexec /f "c:\test.dtsx"' 第二种是将包文件发布或者导入到Integration Services服务中,然后再执行. 发布包是在Business Intelligence中生成发布文件,并发布到Integr

【spring Boot】spring boot获取资源文件的三种方式【两种情况下】

首先声明一点,springboot获取资源文件,需要看是 1>从spring boot默认的application.properties资源文件中获取 2>还是从自定义的资源文件中获取   带着这个想法去看下面几种方式 =============================================================================================== 1>从spring boot默认的application.properties资