我被要求接管不久前写的SSIS包的所有权。它当然可以进入并修改,编辑和升级这个软件包,但对于软件包的工作量来说,它似乎也非常麻烦。
我的任务大致如下:筛选包,找到特定表中某些特定列的使用情况,更改它们以匹配最新的数据库更改集,并写出一些额外的日志记录数据,以帮助团队诊断任何特定问题。
这对我来说似乎令人生畏,因为SSIS包中包含大约3兆字节的文本,SQL语句和极其简单(但很冗长)的代码路径。我已经花了一段时间双击每个SSIS对象并浏览其设置以查看我是否可以发现我被要求维护的列,并且SSIS不断抛出连接错误(正确的是,因为我的开发环境被阻止了从生产数据库中删除。)
我真的想考虑将这个SSIS包转换为.NET应用程序,但是我找不到任何可以帮助我这样做的工具。
是否有人建议维护此SSIS包或将其转换为适当的应用程序?
答案 0 :(得分:6)
为了好玩,我写了一个SSIS反编译器。在查看运行Integration Services的Visual Studio的UI并将其与.DTSX文件中的原始XML数据进行比较之后,我能够将一个将DTSX文件转换为C#/ .NET项目的程序组合在一起。
我将这一点与一小部分分析数据相结合,通过追踪有问题的组件,我能够在SSIS包中获得40%的速度提升。
对于我使用的SSIS包似乎工作得很好。也许这会帮助别人。
答案 1 :(得分:4)
回复那些喜欢.NET到SSIS的人
SSIS并不意味着传输少量数据。它可以做到,但是当数据传输量大到100到500 GB并且涉及相当复杂的业务逻辑时,SSIS比.NET更受欢迎。如果有多个数据文件包含多个数据源,那么SSIS就可以了。 .Net是首选的,如果你的导入或导出很少,只有很少的业务逻辑来增强或转换数据
不幸的是,没有工具可以将您的ssis包转换为.NET应用程序,但有一些免费工具可以帮助您提供有关包的更多信息而无需打开它。
BI Documentor是一个工具,它为您提供SSIS包的完整模式。您只需要将应用程序指向您的dtx pkg。如果您有许多sql代码和表达式,变量,您需要的连接管理器要修改,你可以借助这个工具来做到这一点。有时在BIDS中打开一个复杂的ssis包需要花费很多时间,所以在这种情况下这可能很有用。
还有一个名为SSIS Log Analyser的工具可帮助您调试包而无需打开BIDS
答案 2 :(得分:0)
我认为没有任何具体工具可供选择。最好只需要一些文本编辑器并浏览代码并识别您必须处理的已更改列。
就我个人而言,我不喜欢SSIS,因为它太多"可视化工具",并且可能会使用.NET应用程序,但是因为你已经完成了所有的工作,而且你可能不想把你的职业生涯用于重建你已经获得的数据转换工具,只需在SSIS中进行这些更改,使其工作,然后继续你快乐的编程生活......甚至更好,找一些SQL Server管理员为你做这件事,他们喜欢SSIS。