一:特征
2.1:基于OLE DB,很方便从不同的数据源复制和转换数据。
是了,MS总是首要支持自已的其它产品,所以,它选择了最通用的Windows的标准。
2.2:有图形化设计器,也可通过编程二次开发。
这也是MS的长项,并且能把其它的东西一股脑儿的集成进来。
2.3:执行效率高于普通ADO(SQL)操作
据说是这样地,我做过简单的比较,确实不是一个数量级,原理呢?估计可能有较多特殊处理,比如批量插入bcp,传输前的数据压缩等技术……,当然,这只是我的猜测。
2.4:可调度。
这对于Windows系统,那很容易了,可以利用现成的系统级调度。
二:功能介绍
来说点详细的东东,当然,这里的详细并不指全部,实际上,我也只能挑出比较有代表性的功能点列举一下,要是全部,那还不如抄袭联机帮助了。
3.1:包——最小的可调度单元
包是基本任务,由工作流连接而成。包可以嵌套(包中的单个任务可以是执行另一个已存在的包)。
包是调度的直接管理对象,嵌套包保证包任务的重用。
3.2:任务——最小的工作流连接单元
分为以下几种任务:
导出和导入数据任务、转换任务、复制数据库对象、邮件/消息发送、Transact-SQL 语句或 Microsoft ActiveX® 脚本执行包、采用COM自定义任务。
其中,最常用的应该是普通转换任务。这等同于ETL中的T。
3.3: 数据连接——定义数据源和目的地
分为以下几种:
标准数据库(如 Microsoft SQL Server 2000、Microsoft Access 2000、Oracle、dBase、Paradox);与 ODBC 数据源的 OLE DB 连接;Microsoft Excel 2000 电子表格数据;HTML 源;以及其它 OLE DB 提供程序文件连接数据链接连接(比较特殊)
注意:SQL-Server作为Windows应用产品,DTS自然也不支持Java。
对于标准数据库是最基本的应用,易于实现。文件连接涉及格式定义,还不算复杂。
3.4:转换——数据转换
数据转换,指列进行,有多种方式:
3.4.1:简单复制方式。
3.4.2:简单转换(如,数据格式化,取字符串子串等……)
3.4.3:ActiveX脚本(实际上是vbScript和JavaScript)
3.4.4:调用自定的COM对象进行转换。
通常会采用一二方式。如果要将DTS集成到你的应用中,可以第三种方式。
3.5:工作流
工作流包括成功,失败,完成。工作流支持脚本控制。可编程控制。
工作流方式对于纯数据抽取意义不大,但是考虑到任务包含收发邮件,信息,上/下传文件,那就有必要了。当然,你也可以将这些任务单独提出到应用端执行,而不采用DTS中的任务。
3.6:元数据
元数据方式更多的留备扩展,最基础的应用是用来预定义数据表。
3.7:数据驱动的查询任务——(一种特珠的转换方式)
一种很特殊的转换方式,支持参数。这里,单独把它提出来,因为它不是那么容易理解,我花了一些时间,才将其弄明白。
3.7.1:根据源数据的特征决定之后的查询方式(指增,删,改,查询操作)。
3.7.2:支持参数,参数通过定义绑定表来关联,通过定义转换脚本,可以计算出绑定列参数。
3.7.3:转换时可以定义批量处理。
3.7.4:转换支持多阶段抽取,可以定义阶段代码,阶段分为:行转换,转换失败,插入成功,插入失败,批处理完成,抽取完成。
此种应用异常复杂,应属高级应用。简单的看,当转换任务需要根据数据源来确定动作,这是非常有用的。比如你的应用存在多表存储,就可能根据表内的时间来确定之后的动作,达到数据分多表存储的目的。
3.8: 查找查询
作为转换数据任务和数据驱动的查询任务的一种功能。
查找查询使您得以对源和目的之外的其它连接运行查询和存储过程。例如,通过使用查找查询,可以在查询过程中进行单独的连接,并在目的表中包括来自连接的数据。
作为一种扩充功能,实现更复杂的查询操作。
3.9: 多任务支持事务处理
除了顺序执行,可以进行并行执行步骤,且支持检查点回滚。
当然,任务的事务仍然依赖于数据源所在所据库是否支持事务。一般情况下,顺序执行已经可以满足抽取需求。