5

我被要求接管不久前编写的 SSIS 包的所有权。似乎可以进入并修改、编辑和升级此软件包,但对于软件包所做的工作量来说,这似乎也非常麻烦。

我的任务大致是这样的:筛选包,查找特定表中某些特定列的任何用法,更改它们以匹配最新的数据库变更集,并写出一些额外的日志数据以帮助团队诊断任何特定问题。

这对我来说似乎令人生畏,因为 SSIS 包包含大约 3 兆字节的文本、SQL 语句和极其简单(但冗长)的代码路径。我已经花了一段时间双击每个 SSIS 对象并浏览其设置以查看我是否可以发现我被要求维护的列,并且 SSIS 不断抛出连接错误(正确的,因为我的开发环境被阻止从生产数据库中关闭)。

我真的很想考虑将此 SSIS 包转换为 .NET 应用程序,但是我无法找到任何可以帮助我这样做的工具。

是否有人对维护此 SSIS 包或将其转换为适当的应用程序有建议?

4

3 回答 3

7

只是为了好玩,我写了一个 SSIS 反编译器。在查看了运行集成服务的 Visual Studio 的 UI 并将其与 .DTSX 文件中的原始 XML 数据进行比较之后,我能够编写一个将 DTSX 文件转换为 C#/.NET 项目的程序。

我将它与一小部分分析数据结合起来,通过追踪有问题的组件,我的 SSIS 包的速度提高了 40%。

似乎对我使用的 SSIS 包工作得很好。也许这会帮助别人。

https://github.com/tspence/csharp-dessist

于 2012-11-02T21:59:04.410 回答
4

回复那些更喜欢 .NET 而不是 SSIS 的人

SSIS 并不意味着传输少量数据。它可以做到,但是当数据传输量很大,大约 100 到 500 GB 并且涉及相当复杂的业务逻辑时,SSIS 比 .NET 更可取。如果有多个数据文件和多个数据源,那么 SSIS 是不错的选择。如果您有少量的导入或导出,并且用于增强或转换数据的业务逻辑很少,则首选 .Net

不幸的是,没有工具可以将您的 ssis 包转换为 .NET 应用程序,但是有免费工具可以帮助您在不打开包的情况下提供有关包的更多信息。

BI Documentor 是一个工具,它为您提供 SSIS 包的完整架构。您只需将应用程序指向您的 dtx pkg。如果您有大量的 sql 代码和表达式、变量、连接管理器需要修改,您可以这样做在这个工具的帮助下。有时在 BIDS 中打开一个复杂的 ssis 包需要很多时间,所以这在这种情况下可能很有用。

还有一种称为SSIS 日志分析器的工具,它可以帮助您在不打开 BIDS 的情况下调试您的包

于 2012-08-11T05:33:51.037 回答
0

我不认为有任何特定的工具可以做到这一点。最好只使用一些文本编辑器并浏览代码并识别您必须处理的更改列。

就个人而言,我不喜欢 SSIS,因为它是太多的“可视化工具”,并且可能会与 .NET 应用程序一起使用,但是既然您已经完成了所有工作,并且您可能不想将自己的职业生涯奉献给重建给你的数据转换工具,只需在 SSIS 中进行这些更改,使其工作,然后继续你快乐的编程生活......或者更好的是,找一些 SQL Server 管理员为你做这件事,他们喜欢 SSIS .

于 2012-08-11T04:57:27.470 回答