【问题标题】:For developers, is it worth it to learn/use SSIS?对于开发人员来说,学习/使用 SSIS 是否值得?
【发布时间】:2011-01-01 11:57:44
【问题描述】:

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

【问题讨论】:

  • 您在使用 SSIS 时遇到的问题是什么,它实际上是一个相当出色的工具,可用于进行批量 ETL 以及进行系统到系统的转换(例如从远程 FTP 服务器加载平面文件)到另一个远程数据库服务器,或将数据库查询导出到 xml 并通过 web 服务发布)在非常重要的场景中。
  • 2.5 年前,我还在努力使用 BI Studio 进行最微不足道的转换。当时,工具似乎很不成熟。

标签: .net linq ssis packages etl


【解决方案1】:

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

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

另一个理由是因为您的同事在 SSIS 方面表现出色。您为公司提供的任何基于 SSIS 构建的解决方案对公司来说都比 LINQ 更有价值,因为其他人可以获取并修复或扩展它。

【讨论】:

    【解决方案2】:

    与所有事物一样,SSIS 有利也有弊。

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

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

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

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


    另一方面,这里有一个post by Ayende 谈论 SSIS 的一些关键痛点。

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

    • 缺乏良好的日志记录可扩展性让我很恼火 - 以 SSIS 以外的方式登录非常困难
    • 配置架构真的很痛苦

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

    【讨论】:

      【解决方案3】:

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

      查看 Microsoft Project Real 示例,看看 foreach 循环与类似的内容等效。

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

      【讨论】:

        猜你喜欢
        • 2010-09-27
        • 2010-09-26
        • 1970-01-01
        • 2010-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-27
        • 1970-01-01
        相关资源
        最近更新 更多