Integrartion Services 包实际上就是一个对象属性的集合,在前面我们开发的所有 Integration Services包,其中的变量、属性,比如:数据库链接、同步文件目录等,我们都直接在包中用一个常量的方式,赋给这些变量或者属性,这就给这个包的发 布与移置,带来很大的麻烦,比如我们在开发环境中开发包的时候,所有变量与属性都是按照开发环境来来进行设置,开发完成后,要将这个包部署到生产环境 中,DB连接啊、同步目录啊等都会发生变化,以前的做法:在新环境中打开包,重新设置一遍这些变量或者属性的值,才可以正常运行。从自 Integration Services 2005 以来,多了一个[包配置]功能,这个问题就迎刃而解了。配置文件可以帮助包进行无缝转移,而且可以使用配置过程自动化,从而减少了部署的麻烦,也降低了出 错的风险。
  Integration Services 程序的包配置,允许将程序包、连接、容器、变量等任意SSIS属性,写入到一个XML 文件或表中,然后在运行时读取。其配置类型主要有以下几种方式:
  1、XML 配置文件。
  2、环境变量。
  3、注册表。
  4、父包变量。
  5、Sql Server。
其中,Xml 配置文件、父包变量、Sql Server 比较常见,而其它两种类型,却用得较少,下面我们将详细介绍常见的三种包配置。

  (一)、XML 配置文件。

   选择SSIS菜单--包配置,打开如下窗口,包配置就从这里开始起航。

  选中“启用包配置”,点击“新增”,如图:

  从[配置类型]下拉列表框中可以看出,有多种类型的包配置。我们在这里选择“XML配置文件”,输入配置文件名IisLog.dtsconfig。

 
 配置文件默认为“.dtsconfig”类型,其文件格式是标准的XML文件格式。Integration Services
对配置文件的扩展名并没有严格的规定,如果把它修改成.txt 或者.xml 等都没有关系,通常把它修改为".xml"
文件,这样通用的XML文件编辑器就可以方便地编辑了。(示例中没有修改扩展名)

  点击[下一步],就该选择配置哪些属性了,如图:

 
 在左边的[对象]框中,如果把所有的树结点折叠起来,可以看出包的这四类对象(变量、连接管理器、Properties、可执行文件)的属性可以通过配
置文件来管理。其中[可执行文件],为控制流中的所有组件。下面我们展开所有结点,勾选要配置的属性,当选中某一个属性的时候,该属性的默认值就会在右边
[属性特性]框中显示出来,这个时候也可修改。

  [下一步],如图:

  输入[配置名称],点击完成,XML的配置就这样轻松地完成了。

  我们转到配置文件存放的目录,找到刚才的配置文件"IisLog.dtsconfig ",看看它象什么样子:

 <?xml version="1.0"?>
<DTSConfiguration>
<DTSConfigurationHeading>
<DTSConfigurationFileInfo GeneratedBy="BUYNOW\goumh" GeneratedFromPackageName="ImportIisLog" GeneratedFromPackageID="{F874E3F1-9FD5-4B89-8E29-A86A8E6A6783}" GeneratedDate="2010/1/13 17:36:34"/>
</DTSConfigurationHeading>
<Configuration ConfiguredType="Property" Path="\Package.Connections[ApIisLog].Properties[ConnectionString]" ValueType="String">
<ConfiguredValue>Data Source=goumh-hgh;Initial Catalog=ApIisLog;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-ImportIisLog-{28895FFB-4DA0-4B30-9E59-649F1D200DFA}RD5-HGH.IisLog;</ConfiguredValue>
</Configuration>
<Configuration ConfiguredType="Property" Path="\Package.Connections[BackupFile].Properties[ConnectionString]" ValueType="String">
<ConfiguredValue>E:\inetpub\wwwroot\Sql 2008 Study\SSIS\IisLog\BackupFile</ConfiguredValue>
</Configuration>
<Configuration ConfiguredType="Property" Path="\Package\Foreach 循环容器.ForEachEnumerator.Properties[Directory]" ValueType="String">
<ConfiguredValue>E:\inetpub\wwwroot\Sql 2008 Study\SSIS\IisLog\DataFile</ConfiguredValue>
</Configuration>
<Configuration ConfiguredType="Property" Path="\Package\Foreach 循环容器.ForEachEnumerator.Properties[FileSpec]" ValueType="String">
<ConfiguredValue>*.log</ConfiguredValue>
</Configuration>
</DTSConfiguration>

  这个配置文件中,包含了包ID,属性路径、数据类型、以及属性的值。如果我们要修改包的配置,也就再也不用在打开包,来一个属性一个属性地修改了,直接修改配置文件就可以搞定,给包的发布与部署带来了相当大的方便。

  (二)、SQL Server 

  这也是我们常用到的一种配置方式,配置方式与前面的XML配置大同小异,只是最后的配置属性存储到SQL Server 数据库罢了。

  在[配置类型]下拉列表框中,选择[SQL Server ],下面的配置界面也随着发生了变化。

  [连接],即SQL Server 即数据库的连接,如果从下拉列表框中,找不到对应的连接,点击[新增],就可以创建一个新的连接,这与在连接管理器中,创建OLE DB 连接是一样的。

  [配置表(A)],即配置属性存放的Table ,如果这个Table 没有事先创建好,点击[新建],系统会默认给出其如下SQL语句,点击[确定],Table 就创建完成了。

