DTS构建组件及其如何完成数据转换服务
作者:doorsir 发布时间:2009-01-20 15:37:00
在使用SQL Server 的过程,中由于经常需要从多个不同地点将数据集中起来或向多个地点复制数据,所以数据的导出,导入是极为常见的操作.我们可以使用BCP 命令来完成这一任务,但是记住 BCP 的命令格式是一件令人头痛的苦差事,虽然你可以查看帮助文件,所以我们需要功能强大操作简单的工具来完成这一任务,数据转换服务DTS 提供了这种支持。因此本章将介绍DTS 的基本情况、讨论DTS 的各个构建组件以及如何完成数据转换服务。
数据转换服务简介
为了支持企业决策,许多组织都需将数据集中起来进行分析。但是通常数据总是以不同的格式存储在不同的地方。有的可能是文本文件,有的虽然具有表结构但不属于同一种数据源,这些情况极大地妨碍数据的集中处理。SQL Server 为我们提供了令人欣慰的组件,即Data Transformation Services( DTS)。 DTS 本身包含多个工具并提供了接口来实现在任何支持OLE DB 的数据源间导入、导出或传递数据,并使这一工作变得简单高效。这意味着不仅可以在SQL Server 数据源间进行数据的转储,而且可以把Sybase, Oracle, Informix 下的数据传递到SQL Server。
利用Data Transformation Services (DTS) 可能在任何OLE DB、 ODBC 驱动程序的数据源或文本文和SQL Server 之间导入、导出或传递数据。具体表现在:
数据的导入、导出服务
通过读写数据在不同应用程序间交换数据。例如,可将文本文件或Microsoft Access 数据库导入到SQL Server, 也可以把数据从SQL Server 导出到任何OLE DB 数据源。
转换数据
所谓传递是指在数据未到达目标数据源前而对数据采取的系列操作。比如DTS 允许从源数据源的一列或多列计算出新的列值,然后将其存储在目标数据库中。
传递数据库对象
在异构数据源情况下DTS, 的内置工具只能在数据源间传递表定义和数据。如果要传递其它数据库对象,如索引、约束、视图时,必须定义一个任务,从而在目标数据库上执行那些包含在任务中的SQL 语句,SQL 语句是被用来创建这些数据库对象的。
DTS 将数据导入、导出或传递定义成可存储的对象,即包裹或称为包。每一个包都是包括一个或具有一定顺序的多个任务的工作流。每个任务可以将数据从某一数据源拷贝至目标数据源或使用Active 脚本转换数据或执行SQL 语句或运行外部程序。也可以在SQL Server 数据源间传递数据库对象。
包对象用来创建并存储步骤,这些步骤定义了一系列任务执行的顺序以及执行任务的必要细节。包对象中还包括源列、目标列以及有关在数据传递过程中如何操纵数据的信息。
包可以存储在DTS COM 结构的存储文件中、msdb 数据库中、或Microsoft Repository 中。
可以通过以下工具来运行包,它们是:dtsrun 工具,DTS Designer, DTS 的导入、导出向导,SQL Server Agent 来运行规划作业,使用Execute 方法调用DTS 包对象的COM应用程序。
包是顶层对象,它包含三种底层对象:连接、任务、步骤。
连接
连接定义了有关源和目标数据(数据源或文件)的信息这些信息包括数据格式和位置,以及安全认证的密码。DTS 包可不包含或包含多个连接。使用连接的任务有:
DTS Data Pump 任务 执行SQL 任务 数据驱动查询任务 定制任务;
有三种类型的连接对象 数据源连接。
数据源连接定义了有关源和目标OLE DB 数据源的信息。这些信息包括服务器名称、数据格式和位置,以及安全认证的密码。第一个使用连接的任务负责创建该连接。如果使用ODBC 的OLE DB 提供者,则连接也可以定义ODBC 数据源信息。
文件连接定义了有关源和目标文件的信息。这些信息包括文件格式和位置。 Microsoft 数据连接对象
Microsoft 数据连接对象或者加载数据连接文件(*.udl) 或者为OLE DB 提供者设置数据连接文件的属性。
任务
每个DTS 包都含有一个或多个任务,每个任务都是数据转换(传递)处理的工作项目。任务的种类包括: 执行SQL 任务:即执行SQL 语句; Data Pump 任务该任务:为Data Pump 操作定义了源和目标数据源以及数据转换。Data Pump 从源和目标OLE DB 数据源间拷贝并转换数据; ActiveX 脚本执行:ActiveX, VB, Jscript 或Perscript 脚本。凡是脚本支持的操作都可以执行; 执行处理任务(Execute Process task): 指执行外部程序; 批量插入指执行:SQL Server 批拷贝操作; 发送邮件:使用SQL Mail 发送寻呼或邮件; 数据驱动查询:执行OLE DB 数据源间的高级数据传递; 转换SQL Server 对象:即从SQL Server OLE DB 数据源向另外的同类数据源复制对象,例如表、索引、视图。
步骤
步骤对象定义了任务执行的顺序,以及某一任务的执行是否依赖于前一个任务的结果。如果某一任务不与步骤对象相关联,则其将无法被执行。可以为某一步骤设定运行条件,使其只在一定条件才被执行,为了提高执行的性能,也可以并行执行多个步骤。
步骤的一个重要特性是步骤优先权约束。步骤优先权约束定义了前一步必须满足哪些条件之后才会执行当前步骤,通过步骤优先权约束可以控制任务的执行顺序。有三种类型的优先权约束:
完成:表示前一步骤完成后就执行当前步骤,而不管其成功与否; 成功:表示前一步骤只有成功执行才执行当前步骤; 失败:表示前一步骤执行失败时才执行当前步骤。某一步骤可有多个优先权约束,只有前一步满足所有的约束后,才能执行当前步骤。
猜你喜欢
- 英文版见:http://dflying.dflying.net/.../98_web_standard_and_aspnet__part1_
- 以下效率,是奔腾 dual1.6G HZ,1G内存电脑,ie6.0下toggle()与slideToggle("fast"
- 当你连接一个MySQL服务器时,你通常应该使用一个口令。口令不以明文在连接上传输。所有其它信息作为能被任何人读懂的文本被传输。如果你担心这个
- oracle命令行删除用户: connect / as sysdba; shutdown abort; startup; drop user
- 似乎讨论分页的人很少,难道大家都沉迷于limit m,n?在有索引的情况下,limit m,n速度足够,可是在复杂条件搜索时,where s
- 国 * 公司安全团队开发出利用赛门铁克数据库安全与审计(SDSA)设备监视数据库的一系列客户化的政策。他们是如何在已有安全策略基础上做优
- 在Web标准中一个很重要的概念就是强调页面的结构与表现分离。说的通俗一点就是XHTML中应该没有样式化的东西,而且Web在浏览器中除内容外都
- 问题:MySQL 5.0不能使用自动增加字段。具体原因:引起的原因是在MySQL5.0.2版本中的The Server SQL Mode 中
- BLOG地址:http://www.planabc.net/article.asp?id=107学习标准的朋友,一般都会在学习的过程中接触到
- 下面是虚机维护中,经常碰到的一些ASP程序中的数据库调用的错误,现收集整理如下:
- 一.背景在现在的网站中,接入的渠道是越来越多了,技术也是越来越先进,WAP, SMS,EMAIL, 传统的Web, Socket等等,如果连
- 建立一个数据库表维护规范在一个定期基础而非等到问题出现才实施数据库表的检查是一个好主意。应该考虑到建立一个预防性维护的时间表,以协助自动问题
- 【MySql常用命令】1:使用SHOW语句找出在服务器上当前存在什么数据库:mysql> SHOW DATABASES;2:创建一个数
- 当你链接到应用程序以使用MySQL客户端库时,可能会遇到以mysql_开始的未定义引用错误,如下所示:/tmp/ccFKsdPa.o: 在函
- 作为一位不懂代码的业余网页制 * 好者,常常羡慕专业程序人员在浏览器中编制出的效果超酷的一些多媒体作品。唉,无奈程序那东东,酶涩南学,非一日之
- QQ影音至9月发布之后一直口碑很好,视觉界面和交互设计也颇受好评,这是设计师们努力的结果,也是众多用户反馈的功劳。我们希望可以提供更多价值回
- 前端时间写了一篇《利用CSS框架进行高效率的站点开发》,有不少朋友问我相关的问题。很早5key就在公司进行CSS框架的架构,也对不少朋友提出
- <script type="text/javascript">/*<![CDAT
- 有时,希望除去某些记录或更改它们的内容。DELETE 和 UPDATE 语句令我们能做到这一点。用update修改记录UPDATE tbl_
- 为了能够使用ERWin能够进行基于MySQL数据库的物理设计,可以采用以下方法步骤(假设你已经有了一个设计好的LOGICAL MODEL):