大多数组织都使用多种格式和多个位置来存储数据。为了支持决策、 改善系统性能或对现有系统进行升级,经常必须将数据从一个数据存储位 置移动到另一个存储位置。
Microsoft SQL Server 2000 数据转换服务(DTS )提供一组工具, 可以从不同的源将数据抽取、转换和合并到一个或多个目标位置。借助于 DTS工具,您可以创建适合于您的组织特定需要的自定义移动解决方案, 如以下方案所示:
您已在较早版本的 SQL Server 或另一平台上部署了一个数据库应用 程序,如 Microsoft Access.该应用程序的新版本要求 SQL Server 2000, 因此需要您更改数据库架构并转换某些数据类型。
要复制和转换数据,您可以生成一个 DTS解决方案,该方案可把数据 库对象从原数据源复制到 SQL Server 2000数据库中,同时重新映射列并 更改数据类型。可以使用 DTS工具运行此解决方案,或者将该解决方案嵌 入您的应用程序。
您必须将几个主要的 Microsoft Excel电子表格合并到 SQL Server 数据库。几个部门会在月末创建这些电子表格,但是并没有设定完成所有 电子表格的时间。
要合并电子表格,可以生成一个 DTS解决方案,在消息传送到消息队 列时运行该解决方案。此消息触发 DTS从电子表格抽取数据,执行所有定 义的转换然后将数据加载到 SQL Server 数据库中。
您的数据仓库包含有关业务操作的历史数据,您使用 Microsoft SQL Server 2000 分析服务来汇总数据。而该数据仓库每晚需要从联机事务处 理(OLTP)数据库进行更新。OLTP系统每天 24 小时都在运行,所以性能 至关重要。
您可以生成一个 DTS解决方案,该方案使用文件传输协议(FTP )将 数据文件移动到本地驱动器,将数据加载到一个实际的表中,然后使用分 析服务对数据进行合计。可以安排每晚运行 DTS解决方案,还可以使用新 的 DTS记录选项来跟踪该进程的进行时间,从而可以分析不同时间段内的 性能。
什么是 DTS?
DTS是一组工具,用于一个或多个数据源(如Microsoft SQL Server、 Microsoft Excel 或 Microsoft Access )间导入、导出和转换各种数据。 通过 OLE DB (一种数据访问的开放式标准)提供连接,通过用于 ODBC 的 OLE DB 提供程序来支持 ODBC (开放式数据库连接)数据源。
可以将 DTS解决方案创建为一个或多个软件包。每个软件包可包含一 组已安排好的任务,它们定义要执行的工作、对数据和对象的转换、定义 任务执行的工作流约束条件以及数据源和目标间的连接方式。DTS 软件包 还提供一些服务,如记录软件包执行详细情况、控制事务和处理全局变量。
以下工具可用于创建和执行 DTS 软件包: ●导入/导出向导用于生成相对简单的 DTS 软件包,并支持数据移植和简 单转换。 ●DTS设计器以图形方式来实现 DTS 对象模型,可用于创建具有一系列功 能的 DTS 软件包。 ●DTSRun 是用于执行现有 DTS 软件包的命令提示实用程序。 ●DTSRunUI 是 DTSRun 的图形界面,可以传递全局变量以及生成命令行。 ●SQLAgent 不是 DTS 应用程序,DTS 将其用于安排软件包的执行。
使用 DTS对象模型还可以用编程方式创建和运行软件包,生成自定义 任务和自定义转换。
DTS 的新功能
Microsoft SQL Server 2000 中加入了多种 DTS 增强功能和新功能: ●新的 DTS 任务包括 FTP 任务、执行软件包任务、动态属性任务和信息 队列任务。 ●增强的记录功能可以保存每个软件包的执行信息,从而为您保留一个完 整的执行历史记录,并可以查看每一任务的每个进程的信息。可以生成 异常情况文件,文件中包含因错误而无法处理的数据行。 ●您可以将 DTS 软件包另存为 Microsoft Visual Basic? 文件。 ●新的多阶段数据泵允许高级用户自定义不同阶段的数据转换操作。还可 以将全局变量用作查询的输入参数。 ●您可以在 DTS 转换任务和执行 SQL 任务时使用参数化源查询。 ●可以使用执行软件包任务将全局变量的值从父软件包动态分配到子软件 包。
使用 DTS 设计器
DTS 设计器以图形方式实现 DTS对象模型,使您可以用图形方式创建 DTS 软件包。您可以使用 DTS设计器执行以下任务: ●创建包含一个或多个步骤的的简单软件包。 ●创建包括复杂工作流的软件包,这些工作流包括多个步骤,而这些步骤 使用条件逻辑、事件驱动代码或与数据源的多种连接。 ●编辑现有软件包。 DTS 设计器界面包括一个工作区(用于生成软件包)、几个工具栏 (其中包含可拖动到设计工作表上的软件包元素)以及几个菜单(其中包 含工作流和软件包管理命令)。
图 1. DTS 设计器界面
通过将连接和任务拖动到设计工作表,然后指定工作流的执行顺序, 可以方便地使用 DTS设计器来生成功能强大的 DTS软件包。以下各部分将 对任务、工作流、连接和转换进行定义,并阐释使用 DTS设计器实施 DTS 解决方案的方便性。
任务:定义软件包中的步骤
一个 DTS软件包通常包括一个或多个任务。每个任务定义一个在软件 包执行期间可能要执行的工作项。可以使用这些任务进行以下操作: ● 转换数据 转换数据任务 用于在源和目标间移动数据,可以选择对数据应用列一级的转换。 数据驱动的查询任务 用于对数据执行灵活的基于 SQL 事务的操作,包括存储过程和 INSERT、UPDATE 或 DELETE 语句。 并行数据泵任务1 只可按编程方式使用,并行数据泵任务执行的功能与转换数据和数据驱动的查询任务相同,但它支持 OLE DB 2.5 或更高版本所定义的分层次的行集合。
● 复制和管理数据 批量插入任务 用于快速将大量数据加载到 SQL Server 表或视图中。 执行 SQL 任务 用于在软件包执行期间运行 SQL 语句。执行 SQL 任务还可以保存作为查询结果的数据。 复制 SQL Server 对象任务 用于将 SQL Server 对象从一个 SQL Server 或其实例复制到另一个 SOL Server 或实例。可以复制对象(如:数据和表)以及对象(如:视图和存储过程)的定义。 传输数据库任务1 用于将 SQL Server 数据库从 SQL Server 7.0 版本或 SQL Server 2000 的一个实例移动或复制到 SQL Server 2000 的一个实例中。 传输错误消息任务1 用于将针对用户的错误消息(通过 sp_addmessage 系统存储过程创建)从 SQL Server 7.0 或 SQL Server 2000 的一个实例复制到 SQL Server 2000 的一个实例中。 传输登录任务 1 用于将登录信息从 SQL Server 7.0 或 SQL Server 2000 的一个实例复制到 SQL Server 2000 的一个实例中。 传输作业任务1 用于将作业从 SQL Server 7.0 或 SQL Server 2000 的一个实例复制到 SQL Server 2000 的一个实例中。 传输主存储过程任务 1 用于将存储过程从 SQL Server 7.0 或 SQL Server 2000 的一个实例的主数据库复制到 SQL Server 2000 的一个实例的主数据库。
● 将任务作为软件包中的作业运行 ActiveX 脚本任务 用于编写代码以执行在其它 DTS 任务中无法执行的功能。 动态属性任务1 用于在软件包运行时从 DTS 软件包以外的源检索值,并将这些值分配给选定的软件包属性。 执行软件包任务1 用于运行软件包内其它的 DTS 软件包。 执行进程任务 用于运行可执行程序或批处理文件。 文件传输协议 (FTP) 任务1 用于从远程服务器或 Internet 下载数据文件。 消息队列任务1 用于从 Microsoft 消息队列发送和接收消息。 发送邮件任务 用于发送电子邮件消息。 分析服务处理任务2 用于对 SQL Server 2000 分析服务中定义的一个或多个对象执行处理。 数据挖掘任务1,2 用于从 SQL Server 2000 分析服务中定义的数据挖掘模式对象中创建谓词查询或输出表。
1 SQL Server 2000 中的新功能。 2 只在安装了 SQL Server 2000 分析服务的前提下可用。