我不知道 SSIS,除了阅读一些基础知识。也像您一样,我对 LINQ 非常熟悉,并且可以快速编写代码来推送和转换数据。
但是如果表有 4 演出数据怎么办?你认为你的 LINQ 代码会优雅地处理吗?它可以处理,但并不容易,特别是如果有很多相互引用的表。一个天真的 LINQ 实现会尝试将所有内容加载到内存中并崩溃。
另一个理由是因为您的同事对 SSIS 非常了解。您为公司提供的任何基于 SSIS 的解决方案对公司来说都比 LINQ 更有价值,因为其他人可以选择并修复或扩展它。
与所有事物一样,SSIS 也有其优点和缺点。
有一个陡峭的学习曲线,而通常感觉应该很简单的事情却并非如此。有时这是 SSIS 及其工具的错误,有时只是没有以 SSIS 方式思考的情况。
关于它的一个好处是它是一个服务器产品,因此诸如错误处理和日志记录之类的事情已经(至少部分地)为您处理。
如果您正在跨不同系统构建复杂的 ETL 包,那么它是一个非常合适且功能强大的工具,并且可以很好地增加您的技能,尤其是当您需要参与解决方案的初始设计过程时。如果您只知道 C# 代码,那么当 SSIS 包可能是正确的解决方案时,您只能提出建议。
目前,SSIS 如何与 SQL 以外的其他数据库产品集成有一些痛苦(例如,它的 Oracle 支持很糟糕),但我相信 Microsoft 致力于 SSIS 并将不断改进它。如果您在 Microsoft 商店工作,那么现在投资学习它可能是值得的。
在不利方面,这是Ayende 的一篇文章,讨论了 SSIS 的一些关键痛点。
我不同意所有这些,或者不认为它们破坏了交易,但很高兴知道以后可能会伤害你的事情。
我确实认为 SSIS 的下一个版本将解决所有这些问题……但这只是 Microsoft 世界的一部分,事情会逐渐变得更好,但它们确实会变得更好。