集成服务(Integration Services,简称IS)是SQL Server 2005中面向高性能数据集成的功能组成,它有一个配套的数据流机制和控制流机制,并且可以为数据分析服务提供必要的ETL支持。集成服务类似以往的DTS,采用包(Package)方式来执行一个个具有数据流支持的数据任务。除此之外,集成服务还有很完善的图形化管理工具和丰富的应用开发接口(API)。SQL Server 2005单独把集成这一部分独立成独立的服务,充分表明微软对其作为数据平台而不是单纯数据库产品的定位。
在放弃了以往DTS之后,微软用.Net重写了集成服务,并把它分成了面向流程处理的Integration Service run-time engine和面向数据转换的Integration Service data flow engine,同时由于重新开发的缘故,保证.Net开发人员可以不通过互操作访问集成服务,可以说为未来SQL Server集成功能的发展提前“脱胎换骨”。
Integration Services runtime and the run-time executables:具体完成包的执行过程。
Data Flow task:提供了内存的缓冲结构用于保存从源数据源到目的数据源的中间结果,根据包的配置对提取的源数据进行清洗和修改,并控制整个包设计的数据文件和数据库访问。 相对DTS的跨越式进步
回顾以往DTS的功能,其对于数据的加工功能非常有限,仅仅提供简单的转换支持,但是在集成服务中不仅可以完成数据转换,还可以进行数据清理(Cleaning)和聚合(Aggregating),此外还提供了大家一直期待的合并(Merging)和复制(Copying)。另外,相对于以往简单的ActiveX脚本,新的集成服务支持读者通过.Net代码来完成转换,这大大增强了数据转换的控制能力。更为重要的是可以把整个数据包作为对象来调用,这样对于解决应用中繁杂的数据提取、转换和存储工作有很大帮助,可以充分法发挥.Net Assembly与开发包两种执行载体的优势。 增强了的“包”处理
与DTS类似,SQL Server 2005中的集成服务的包也是由数据源连接、控制流、数据流、时间处理、包参数和配置组成的,新的集成服务中既可以用图形设计器或.Net语言开发包,包是Integration Service提取、执行和保存的单元。一个最基本的包是由一个控制流和数据流组成,而且可以通过一个包模版生成,所有的开发工作可以在Visual Studio 2005或者SQL Server Business Intelligent Development Studio中完成。
习惯在SQL Server平台上开发的程序员,可以利用面向对象的继承特性,结合微软提供的Enterprise Library或者是一些Application Block开发通用的企业集成服务包模版,通过继承和多态在未来的开发中快速建立应用。
同样是由于SQL Server 2005集成了CLR,而且SSIS已经用.Net重写了整个集成服务,因此通过集成服务的对象模型,开发人员可以从各个侧面对其进行扩展,主要包括:
(1)Task
(2) Connection Manager
(3) Log Provider
(4)Enumerator
(5)Data Flow Component
(6)Event Handling 更加丰富的事务控制能力
对于商业逻辑而言,事务性始终是必不可少的内容,与以往DTS上简单的事务不同,SQL Server 2005的集成服务可以在包(Package)、容器(Container)、任务(Task)三个层次配置操作过程的事务性,不过与COM+中DTC事务选项不同的是,集成服务中缺少了RequireNew类型的事务关联选项,仅仅提供Required、Supported和NotSupported三个交易关联选项。