gpt4 book ai didi

sql-server - SSIS - 连接管理器的最佳实践 - 由参数组成?

转载 作者:行者123 更新时间:2023-12-03 12:50:25 27 4
gpt4 key购买 nike

我在 Pentaho PDI 上工作了很多,所以一些明显的事情突然出现在我身上。

从现在开始,我将称连接管理器为“CM”。

很明显,项目 CM > 包 CM,用于可扩展性/可重用性。确实需要包级 CM 的情况确实很少见。

但我想知道另一个最佳实践。每个项目 CM 本身是否应该由变量组成? (或者我猜是参数)。

具体来说吧。有特定的数据库来源。让我们调用其中两个使用Finance2000 和ETL_Log_db。它们具有特定的连接字符串(密码、源等)。

现在,如果您有 50 个从 Finance2000 中提取并使用 ETL_Log_db 的程序包……好吧……如果数据库发生变化会怎样? (主机、名称、用户、密码?)

假设现在是 Finance3000。

好吧,我想您可以进入 Finance2000 并更改来源、规范甚至名称本身 --- 然后一切都应该正常,对吧?

或者您是否应该简单地构建一个名为“FinanceX”或其他名称的项目级数据库,并使其由参数组成,以便连接字符串类似于@Source + @credentials + @whatever?

或者这只是多余的?

我可以看到参数方法的一个好处是您可以在运行期间甚至在包本身内动态更改“日志记录数据库”,而不是仅在运行时传递参数。我认为。我不知道。我还没有大量的 SSIS 经验。

最佳答案

从 2012 版开始,SSIS 具有 SSIS 目录数据库。您可以在一个项目中创建所有 50 个包,并且所有这些包共享相同的项目连接管理器。
然后将此项目部署到 SSIS 目录中;项目自动公开带有 CM 前缀的连接管理器参数。 CM 参数是连接管理器定义的一部分。 enter image description here

在 SSIS 目录中,您可以创建所谓的环境。在环境中,您使用名称和数据类型定义变量,并存储其值。
然后 - 最有趣的部分 - 您可以将环境与上传的项目相关联。这允许您将项目参数与环境变量绑定(bind)。 enter image description here

在包执行时 - 您必须在指定连接字符串时指定要使用的环境。是的,您可以在目录中有多个环境,并在启动包时选择。
很酷,不是吗?
此外,密码是加密存储的,因此没有人可以复制它。这些环境变量的值可以由不了解 SSIS 包的支持工程师配置。
更多关于 SSIS 目录和环境的信息来自 MS Docs .

关于sql-server - SSIS - 连接管理器的最佳实践 - 由参数组成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55290416/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com