对于开发人员来说,学习/使用SSIS是否值得?

时间:2010-01-05 01:50:03

标签: .net linq ssis packages etl

我现在开始参与相当多的ETL工作,而且每个人似乎都非常偏爱SSIS。我正在努力尝试通过BI工作室进行最琐碎的转换,这通常等同于一些带有一小撮LINQ的foreach循环。我不确定这个工具对用户有用的用例或用户,并且可能会说服管理层我可以不用。什么是提出我的案例的最佳方式,或者如果有任何更好的工具建议,也会受到赞赏。

3 个答案:

答案 0 :(得分:4)

与所有事情一样,SSIS有其优点和缺点。

有一个陡峭的学习曲线,而且往往觉得它们应该简单的东西不是。有时这就是SSIS及其工具的错误,有时它只是不以SSIS方式思考的情况。

关于它的一个好处是它是一个服务器产品,因此错误处理和日志记录等(至少部分)已经为您处理。

如果您要在不同的系统中构建复杂的ETL包,那么它是一个非常合适且功能强大的工具,并且可以很好地添加到您的技能组中,特别是当您需要参与初始设计过程时一个办法。如果您只知道C#代码,那么当SSIS包可能只是正确的解决方案时,您可以建议这一点。

目前SSIS如何与SQL集成其他数据库产品(例如其Oracle支持非常糟糕)有一些痛苦,但我相信微软致力于SSIS并将继续改进它。如果你在微软的商店工作,那么现在投资学习它可能是值得的。


在缺点方面,这是post by Ayende谈论SSIS的一些关键痛点。

我不同意所有这些,或者不认为它们是交易破坏者,但很高兴知道以后会有什么伤害你。

  • 缺乏良好的日志记录扩展性让我感到恼火 - 以SSIS的其他方式登录很难
  • 配置架构可能是一个真正的痛苦

我确实认为SSIS的下一个版本将解决所有这些......虽然这只是微软世界的一部分,但事情会逐渐好转,但它们往往会变得更好。

答案 1 :(得分:4)

我不了解SSIS,除了阅读一些基础知识。也像你一样我对LINQ很满意,并且可以快速编写代码来推动和转换数据。

但是,如果该表有4个数据?你认为你的LINQ代码会优雅地处理它吗?它可以被处理,但不容易,特别是如果有很多表相互交叉引用。一个天真的LINQ实现会尝试将所有内容加载到内存中并崩溃。

另一个理由是因为你的同事对SSIS很强。你给公司建立在SSIS上的任何解决方案对公司而言都比LINQ更有价值,因为其他人可以拿起并修复或扩展它。

答案 2 :(得分:2)

SSIS是一个很棒的工具,但您必须首先掌握基本概念。它允许您专注于ETL过程,而不是编写和调试代码。有一个学习曲线。

看一下 Microsoft Project Real 示例,看看这样的foreach循环等价物是什么。

您可能还想看看Pentaho-Kettle和Oracle Data Integrator,但我的猜测是你会有同感。