总结运行SSIS包的几种方式

摘要:
此方法是执行SSIS包的最常用方法。在作业步骤中,可以将步骤指定为SSIS包类型,然后指定SSIS包的位置。无论以何种方式运行SSIS包,都需要在相应的计算机上安装SSIS。此外,尽管程序调用需要SSIS支持,但不必运行SSIS服务。

方式一: 在BIDS里直接跑。

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

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

总结运行SSIS包的几种方式第1张

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

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

总结运行SSIS包的几种方式第2张

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

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

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

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

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

DTEXEC.EXE /F "C:BulkInsertBulkInsertTask.dtsx"

总结运行SSIS包的几种方式第3张

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

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

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

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

总结运行SSIS包的几种方式第4张

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

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

总结运行SSIS包的几种方式第5张

方法四:使用SQL Server作业。

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

总结运行SSIS包的几种方式第6张

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

总结运行SSIS包的几种方式第7张

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

总结运行SSIS包的几种方式第8张

方法五: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中向数据仓库中抽取数据,或者数据仓库中其它的数据任务,当然还有园子里的高手提到过的用它来实现监控任务

免责声明:文章转载自《总结运行SSIS包的几种方式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇RocketMQ消息存储和ack如何成为一名 Google 软件工程师?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SSIS配置连接PostgreSQL数据库

业名词解释: 1、ODBC:    Open DataBase Connectivity开放式数据库互联。 简单说就是他一个中间层,你开发的软件连上它,它连上数据源(也就是数据库)。这个数据库是access,还是sql server的,或者是oracle的,只要在odbc里设置就行了。这样odbc隔离了数据库的实现细节,解放了软件开发者,而不用再掉入具体数...

SSIS 学习(2):数据流任务(上)【转】

数据流任务是SSIS中的一个核心任务,估计大多数ETL包中,都离不开数据流任务。所以我们也从数据流任务学起。   数据流任务包括三种不同类型的数据流组件:源、转换、目标。其中:   源:它是指一组数据存储体,包括关系数据库的表、视图;文件(平面文件、Excel 文件、Xml 文件等);系统内存中的数据集等。   转换:这是数据流任务的核心组件,如果说数据流...

将 Excel 数据导入 SQL Server数据库

原文:https://docs.microsoft.com/zh-cn/sql/relational-databases/import-export/import-data-from-excel-to-sql?view=sql-server-2017#bulk-insert 适用于:SQL Server(所有支持的版本)  将 Excel 文件中的数据...

创建SSIS包—建立端到端的package

通过基本task和transforms的学习,现在可以转入到SSIS实际应用。建立端到端的package这个系列中首先讲解将一系列的文件数据导入到SQL Server中的方法,然后添加一些复杂转换,最后将看到如何在package中处理错误和动态地创建package。 创建一个项目 使用SSIS的首要目的是从数据源中读取数据,然后写入Destination中...

SSIS 学习(4):变量和表达式【转】

变量,作为程序员的我们,是一个多么熟悉的概念,从开始学习编程的第一天起,就要了解什么是变量?如何定义一个变量?变量的使用范围等。现在还有必 要在这里大费口舌来讨论“变量”吗?不错,我们今天谈的变量,也脱离不了这个范畴:如何定义一个变量?如何使用变量?变量的使用范围等。但是在ETL的发 展过程中,从以前Sql Server 97、Sql Server 200...

2019 安装SSDT

2019之前的SSIS,SSAS,SSRS三剑客都是通过单独的安装工具进行安装,从2019开始微软给集成到了Visual Studio中,一时间搞的我有点懵逼。快速一阵 Search,看到官网的一张截图和几句说明,竟然搞定了。 第一步:在Visual Studio中选择Data storage and processing 第二步:在扩展菜单下的Visu...