我正在使用 SQL Server 2012,我们创建了一个使用数据质量服务 (DQS) 清理转换的 SSIS 包。一切都很好,除非我们尝试将 SSIS 包从 DEV 环境移动到 QA 或 PROD。
SSIS DQS 转换在 XML 中硬编码知识库的 ID,而不是 KB 的名称。问题在于,当您安装/导入 DQS KB 时,它会为 KB 创建不同的 ID。因此,一个环境中的 KB 的 ID 将不同于另一个环境中的相同 KB 的 ID,例如,在 DEV 环境中,ID 是 100005,而在 PROD 环境中,相同 KB 的 ID 是 100007。
因此,当在 PROD 环境中执行转换时,任务会引发错误,因为转换正在查找 ID 为 100005 的 KB,而在 PROD 中,ID 为 100007(引发的错误是:知识库不存在) .
微软建议的唯一解决方法是只有一个 KB 并让所有环境都指向它(网络团队不允许这样做),或者不使用目录/部署工具并将 SSIS 项目移动到另一个环境然后打开包在 SSIS 中并在 SSIS DQS 转换中重新选择 KB,但这不是可接受的解决方法,因为开发团队无权访问 PROD 中的服务器。
有没有人想出一个不同的解决方法?顺便说一句,这就是微软所说的:https: //support.microsoft.com/en-us/kb/2882914(基本上是我上面写的)。我还尝试更改 XML 中的硬编码 ID,但由于某种原因不起作用。
如果没有解决方法,那么这个任务就没有用,这是不幸的,因为它运行良好。