SQL Server SSIS配置与部署

原创 2016年08月31日 00:19:38

SSIS 其全称是Sql Server Integration Services ,是Microsoft BI 解决方案的一大利器

SSIS 的体系结构主要由四部分组成:Integration Services 服务、Integration Services 对象模型、Integration Services 运行时和运行时可执行文件以及封装数据流引擎和数据流组件的数据流任务

很多程序员,不止.net程序员都有可能会用到SSIS包来处理一些数据流程上的任务。可以说SSIS作为BI下的一个ETL工具,方便易学,而且功能也确实很强大。在MSSQLTIPS网站上有一个使用总结,并且国内也有不少人总结SSIS使用方法,加上自己的理解,进行如下总结:

 

方式一: 在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中向数据仓库中抽取数据,或者数据仓库中其它的数据任务。


参考原文地址链接:

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


Business Intelligence——SSIS项目从创建到部署的简单总结(一)

最近在给项目部署测试环境,需要进行部分数据迁移的工作。第一次接触到了SSIS,研究了半天,总算是把项目部署到了数据库中。由于接触SSIS还比较浅,写这篇文章也是围绕工作中实际使用到的部分,我相信对于刚...
  • CodeRookieGuo
  • CodeRookieGuo
  • 2016年01月06日 19:04
  • 6326

图解:SQL Server SSIS包和job的部署攻略

http://www.cnblogs.com/arwutang/archive/2011/09/12/2174003.html 以下将建立一个SQL Server SSIS包然后在job中使用这个包...
  • caolaosanahnu
  • caolaosanahnu
  • 2012年06月14日 13:48
  • 1357

SSIS_创建SSIS包和数据源

包是SSIS的核心对象。一个包包含控制流、数据流和连接。控制流由一些工作流元素构成,这些元素或许是执行SQL任务、数据流任务,FTP任务等。数据流主要用来实现商业逻辑,如ETL。连接包括数据源和数据目...
  • Burgess_Liu
  • Burgess_Liu
  • 2012年05月02日 15:29
  • 13912

ssis包建立完毕 通过SQL Server 代理 运行

ssis包建立完毕 通过SQL Server 代理运行遇到了需
  • feifly329
  • feifly329
  • 2014年04月17日 14:11
  • 881

一步一步部署SSIS包图解教程

本文就SQL统计分析SSIS包的部署进行一次详细的部署图解教程,Sql Server Integration Services 提供了非常简单的部署工具,利用这些工具可以方便地将包文件(*.dtsx)...
  • wpc820411
  • wpc820411
  • 2010年10月08日 13:43
  • 6481

通过sql的代理来定期执行ssis包

经过一天多的摸索与查找,终于有点小明白设置方面的事情 1、首先生成ssis包,如果是本机上的存在敏感数据或者在本地调用其他机器上的ssis包的时候,应该在包的控制流中的空白处点鼠标右键选择属性,然后设...
  • meloveself
  • meloveself
  • 2011年05月12日 15:45
  • 1201

SQL Server 2005 Integration Services (SSIS) (1) - 简介

由于国内关于关于 SQL Server 2005 商务智能 (SQL Server Business Intelligence - BI)的中文资料相当匮乏,我想把我近两年来用于授课的英文资料,以及从...
  • Me_online
  • Me_online
  • 2007年03月11日 11:32
  • 12187

3.8、BI之SSIS之包生成与部署

BI之SSIS之包生成与部署   1          启用包配置 对于以数据库为目标的连接,因为涉及到权限问题,需启用包配置,配置中保存目标的连接字符串。(可多个包的多个控件使用同一个包配置)...
  • soldierluo
  • soldierluo
  • 2015年10月21日 11:24
  • 598

SSIS教程SQlServer2008R2

SSIS教程2008R2 2012.03.05 任务 1:创建新的 Integration Services 项目 SQL Server 2008 R2 其他版本 1(共 1)对本文的评...
  • yaowei701424
  • yaowei701424
  • 2012年03月06日 16:30
  • 4134

SQL Server DTS/SSIS 滥用之复制数据库对象

论坛上一直看到有朋友问1 我的数据库一个表怎么定期同步到另一个表2 我的数据库上一个实例的数据库怎么同步3 我的局域网络上两台sql server服务器上的数据库怎么同步4 我的数据库迁移,n多用户登...
  • billpu
  • billpu
  • 2010年11月01日 18:29
  • 4643
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL Server SSIS配置与部署
举报原因:
原因补充:

(最多只允许输入30个字)