SQL Server2012-SSIS的包管理和部署
我们知道MS的SSIS是通过包对象来管理ETL的,通过我们完成一个ETL任务之后,是需要对包的相关属性进行配置的(说白了就是生成配置文件),以便于在包部署在服务器之后动态的修改的配置信息,免得重新修改原始的SSIS包;在某些情况下甚至是无法修改原始的SSIS包,例如SSIS原始包不在一个服务器之上,这中情况下就需要对包的配置文件进行修改以完成某些操作。包配置信息还可以放在数据库中。
将SSIS包部署在服务器(SQL Server)上之后,就可以在服务器上对包进行操作。其实将包部署在服务器上是有多种方法的:
这个我们稍后会介绍,先来介绍怎样给SSIS包生成配置文件(以常见的XML配置文件为例),具体的包执行的控制流和数据流等内容读者可以自定义;
下面的步骤就很简单了,最后会生成一个SSIS包配置事例-配置文件.dtsConfig配置文件:其中<ConfiguredValue> 321 </ConfiguredValue> 是修改过的错误链接信息;默认是空值,作为测试,正确的密码为123;
<?xml version="1.0"?>
<DTSConfiguration>
<DTSConfigurationHeading>
<DTSConfigurationFileInfo GeneratedBy="win7-PC\Administrator" GeneratedFromPackageName="SSIS包配置事例" GeneratedFromPackageID="{8EBB6148-F3EE-44A6-AA86-EBDDB5CA5EE4}" GeneratedDate="2017/2/6 21:22:04"/>
</DTSConfigurationHeading>
<Configuration ConfiguredType="Property" Path="\Package.Connections[YZSY].Properties[Password]" ValueType="String">
<ConfiguredValue> 321 </ConfiguredValue>
</Configuration>
</DTSConfiguration>
注意在选择生成的配置文件内容时,选择你在实际项目中需要修改的属性(这里仅仅选择了属性Password)即可,有了配置文件,在运行包的时候(通常是在服务上)就可以选择,运行时包读取的是原来的配置信息还是配置文件中的信息:
最终因为密码错误而运行失败。以上是根据配置文件中的信息运行包的导致错误出现,
下面根据原始配置信息,也就是默认的运行信息进行运行:
注意,这里是Windows帐号,执行结果反馈:
细心的读者可能发现了以上两种在服务器上运行包的地方不同,一个是在文件系统,一个是在SSIS的目录,两者有什么不同?前者只能运行本机上的SSIS包,后者可以是不同机器;且后者会有运行报告分析,这是我们需要的。
这里我们就要解释以下本文开始的提到的4中不同SSIS部署方式:
1、SQL Server:是部署在里的文件夹下,跟SSIS包存储区的部署方式相同,直接右键导入包即可。
2、SSIS包存储区:是不是在这里的文件下,也是通过导入的方式即可。
3、SSIS目录:是保存在这里的目录,并不是通过导入的而是通过,SSIS原始项目生成的:,生成的文件:
双击点开,即可打开部署向导,
最终将包部署在服务器上,这种方式的部署为本人推荐的方式。
4、文件系统:其实并没有部署在服务器,这形式通常是在建立作业时之间引入原始的SSIS包文件。