DTS与SSIS的主要区别

日期: 2009-11-03 作者:Denny Cherry翻译:曾少宁 来源:TechTarget中国 英文

从Data Transformation Services (DTS)迁移到SQL Server Integration Services (SSIS)是一个重大的升级。这两个引擎是非常不同的,而且开发人员会遇到许多很有难度的任务,其中包括ActiveX组件,它是需要完全重写的。   在SQL Server 7.0和SQL Server 2000中,DTS是数据平台的一部分,并且它是用Enterprise Manager工具进行编辑的。而与之相对的,SSIS是在SQL Server 2005引入的,并且它是一个单独的Windows服务。

SSIS包是用Business Intelligence ……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

从Data Transformation Services (DTS)迁移到SQL Server Integration Services (SSIS)是一个重大的升级。这两个引擎是非常不同的,而且开发人员会遇到许多很有难度的任务,其中包括ActiveX组件,它是需要完全重写的。

  在SQL Server 7.0和SQL Server 2000中,DTS是数据平台的一部分,并且它是用Enterprise Manager工具进行编辑的。而与之相对的,SSIS是在SQL Server 2005引入的,并且它是一个单独的Windows服务。SSIS包是用Business Intelligence Development Studio (BIDS)工具进行编辑的。此外,DTS只适用于32位环境,而Integration Services则同时适用于64位数据处理。

  而且,SSIS可以直接在SSIS包中将VB.NET或C#代码作为脚本对象运行,这不仅仅是VBA脚本,而且可以是完全预编译的可以引用本地或第三方.NET库、COMM对象等的.NET应用。

  处理约束

  当一个Data Transformation Services包创建时,每一个对象都按照自己的权限运行,而我们需要确定这些对象之间的优先权约束。

  SQL Server Integration Services中也有相同的概念,但现在对象也可以分组到一个序列容器中。这样可以允许我们运行一个对象,然后停止序列容器并在容器中运行这个(些)对象。

  容器中的对象之间可以有一些约束,如图1所示。

  图1:一个序列容器中约束示例

  下面是上图表示的5个约束:

  1. 不带蓝色小方框的绿色箭头表示必须成功完成的先前对象。

  2. 蓝线表示先前对象必须完成。

  3. 蓝色小方框表示一个表达式必须成功匹配。

  4. 在一个表达式中的实心箭头表示一个逻辑与(AND)操作。

  5. 虚线箭头表示一个逻辑或(OR)操作。

  (没有显示的红线表示先前的一个对象已经运行失败了。)

  在本例中的Clear Working Folder文件系统任务和Process Updates execute SQL任务之间的箭头,它表示Clear Working Folder对象必须成功运行,并且对象中的表达式也必须成功估值。

  在本例中的Process Updates SQL任务和Process New Domains数据流任务之间的约束,它表示Process Updates对象必须成功,或者约束中的表达式必须为真。

  任务对象

  SQL Server 2000的DTS包总共17个任务对象。在这17个任务中,其中5个是用于将数据库对象从一个服务器传输到另一个服务器上的。其余的12个任务是用来处理数据或运行其它代码或命令的。

  相对而言,SSIS包含了29个任务,这甚至还不包括用于将数据从一个位置移动到另一个位置的数据流对象,除此之外还有11个数据库维护任务。在这29个任务中,其中6个是用于传输数据库对象的,其余22个是用于运行命令或脚本的。

  数据流转换

  Data Transformation Services基本上只有一个数据转换方法:字段映射到其它字段名称。

  SSIS有29个不同的数据转换方法,包括分割值、处理查找、合并转换、根据数据样本统计百分比、记录行抽样、快速运行.NET脚本处理记录以及排序数据。这提供了大量的服务器间数据移动的方法。

  (注意:由于方法很多,我们要小心选择正确的转换方法。)

  SSIS优点

  许多新接触SSIS的开发人员都会遇到这样一个不同于DTS的问题,SSIS并不会自动地将ASCII转换到Unicode。相反,需要用一个数据转换任务来完成ASCII 到Unicode的转换。

  SSIS开发人员会在DTS丢失的东西是动态属性任务,它几乎允许动态地根据参数值、数据库查询或配置文件来设置任何对象属性。而在某个层面上看,这个概念仍然可以在SQL Server Integration Services中用脚本任务实现(例如,.NET脚本任务能够修改一个连接对象的属性,或者修改SSIS参数的值),但是我们在SSIS没有相同的自由度,因为SSIS任务都是运行之前就编辑好了的。因此,可以动态修改的对象数目远远少于Data Transformation Services所支持的。

  虽然SSIS进行了许多改进,但是它仍然失去了一些原有的DTS特性,并且这些特性往往影响到某些开发人员。然而,一旦迁移过程完成后,我们将发现SSIS是一个很强大且灵活的处理所有所需要的转换的工具。

翻译

曾少宁
曾少宁

TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。

相关推荐