扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在商业智能解决方案中,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_testvalues(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=2where ConfigurationFilter='configuration_parameter_value'
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流