SSIS 2012 - 项目包环境连接配置的最佳模式

时间:2015-01-08 20:05:25

标签: ssis bids ssis-2012

什么是最佳做法'在SSIS 2012项目中配置连接的方式(将部署到服务器)?文档和Google显示了实现此目的的多种方法,但哪种方式可以充分利用2012项目/部署模型,并且可以轻松定制,维护等?

考虑一个带有三个包的项目(NorthwindETL),每个包引用localhost.Northwind。在SSIS服务器上,有一个项目' NorthwindETL'和一个环境' Dev'。

要配置连接,我有以下选项

  1. IN BIDS :在每个包中手动硬编码连接(通过连接管理器)。 IN SSIS :配置SSISDB' NorthwindETL'在连接管理器选项卡下,修改Northwind连接字符串,每个包一次。
  2. IN BIDS :使用连接管理器'参数化...'选项,创建项目(或包)参数以指定连接字符串(Northwind_Conn)。 IN SSIS :配置SSISDB' NorthwindETL' project,指定Northwind_Conn参数值。
  3. IN BIDS :创建项目级别的Connection Manager(Project_Northwind_Conn)。 IN SSIS :配置配置SSISDB' NorthwindETL'项目,在连接管理器选项卡下,修改' Project_Northwind_Conn'连接字符串。
  4. IN SSIS :在SSISDB上创建名为' DEV'的环境。在' Dev'环境属性,在变量下,创建一个变量&Env_Northwind_Conn'。配置NorthwindETL项目,设置' Northwind_Conn'环境变量&Env_Nothwind_Conn'
  5. (另外,我更喜欢一种允许我们单独指定项目的解决方案,例如InitialCatalog和Server,但这不是必需的。虽然连接管理器允许您修改InitialCatalog和Server属性,但实际上似乎没有修改ConnectionString。)

1 个答案:

答案 0 :(得分:3)

对于要在所有软件包(通常是数据库连接)中使用的连接管理器,2012版本为我们提供了项目连接管理器(选项3)。我发现连接管理器最令人愉快的是,当我去应用配置时,我在项目级别应用一次而不是每个包一次。

除非您从同一个专用服务器运行dev / test / prod ETL,否则我不喜欢命名我的SSIS环境变量。主要原因是我的部署脚本必须内置智能,不仅要切换每层的服务器名称,还要切换环境名称。为愚蠢的人提供更多机会。

我也喜欢在SSISDB中创建一个空文件夹,称之为Configs,然后在那里建立我的SSIS环境变量。然后所有项目都引用该文件夹的变量。在我的客户端,通常情况下他们都引用了相同的Sales数据库,因此对于我来说,维护N个配置以满足N个项目而不是拥有单个共享配置存储库似乎更为重要。

编写所有内容。在创建时单击滚动图标并分配配置。当你需要从一个环境迁移到另一个环境时,这将使得它更容易锄头。