gpt4 book ai didi

tsql - 为什么我要在 SQL Server 2008 中使用 SSIS 包而不是其他一些技术?

转载 作者:行者123 更新时间:2023-12-04 06:47:11 26 4
gpt4 key购买 nike

我在一个内部开发小组的 QA 部门工作。我们的生产数据库程序员一直在构建一个 SSIS 包,以从各种数据库位创建加载文件,以便导入第三方应用程序(我们正在测试与此的集成)。

构建后,很快发现它依赖于创建它的 SQL Server 和 Visual Studio 的版本,并且对生产环境的依赖也很少(这不是 SSIS 问题,只是描述性质我们的设置)。

构建这个需要几天的努力,然后无法在我们的 QA 环境下运行。

在向该团队询问他们的包正在运行的 SQL 查询(它在生产环境中运行良好)之后,我编写了一个 python 脚本,它在没有任何依赖的情况下执行相同的任务。我花了两个多小时(请注意,我已经有一个用于处理数据库交互的自定义​​库),并且我能够写出我需要的 UTF-16LE 文件。

现在,我们的生产数据库程序员不是 SSIS 专家,但他们在他们的工作流中使用它相当多——我很容易称他们都胜任他们的职位。

因此,我的问题是——考虑到它似乎花费的时间以及对 SQL Server 和 Visual Studio 版本的依赖,SSIS 包带来了哪些优势或好处,而我的 Python 代码可能看不到?还是 shell 脚本、Ruby 或代码风格的当下?

最佳答案

我无论如何都不是 SSIS 方面的专家,而是一个拥有三年多 SSIS 工作经验的普通开发人员。像任何其他软件一样,SSIS 也有缺点,但到目前为止我很喜欢使用 SSIS。技术的选择取决于个人的要求和偏好。我不会说 SSIS 优于其他技术。另外,我没有使用过 Python、Ruby 或您提到的其他技术。

这是我的两分钱。请带着一粒盐吃这个。

  • 从普通开发人员的角度来看,一旦您了解了如何处理它的细微差别,SSIS 就很容易使用。我相信任何其他技术也是如此。 SSIS 包是可视化的工作流而不是编码工具(当然,SSIS 也具有出色的编码能力)。人们可以通过查看工作流程而不是通过数百行代码轻松了解包中发生的事情。
  • SSIS 主要用于执行 ETL(提取、转换、加载)作业。它可以很好地处理该功能,尤其是使用 SQL Server,更不用说它也可以处理平面文件、DB2、Oracle 和其他数据源。
  • 您可以通过最少的编码或无需编码来执行大部分任务。它可以在几分钟内将数百万行从一个数据源加载到另一个数据源。 See this example演示将一百万行从制表符分隔文件加载到 SQL Server 中的包 3分钟 .
  • Logging捕获包及其任务执行的每个操作的功能。它有助于查明错误或跟踪有关包执行的操作的信息。这不需要编码。 See this example用于记录。
  • Check Points帮助像记录器一样捕获包执行,并帮助从故障点重新启动包执行,而不是从头开始运行包。
  • Expressions可用于根据给定条件确定包装流。
  • Package configurations可以使用基于数据库或 XML 的不同环境进行设置 dtsconfig文件或基于机器的环境变量。 See this example用于基于环境变量的配置。点 #4 - #7 是开箱即用的功能,需要少量配置并且根本不需要编码。
  • SSIS 可以利用 .NET 框架功能,如果开发人员找不到满足他们要求的组件,他们也可以创建他们自己的自定义组件。 See this example了解如何最好地将 .NET 编码与不同的数据源一起使用。此示例创建时间少于 3 hours .
  • SSIS 可以使用相同的数据源进行多次转换,而无需重新读取数据。 See this example了解多播的含义。这是an example XML 数据源的处理方式。
  • SSIS 还可以与 集成SSRS (报告服务)和 SSAS (分析服务)轻松。

  • 我刚刚列出了我在 SSIS 中使用的非常基本的东西,但有很多不错的功能。正如我之前提到的,我不确定 Python、Ruby 或其他语言是否可以如此轻松地处理这些任务。

    这一切都归结为一个人对技术的舒适度。当技术是新的时,人们非常怀疑并且不愿意适应它。

    根据我的经验,一旦您理解并接受 SSIS,它确实是一种很好的技术。它与 SQL Server 配合得非常好。我不否认我在开发包的过程中遇到了障碍,但主要是找到了克服它们的方法。

    这可能不是您期望的答案,但我希望这能提供一个想法。

    关于tsql - 为什么我要在 SQL Server 2008 中使用 SSIS 包而不是其他一些技术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6283689/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com