CREATE TABLE [dbo].[SSIS Configurations]
(
    ConfigurationFilter NVARCHAR(255) NOT NULL,
    ConfiguredValue NVARCHAR(255) NULL,
    PackagePath NVARCHAR(255) NOT NULL,
    ConfiguredValueType NVARCHAR(20) NOT NULL
)

  [配置筛选器(F)]:这个很关键,它是区分每个包的配置属性的key 值,也就是说,如果一个Table 中,存放有多个包的配置属性的时候,每一个包就是根据这个这个key 值来进行过滤的,所以不同的包,应该有不同的key 值。

  [下一步],选择要配置的属性,与上面讲的[XML配置文件]的处理方式一致了。

  下面,我们回到SQL Server 中,找出刚才创建的记录,看看它又是啥面貌:

  (三)、父包变量

  在Integration Services 中,有这样一个任务[执行包任务],利用这个组件,我们就可以将一个包嵌套在另一个包中,这对于我们细化包的粒度,让包的业务处理变得更单纯,非常有帮助,如下图这些模式:

  父包变量的定义也非常简单,打开包配置向导,如下图:

  [配置类型]:选择“父包变量”。

  [父变量]:这里输入父包中的变量的名称。

  [下一步],选择父包变量映射的属性名称,最后点击完成,就会获得如下图所示的效果。

  我们常见的包配置就这些了,环境变量、注册表这两种类型很少用到,这里就不多讲了。

 
 包配置给包的部署带来了非常大的方便,最好的方式是每个服务器使用一个配置文件。但是,从包的配置界面可以看出,一个包可以应用多个配置文件,每个包配
置按照[包配置组织程序]中显示的顺序应用(父包变量除外),如果一个配置中有一项失败了,它只会发出警告,也不会引起包错误;反之,一个配置文件也可以
应用到多个包中,如果我们灵活应用,包的无缝移置,也就不再是神话了。

/***********************************************************************************************
 *【Author】:游子吟
 *【Date】:2013年07月02日
 *【URL】:http://www.cnblogs.com/invinboy/archive/2010/01/14/1646731.html
 *【Notice】:
 *1、本文为原创技术文章,首发博客园个人站点。
 *2、转载和引用请注明作者及出处。
 *3、本文必须全文转载和引用,任何组织和个人未授权不能修改任何内容,并且未授权不可用于商业。
 *4、本声明为文章一部分,转载和引用必须包括在原文中。
 ***********************************************************************************************/

