SSIS 包配置

在商业智能解决方案中,SSIS工程有两种部署模式:工程部署(project deployment)和包部署(package deployment),默认是工程部署模式,在Package的管理上,工程部署模式是当前主流的部署模式,比包部署的更容易管理,也更容易对package进行调试和故障排除,而包部署模式是传统的部署模式在包部署模式中。在包部署模式中,SSIS引擎支持包配置(Package Configuration)功能,用户能够在Package运行时动态修改属性值。包配置是配置项的集合,每一个配置项(configuration item)是一个属性/值对(property/value pair)。用户向包配置中增加配置项,Package在运行时从包配置中获取属性值,对Package的执行进行编程控制,特别在批量管理Package的场景中,比如,批量修改Package的某一个公共变量的值,切换Package的测试和产品环境等,包配置十分有用。

一般情况下,包配置信息存储在SQL Server数据库中,用户能够配置的Package对象共有四种,分别是:

  • Connection Managers:Package的链接管理器(connection managers);
  • Executables:package 的可执行组件;
  • Propertites:package的properties;
  • Variables:package的variables;

以上四种Package对象,都能够被参数化配置,这是SSIS能够把其属性值存储在包配置中,并能够在执行时应用属性的配置值的基础。

在执行Package时,SSIS Package首先读取包配置信息,将包配置中的属性值应用到Package中,然后执行package的可执行组件(executables);修改包配置中属性的值,将动态改变Package的执行上下文,例如,测试环境和产品环境的切换,修改链接管理器(Connection Manager)的连接字符串的值,使package将运行结果同步到测试环境中;在测试环境中package运行无误后,再将其部署到Production 环境中,如果使用包配置管理链接管理器的链接字符串,那么只需要修改包配置中Connection Manager的连接字符串的值,而不需要对Package做任何修改。

一,切换到包部署模式
SSIS Project默认的部署模式是Project Deployment Model,在解决方案的工程列表中选中工程,右击弹出快捷菜单,点击“Convert to Package Deployment Model”,将Project的部署模式转换为包部署模式。

切换到包部署模式之后,Project名称之后显示模式名称:(package deployment model)

二,设计Package

向Package中添加一个变量(VarCode)和一个Execute SQL Task组件,在Task组件中执行如下的TSQL语句脚本,“?”代表参数,映射到变量(VarCode),把变量的值插入到指定的表中

insert into dbo.dt_test
values(1,?,‘a‘)

1,配置Task组件执行的TSQL语句

2,配置Task组件的参数映射

三,启用包配置

1,打开包配置向导

点击SSIS 菜单,选择“package configurations”,或者在Package的“Control Flow”面板的空白处右击,弹出快捷菜单,选中“package configurations",都能打开包配置向导。

2,启用包配置

勾选“Enable package configurations”复选框,为当前Package启用包配置功能

3,添加包配置

在”Package Configurations Organizer“中,点击Add按钮,在配置类型(Configuration Type)列表中选择SQL Server ,这意味着,Package使用SQL Server数据库来存储包配置的信息,同时,Package从SQL Server数据库中读取配置项信息。

为了存储包配置信息,必须设置SQL Server数据库及配置表,选中“specify configuration settings directly”,指定SQL Server类型的配置设置:链接(Connection),配置表(Configuration table)和配置过滤器(Configuration Filter)。

4,配置表(Configuration Table)

在Package执行时,如果指定SQL Server数据库中没有配置表,那么Package会自动创建配置表,默认情况下,SSIS用于创建配置表的脚本是:

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

配置表各个字段的含义是:

  • ConfigurationFilter: 用于唯一标识配置集的过滤器,每一个配置集都是属性/值对(property/values pair)的集合,每个Package只能设置一个ConfigurationFilter,拥有相同的ConfigurationFilter的Packages,其配置集相同,共享相同的配置信息;
  • ConfigurationValue:配置属性的值,用于更新配置属性值;
  • PackagePath:配置属性的路径,包含配置属性及其路径信息,例如, "\Package.Variables[User::VarCode].Properties[Values]"
  • ConfiguredValueType:配置属性的数据类型;

设置配置表的链接和配置集过滤器(Configuration filter):

  • Connection:用于设置访问configuration table的链接;
  • Configuration Table:指定配置表的名字(table name);
  • Configuration filter:当多个Package共用一个Configuration Table时,需要为每个Package 设置 configuration filter,如果 filter 相同,表明package使用相同的配置数据;如果某些Package有特殊的配置信息,可以为其设置不同的filter。

四,设置配置项(configuration item)

将变量VarCode的值配置到包配置中,这意味着,把变量VarCode的值存储在[dbo].[SSIS Configurations]中,Package在执行时读取这个值,并把读取到的值作为变量VarCode的值,供Task组件使用。

五,查看配置信息

当配置类型为SQL Server时,包配置信息存储在SQL Server 数据库中,默认的配置表名是[dbo].[SSIS Configurations]

select *
from [dbo].[SSIS Configurations]

六,执行package,查看执行的结果

1,使用默认值执行Package,查看Task组件执行的结果

2,修改[dbo].[SSIS Configurations]中的ConfiguredValue,再次运行package,查看Task组件执行的结果

