【发布时间】:2011-09-11 03:20:22
【问题描述】:
我在一个内部开发小组的 QA 部门工作。我们的生产数据库程序员一直在构建一个 SSIS 包,以从各种数据库位创建加载文件,以导入第三方应用程序(我们正在测试与此的集成)。
构建后,很快发现它依赖于创建它的 SQL Server 和 Visual Studio 的版本,并且对生产环境的依赖也很少(这不是 SSIS 问题,只是描述我们设置的性质)。
构建这个需要几天的扎实努力,然后无法在我们的 QA 环境下运行。
在向该团队询问他们的包正在运行的 SQL 查询之后(它在生产环境中运行良好),我编写了一个 python 脚本来执行相同的任务而没有任何依赖关系。我花了两个多小时(请注意,我已经有一个自定义库来处理我们的数据库交互),并且我能够写出我需要的 UTF-16LE 文件。
现在,我们的生产数据库程序员不是 SSIS 专家,但他们在工作流程中相当多地使用它——我很乐意称他们所有人都胜任他们的职位。
因此,我的问题是——考虑到它所花费的时间以及对 SQL Server 和 Visual Studio 版本的依赖关系,SSIS 包带来了哪些我可能在我的 python 代码中看不到的优势或好处?或者是一个 shell 脚本,或者 Ruby 或者 code-flavor-of-the-moment?
【问题讨论】:
-
一个开发人员可能想使用 Python,另一个 Ruby,第三个 Perl - 这比让所有开发人员都使用 SSIS 更好吗?转换大量数据)和 b)SQL Server 的一部分,并且不需要额外的依赖项(如 Python 解释器/运行时等)?
-
这是我的问题 - 是什么让 SSIS 比你最喜欢的语言更有吸引力?
-
大部分情况下:(1) 它已经是 SQL Server 的一部分 - 无需额外安装(无需 Python 解释器或运行时),并且 (2) 它针对 ETL 流程进行了调整和工具化 - 具有您需要的任务和组件'必须潜在地为有关加载和转换数据的所有事情编写大量 Python 代码