SSIS 学习(6):包配置(上)【转】的更多相关文章

  1. 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架

    一直准备写这么一篇有关 SSIS 日志系统的文章,但是发现很难一次写的很完整.因为这篇文章的内容可扩展的性太强,每多扩展一部分就意味着需要更多代码,示例和理论支撑.因此,我选择我觉得比较通用的 LOG ...

  2. SSIS 包配置

    在商业智能解决方案中,SSIS工程有两种部署模式:工程部署(project deployment)和包部署(package deployment),默认是工程部署模式,在Package的管理上,工程部 ...

  3. SSIS 学习(7):包配置(下)【转】

    经过前面几个章节的学习,我们开发的ETL包算已经完成一大半了,但是还不够完美,正如一场足球比赛,前面大家打得很辛苦,传接得也很漂亮,但 是临门一脚的技术不过关,进不了球,一切都是白搭.今天我们就来为大 ...

  4. SSIS 学习(9):包部署常见问题汇总【转】

    Integration Services 包在部署过程中,经常会出现这样那样的问题,让人摸不着头脑,很是烦人.下面我就将我在部署过程中,遇到的一些问题整理出来,以供大家参考. (一)SSIS包在SQL ...

  5. SQL Server Integration Services(SSIS) 包配置与部署

    SSIS配置此处的配置方式,主要针对到正式服务器上要修改服务器名,和连接服务器等配置注意:1. 包配置在windows2008上生成后,在windows2003上mysql的配置无法使用,总是报错连接 ...

  6. SSIS教程:创建简单的ETL包 -- 5. 添加包部署模型的包配置(Adding Package Configurations for the Package Deployment Model)

    包配置允许您从开发环境的外部设置运行时属性和变量. 配置允许您开发灵活且易于部署和分发的包.Microsoft Integration Services 提供了以下配置类型: XML 配置文件 环境变 ...

  7. [转]在SSIS中,使用“包配置”时的常见错误与解析

    本文转自:http://www.cnblogs.com/invinboy/archive/2008/05/26/1034312.html 在以前的DTS中,在包的开发.测试.发布迁移过程中你必须手动的 ...

  8. SSIS包配置动态配置数据库连接

    动态连接数据库便于维护 用SSIS包配置实现 1.控制流页签 - 右键 - 包配置 2.配置xml文件 3.指定连接属性:ServerName.UserName.Password 测试: 1.配置错误 ...

  9. 实例学习SSIS(三)--使用包配置

    原文:实例学习SSIS(三)--使用包配置 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习SSIS(四)- ...

随机推荐

  1. J2SE7规范_2013.2_类型_命名

    3.1 字面量:包括整型,实型,字符,字符串,布尔,null   整形: 除非后面有个l或L,一般总是int类型 除非是0x,0,0b开头,一般总是十进制 无论什么进制,中间都可以有_,无意义,只是看 ...

  2. Trail: JDBC(TM) Database Access(2)

    package com.oracle.tutorial.jdbc; import java.sql.CallableStatement; import java.sql.Connection; imp ...

  3. Lucene学习笔记: 五,Lucene搜索过程解析

    一.Lucene搜索过程总论 搜索的过程总的来说就是将词典及倒排表信息从索引中读出来,根据用户输入的查询语句合并倒排表,得到结果文档集并对文档进行打分的过程. 其可用如下图示: 总共包括以下几个过程: ...

  4. 超简单fedora20(linux)下JDK1.8的安装

    (博客园-番茄酱原创) 去官网下载linux版本的jdk,如果你的fedora是64位,就选择64位的jdk,jdk-8u20-linux-x64.tar.gz. 将下载好的jdk解压到当前目录下,解 ...

  5. mount失败

    又一次遇到mount失败,提示文件系统类型错误.选项错误.有坏超级块等.之前是在ubuntu 14.04 lts desktop上挂载windows下共享文件夹遇到的.这次具体的环境如下:CentOS ...

  6. Java transient、Volatile关键字

    Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值.而且,当成员变量发生变化时,强迫线程将变化值回写到主内存.这样在任何时刻,两个不同的线程总是看到某个成员变量的同一 ...

  7. 关于名称重整(name mangling)、多态性的一些简单介绍

    在看GCC源码的时候看到mangles这个单词,于是google了一下. 在面向对象编程语言出现之前,如果你想要打印不同类型的数据,需要写多个方法,例如PrintInteger(int i),Prin ...

  8. <a href="javascript:void(0);" id='test' onclick="javascript:alert('即将上线,敬请期待!');"><em class="rmwd"></em>征稿平台</a>

    <a href="javascript:void(0);" id='test' onclick="javascript:alert('即将上线,敬请期待!');&q ...

  9. git乱码问题

    直接看连接吧. http://my.oschina.net/lujian863/blog/168837

  10. CSS基础(02)

    CSS 选择器 1.CSS3 选择器简介 在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素. 语法: 下面中"CSS" 列指示该属性是在哪个 CSS 版本中定义的.(C ...