zoukankan      html  css  js  c++  java
  • 总结运行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:BulkInsertBulkInsertTask.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中向数据仓库中抽取数据,或者数据仓库中其它的数据任务,当然还有园子里的高手提到过的用它来实现监控任务

  • 相关阅读:
    百度mp3地址解密码
    VB 在EXE后附加信息
    截屏函数
    Base64和StrToByte
    The Android ION memory allocator, DMABUF is mentioned as well
    DDC EDID 介绍
    Memory management for graphic processors TTM的由来
    科普 写display driver的必看 How video card works [2D的四种主要操作]
    GEM vs TTM
    DMABUF 背景介绍文章 Sharing buffers between devices
  • 原文地址:https://www.cnblogs.com/colder/p/6072760.html
Copyright © 2011-2022 走看看