8

在我目前的工作中,我开始参与相当多的 ETL 工作,而且每个人似乎都非常偏爱 SSIS。我正在努力尝试通过 BI 工作室进行最微不足道的转换,这通常等同于带有少量 LINQ 的几个 foreach 循环。我不确定这个工具对哪些用例或用户有用,并且可能会让管理层相信我可以不用。提出我的理由的最佳方法是什么,或者如果有任何关于更好工具的建议,我也将不胜感激。

4

3 回答 3

6

除了阅读一些基础知识外,我不了解 SSIS。和你一样,我对 LINQ 非常熟悉,并且可以快速编写代码来推送和转换数据。

But what if the table has 4 gigs of data? Do you think your LINQ code is going to handle that gracefully? It could be handled, but not easily, especially if there are a lot of tables cross-referencing each other. A naive LINQ implementation would try to load everything into memory and crash.

Another justification is because your coworkers are strong with SSIS. Any solution you give the company built on SSIS will be more valuable to the company than LINQ, since other people can pick it up and fix or extend it.

于 2010-01-05T02:13:26.930 回答
5

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

有一个陡峭的学习曲线,而且通常感觉应该很简单的事情却并非如此。有时这是 SSIS 及其工具的错误,有时只是没有以 SSIS 方式思考的情况。

它的一个好处是它是一种服务器产品,因此(至少部分地)为您处理了诸如错误处理和日志记录之类的事情。

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

目前,关于 SSIS 如何与 SQL 以外的其他 DB 产品集成有点痛苦(例如,它的 Oracle 支持很糟糕),但我相信微软致力于 SSIS 并将继续改进它。如果您在 Microsoft 商店工作,那么现在投资学习它可能是值得的。


不利的一面是,这里是Ayende 的一篇文章,讨论了 SSIS 的一些关键痛点。

我不同意所有这些,或者不认为他们是破坏交易的人,但很高兴知道以后可能会伤害到你。

  • 缺乏良好的日志可扩展性让我很恼火 - 以 SSIS 以外的方式登录非常困难
  • 配置模式可能是一个真正的痛苦

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

于 2010-01-05T02:06:30.157 回答
2

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

看看Microsoft Project Real示例,看看什么是 foreach 循环等价的东西。

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

于 2010-01-05T02:05:38.880 回答