update [dbo].[SSIS Configurations]
set ConfiguredValue=2
where ConfigurationFilter=‘configuration_parameter_value‘

推荐文档:

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

SSIS Package Configurations

Understanding Integration Services Package Configurations

时间: 2024-11-05 11:22:12

SSIS 包配置的相关文章

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

动态连接数据库便于维护 用SSIS包配置实现 1.控制流页签 - 右键 - 包配置 2.配置xml文件 3.指定连接属性:ServerName.UserName.Password 测试: 1.配置错误 2.正确配置 1 <?xml version="1.0"?><DTSConfiguration><DTSConfigurationHeading><DTSConfigurationFileInfo GeneratedBy="Joe-PC

SSIS包配置 转

SQL ServerIntegration Services 提供可用于在运行时更新属性值的包配置.配置是添加到已完成包中的属性/值对.通常,在包开发期间您在包对象上创建包设置属性,然后将配置添加到包中.当包运行时,它从配置中获取新的属性值.例如,通过使用配置,您可以更改连接管理器的连接字符串,或者更新变量的值. 包配置具有下列优点: 使用配置可以更轻松地将包从开发环境转移到生产环境中.例如,配置可以更新源文件的路径,或者更改数据库或服务器的名称. 将包部署到多台不同的服务器时,配置非常有用.例

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

原文:实例学习SSIS(三)--使用包配置 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习SSIS(四)--使用日志记录和错误流重定向 实例学习SSIS(五)--理论介绍SSIS 包配置是干嘛滴! 使用包配置可以从开发环境的外部设置运行时属性和变量. 目标: 从开发环境外部指定Foreach要遍历的文件夹,然后把该文件夹下相应的txt文件内容写入库中. 步骤: 准备工作 把第一个例子中的userinfo

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

包配置允许您从开发环境的外部设置运行时属性和变量. 配置允许您开发灵活且易于部署和分发的包.Microsoft Integration Services 提供了以下配置类型: XML 配置文件 环境变量 注册表项 父包变量 SQL Server 表 Step 1: 复制第 4 课包 Step 2: 启用和配置包配置 创建映射到 Directory 属性的新的包级别变量 在 SSIS 设计器中,单击“控制流”选项卡的背景. 这会将要创建的变量的作用域设置为包. 在 SSIS 菜单中,选择“变量”.

变量在SSIS包中的使用

2010~2011年经常使用SSIS包采集加工数据,后来换了工作就很少使用.最近又开始用那玩意采集数据,努力回想之前是怎样操作的,网上各种找各种纠结.趁这次使用记录下日常操作步骤,以备以后不时之需. --环境SQL Server2012.VS2010(安装数据库时默认会安装)下载示例数据库AdventureWorks2012 1 CREATE DATABASE [AdventureWorks2012] ON 2 (FILENAME=N'D:\SQL2012\MSSQL11.SQL12\MSSQL

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

本文就SQL统计分析SSIS包的部署进行一次详细的部署图解教程,Sql Server Integration Services 提供了非常简单的部署工具,利用这些工具可以方便地将包文件(*.dtsx).包配置文件(*.dtsconfig)以及包的其它相关文件,打包成一个安装文件,以利于到其它计算机安装与部署. 下面我们以前面介绍的DEPJ1200 为例,来详细介绍包部署的完整过程. (-)生成安装部署文件.  在SQL Server Business Intelligence Developme

总结运行SSIS包的几种方式

很多程序员,不止.net程序员都有可能会用到SSIS包来处理一些数据流程上的任务.可以说SSIS作为BI下的一个ETL工具,方便易学,而且功能也确实很强大.于是开发OLTP的同事总会到我们这边寻求技术上的支持,更多的时候会问我,当一个SSIS包开发完成之后,都有哪几种方式可以让它运行起来.一直以来我都想把这个问题总结下来,今天在MSSQLTIPS网站上看老外写了一个现成的总结,于是加上自己的理解,简略的对其进行了翻译,并且加以补充. 如果大家对这篇文章的原文感兴趣,可以参考老外原文地址链接: h

SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器

原文:SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器 上期回顾: SSIS从理论到实战,再到应用(2)----SSIS包的控制流 首先我们来看看包里面的变量 SSIS包变量分为两种,一种是系统的内置变量,是一个SSIS包初使化都会自带的,一种是用户自己定义的变量. 在SSIS包中,常用的变量的类型包含以下:Int32,String,Boolean,DateTime,Object...... 二,让我们来看看包里面的约束(线) 如图中所示的线就是约束,官方的解释是这样

运行SSIS包的几种方式

很多程序员,不止.net程序员都有可能会用到SSIS包来处理一些数据流程上的任务.可以说SSIS作为BI下的一个ETL工具,方便易学,而且功能也确实很强大.于是开发OLTP的同事总会到我们这边寻求技术上的支持,更多的时候会问我,当一个SSIS包开发完成之后,都有哪几种方式可以让它运行起来.一直以来我都想把这个问题总结下来,今天在MSSQLTIPS网站上看老外写了一个现成的总结,于是加上自己的理解,简略的对其进行了翻译,并且加以补充. 如果大家对这篇文章的原文感兴趣,可以参考老外原文地址链接: h