25

使用项目部署模型配置 2012 SSIS 项目的最佳逻辑方法是什么?

MyImport-Project考虑具有三个包的 SSIS 项目的场景

项目解决方案:

  • MyImport-项目
    • Import-Package-01
    • Import-Package-02
    • 导入包 03

项目变量:

  • Project-DBConnString :所有包用于连接到单个数据库。
  • Project-FolderPath :所有包都使用它来查找输入文件

环境:

该项目被部署在

  • 质量检查服务器
  • 登台服务器
  • 生产服务器

是否有配置项目参数的标准方法?

我看过很多关于包的配置文件的文章。有没有办法根据部署环境配置项目参数?

4

2 回答 2

67

SSIS 2012 项目部署模型为创建环境和配置环境特定值提供了更大的灵活性,这些值可以映射到项目参数。这是一个示例,说明了如何Integration Services Catalog针对多个环境执行部署到的包。理想情况下,生产环境应该在自己的服务器上。为简单起见,此示例使用同一服务器上的所有环境。

具有环境特定值的 SSIS 2012 集成服务目录:

Let's assume that you have deployed a package to Integration Services Catalog with two project parameters named Environment and FilePath. To run the package under different environments, you can create multiple environments under Integration Services Catalogs \ SSIDB \ Folder name \ Environments

This sample has three Environment folders named DEV, PRD and TST

Environment Folders

To create variables that should later be mapped to the project parameters, double-click the environment under the Environments folder. This samples shows how to configure values in all environments.

Since, the package has two project parameters named Environment and FilePath, we will create two environment variables of the same name. All the environments are configured with same variable names but with different values.

DEV Environment

TST Environment

PRD Environment

To map the environment variables to the project parameters, right-click on the project under the Integration Services Catalog and click Configure...

Project Configure

On the Configure dialog, click References page and add each environment which should be associated with the project.

Configure References

On the Configure dialog, click Parameters page. For each parameter listed under Parameters tab, you need to click the Ellipsis button to map the appropriate environment variable.

Configure Parameters

On the Set Parameter Value dialog, select Use environment variable radiobutton and choose the appropriate variable. Here the parameter being mapped is [Practice.SSDT].[Environment]. Hence, it is being mapped against the environment variable Environment.

Set Parameter Value

Once you have mapped the parameter against the appropriate environment variable, you can choose the correct environment during package execution. To execute the package, right-click on the package and click Execute...

Execute Package

On the Execute Package dialog, check Environment box and select the appropriate environment from which the package should use the values for execution.

Execute Package

The sample package SO_15206184.dtsx in this example simply inserts the values of project parameters Environment and FilePath into a table. Here are the results of the package execution against different environments, even the one including from within SSDT.

Package Execution Results

于 2013-03-04T21:36:04.823 回答
12

From my reading of your question, you have 3 separate servers to deploy to, each with it's own instance of the SSIS Catalog. You do not want a single server to execute for multiple environments. For that scenario, user756519's answer is of little use unfortunately - 10 out of 10 for effort though.

I would ignore the "Environments" setup in SSIS. This is for managing multiple environments on a single SQL Server instance.

Instead I would:

  1. set the Environment 1 Project Parameter values in the Visual Studio solution and deploy to Environment 1
  2. Deploy to Environment 2
  3. Use SSMS to connect to Environment 2, navigate Under Integration Services Catalogs to find your project, right-click it and choose Configure. Edit the parameters as required for Environment 2
  4. Deploy to Environment 3
  5. Use SSMS to connect to Environment 3, navigate Under Integration Services Catalogs to find your project, right-click it and choose Configure. Edit the parameters as required for Environment 3

You can now continue to develop and deploy your project to each environment. No further maintenance is required, unless you add/delete/rename a Project Parameter. When any package is executed on each Environment/server, it will follow the configuration set via SSMS

于 2014-03-27T03:39:23.263 回答