【问题标题】:SSIS 2012 - Best pattern for project-package-environment connection configurationSSIS 2012 - 项目包环境连接配置的最佳模式
【发布时间】:2015-01-08 20:05:25
【问题描述】:

在 SSIS 2012 项目(将部署到服务器)中配置连接的“最佳实践”方式是什么?文档和谷歌展示了多种方式来实现这一点,但哪种方式充分利用了 2012 年项目/部署模型并且易于定制、可维护等?

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

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

  1. IN BIDS:在每个包中手动硬编码连接(通过连接管理器)。 IN SSIS:配置 SSISDB 'NorthwindETL' 项目,在连接管理器选项卡下,修改 Northwind 连接字符串,每个包一次。
  2. IN BIDS:使用 Connection Manager 的“Parameterize...”选项,创建项目(或包)参数以指定连接字符串 (Northwind_Conn)。 IN SSIS:配置 SSISDB 'NorthwindETL' 项目,指定 Northwind_Conn 参数值。
  3. IN BIDS:创建项目级连接管理器 (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'

(另外,我更喜欢允许我们单独指定项目的解决方案,例如 InitialCatalog 和 Server,但这不是必需的。虽然连接管理器允许您修改 InitialCatalog 和 Server 属性,但这似乎并不实际修改 ConnectionString。)

【问题讨论】:

    标签: ssis bids ssis-2012


    【解决方案1】:

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

    除非您从同一个专用服务器运行您的 dev/test/prod ETL,否则我不喜欢这样命名我的 SSIS 环境变量。主要原因是我的部署脚本必须内置智能,不仅可以切换每层的服务器名称,还可以切换环境名称。只是让笨蛋有更多的机会进入。

    我也喜欢在 SSISDB 中创建一个空文件夹,将其命名为 Configs,然后在那里建立我的 SSIS 环境变量。然后所有项目都引用该文件夹的变量。在我的客户中,通常情况下他们都引用同一个销售数据库,因此我似乎需要维护 N 个配置以满足 N 个项目,而不是拥有一个共享的配置存储库。

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

    【讨论】:

    • 如果您不介意澄清第三段,您是在谈论文件系统文件夹(用于配置文件)还是 SSISDB 文件夹?如果是后者,你是使用实际的环境变量,还是使用项目变量?
    • SSISDB 我所有的答案。我提到的环境变量是基于 SSISDB 的,而不是 Windows 的。不幸的是,那里的团队选择了术语。对于连接管理器,我不再采用创建包参数然后在它们上使用表达式来使我的包跨环境移植的方法。相反,目录允许您直接配置这些属性。
    • 哇,这太酷了!我知道这是很久以前的事了,但这看起来正是我正在尝试做的事情——服务器级配置。我将尝试阅读更多有关此内容的信息,但如果您有时间向我指出正确方向的链接,我将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多