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

9

我目前的工作需要进行大量的ETL工作,而大家似乎都很喜欢使用SSIS。但是,我在BI Studio中尝试完成一些最简单的转换时遇到了困难,这些转换通常只需要几个foreach循环和少量的LINQ。我不确定这个工具适用于哪些情况或用户,可能会说服管理层让我不用它。有没有什么方法可以帮助我说服他们呢?如果有更好的工具推荐,那也将不胜感激。


1
你在使用SSIS时遇到了什么问题?实际上,它是一个非常出色的工具,可以用于批量ETL以及系统之间的转换(例如从远程FTP服务器加载平面文件到另一个远程数据库服务器,或将数据库查询导出为XML并通过Web服务发布)在非常复杂的情况下。 - GrayWizardx
2.5年前,我也曾经在BI工作室中苦苦挣扎,甚至无法完成最基本的转换。当时,这个工具似乎还不够成熟。 - Jim G.
3个回答

7
我对SSIS不熟悉,只了解了一些基础知识。与你相似,我也很熟悉LINQ,并且可以快速编写代码来处理和转换数据。
但是如果表格有4GB的数据呢?你认为你的LINQ代码能够优雅地处理它吗?这是可以被处理的,但不容易,尤其是在许多表格交叉引用的情况下。一个天真的LINQ实现会尝试将所有东西加载到内存中并崩溃。
另一个理由是因为你的同事熟练掌握SSIS。任何基于SSIS构建的公司解决方案都比LINQ更有价值,因为其他人可以使用它并修复或扩展它。

6
与所有事物一样,SSIS有其优点和缺点。
学习曲线陡峭,通常感觉应该很简单的事情实际上并不是。有时这是SSIS及其工具的问题,有时只是没有按照SSIS的方式思考。
它的一个好处是作为服务器产品,因此像错误处理和日志记录这样的事情已经(至少部分地)为您处理了。
如果您正在跨不同系统构建复杂的ETL包,则它是非常合适和强大的工具,并且可以成为增加技能集的好东西,特别是当您需要参与解决方案的初始设计过程时。如果您只知道C#代码,则只能建议使用它,而SSIS包可能是正确的解决方案。
目前,SSIS如何与其他数据库产品集成(例如Oracle支持)存在一些困难,但我相信微软致力于SSIS并将继续改进它。如果您在Microsoft商店工作,则现在投资学习它可能是值得的。

在缺点方面,这里有一篇Ayende的帖子,谈到了SSIS的一些主要痛点。

我并不完全同意他们所有的观点,或者认为它们不是致命问题,但了解可能会对你有所帮助。

  • 缺乏良好的日志扩展性让我感到困扰 - 以其他方式记录日志相当困难
  • 配置模式可能真的很麻烦

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


2

SSIS是一个很好的工具,但你必须先掌握其基本概念。它允许你专注于ETL过程,而不是编写和调试代码。这需要一定的学习曲线。

看一下Microsoft Project Real的示例,看看类似于foreach循环的等效方法是什么。

你也可以看看Pentaho-Kettle和Oracle Data Integrator,但我的猜测是你会有同样的感觉。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接