为什么我会在SQL Server 2008中使用SSIS包而不是其他技术?

dre*_*old 8 t-sql meta ssis

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

一旦构建,很快就发现它依赖于它创建的SQL Server和Visual Studio的版本,并且对生产环境的依赖性很小(这不是SSIS问题,只是描述了自然界我们的设置).

实现这一目标需要花费数天的时间,然后才能在我们的QA环境下运行.

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

现在,我们的生产数据库程序员不是SSIS专家,但他们在工作流程中使用它很多 - 我很乐意称他们所有人都胜任他们的职位.

因此,我的问题 - 考虑到它似乎采取的时间以及对SQL Server和Visual Studio版本的依赖性,SSIS包带来了哪些优势或好处,我可能看不到我的python代码?或者是一个shell脚本,或Ruby或代码味道的时刻?

小智 11

我不是SSIS的专家,而是一名平均开发人员,他有三年多的SSIS工作经验.像任何其他软件一样,SSIS也有缺点,但到目前为止,我很高兴与SSIS合作.技术的选择取决于一个人的要求和偏好.我不是说SSIS优于其他技术.此外,我还没有使用Python,Ruby或您提到的其他技术.

这是我的两分钱.请带上一粒盐.

  1. 从平均开发人员的角度来看,一旦理解了如何处理它的细微差别,SSIS就很容易使用.我相信任何其他技术都是如此.SSIS包是可视化工作流而不是编码工具(当然,SSIS也具有出色的编码能力).通过查看工作流程而不是通过数百行代码,人们可以很容易地理解包中的内容.

  2. SSIS主要用于执行ETL(提取,转换,加载)作业.它很好地处理了这个功能,尤其是SQL Server,更不用说它可以处理平面文件,DB2,Oracle和其他数据源.

  3. 您可以使用最少的编码或不编码来执行大多数任务.它可以在几分钟内从一个数据源加载数百万行.请参阅此示例,演示一个包,该包在3分钟内从制表符分隔文件加载一百万行到SQL Server .

  4. Logging捕获包及其任务执行的每个操作的功能.它有助于查明错误或跟踪有关包执行的操作的信息.这不需要编码.请参阅此示例以进行记录.

  5. Check Points 帮助像记录器一样捕获包执行,并帮助从故障点重新启动包执行,而不是从头开始运行包.

  6. Expressions 可用于根据给定条件确定包装流量.

  7. Package configurations可以使用基于数据库或XML的dtsconfig文件或基于机器的环境变量为不同的环境设置.有关基于环境变量的配置,请参阅此示例.点#4 - #7是开箱即用的功能,需要较小的配置,根本不需要编码.

  8. SSIS可以利用.NET框架功能,如果开发人员找不到满足其要求的组件,他们也可以创建自己的自定义组件.请参阅此示例以了解如何最好地使用.NET编码以及不同的数据源.这个例子是在不到的时候创建的3 hours.

  9. SSIS可以使用相同的数据源进行多次转换,而无需重新读取数据.请参阅此示例以了解多播的含义.以下是如何处理XML数据源的示例.

  10. SSIS还可以轻松地与SSRS(Reporting Services)和SSAS(Analysis Services)集成.

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

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

根据我的经验,一旦你理解并拥抱SSIS,它真的是一个很好的技术.它适用于SQL Server.我并不否认我在开发包装时遇到障碍这一事实,但大多数人都找到了克服它们的方法.

这可能不是你期待的答案,但我希望这能给出一个想法.

  • 很好的答案.我补充说,当一个简单的SQL查询和工作做得很好时,许多开发人员可以使用SSIS. (2认同)

归档时间:

查看次数:

4961 次

最近记录:

14 年,7 月 前