第十三章 SQL Server数据转换 数据的导入 数据的导出
1 第十三章 SQL Server 数据转换 • 数据的导入 • 数据的导出
数据转换服务基本概念 数据转换服务简介:为了支持企业决策,许多 组织都需将数据集中起来进行分析。但是通常 数据总是以不同的格式,存储在不同的地方, 有的可能是文本文件,有的虽然具有表结构但 不属于同一种数据源。这些情况极大地妨碍数 据的集中处理, SQLServer提供了令人欣慰的 组件,即( Data Transformation services) DTS。DTS本身包含多个工具,并提供了接口 来实现在任何支持 OLE DB的数据源间导入、 导出或传递数据,并使这一工作变得简单、高 效。这意味着不仅可以在 SQLServer数据源间 进行数据的转储,而且可以把 Sybase、 Oracle、 Informix下的数据传递到 SQL Server
2 数据转换服务基本概念 • 数据转换服务简介:为了支持企业决策,许多 组织都需将数据集中起来进行分析。但是通常 数据总是以不同的格式,存储在不同的地方, 有的可能是文本文件,有的虽然具有表结构但 不属于同一种数据源。这些情况极大地妨碍数 据的集中处理,SQL Server 提供了令人欣慰的 组件,即(Data Transformation Services) DTS。 DTS 本身包含多个工具,并提供了接口 来实现在任何支持OLE DB 的数据源间导入、 导出或传递数据,并使这一工作变得简单、高 效。这意味着不仅可以在SQL Server 数据源间 进行数据的转储,而且可以把Sybase、Oracle、 Informix下的数据传递到SQL Server
利用DTS可能在任何 OLE DB、ODBC驱 动程序的数据源或文本文件和 SQLServer 之间导入导出或传递数据具体表现在: 数据的导入导出服务:通过读写数据在不 同应用程序间交换数据。例如可将文本文 件或 Microsoft access数据库导入到SQL Server,也可以把数据从 SQL Server导出 到任何 OLE DB数据源
3 • 利用DTS 可能在任何OLE DB、ODBC 驱 动程序的数据源或文本文件和SQL Server 之间导入导出或传递数据具体表现在: • 数据的导入导出服务:通过读写数据在不 同应用程序间交换数据。例如可将文本文 件或Microsoft Access数据库导入到SQL Server ,也可以把数据从SQL Server 导出 到任何OLE DB 数据源
转换数据:所谓传递是指在数据未到达目 标数据源前而对数据采取的系列操作。比 如DTS允许从源数据源的一列或多列计 算出新的列值,然后将其存储在目标数据 库中。 传递数据库对象:在异构数据源情况下, DTS的内置工具只能在数据源间传递表 定义和数据。如果要传递其它数据库对象, 如索引、约束、视图时,必须定义一个任 务,从而在目标数据库上执行那些包含在 任务中的SQL语句,SQL语句是被用来 创建这些数据库对象的
4 • 转换数据:所谓传递是指在数据未到达目 标数据源前而对数据采取的系列操作。比 如DTS 允许从源数据源的一列或多列计 算出新的列值,然后将其存储在目标数据 库中。 • 传递数据库对象:在异构数据源情况下, DTS 的内置工具只能在数据源间传递表 定义和数据。如果要传递其它数据库对象, 如索引、约束、视图时,必须定义一个任 务,从而在目标数据库上执行那些包含在 任务中的SQL 语句,SQL 语句是被用来 创建这些数据库对象的
DTS结构 DTS将数据导入、导出或传递定义成可存储的 对象,即包裹或称为包,每一个包都是包括 个或具有一定顺序的多个任务的工作流,每个 任务可以将数据从某一数据源拷贝至目标数据 源,或使用 Active脚本转换数据,或执行SQL 语句,或运行外部程序。也可以在 SQLServer 数据源间传递数据库对象 ·包对象用来创建并存储步骤,这些步骤定义了 系列任务执行的顺序,以及执行任务的必要 细节。包对象中还包括源列、目标列以及有关 在数据传递过程中如何操纵数据的信息
5 DTS 结构 • DTS 将数据导入、导出或传递定义成可存储的 对象,即包裹或称为包,每一个包都是包括一 个或具有一定顺序的多个任务的工作流,每个 任务可以将数据从某一数据源拷贝至目标数据 源,或使用Active 脚本转换数据,或执行SQL 语句,或运行外部程序。也可以在SQL Server 数据源间传递数据库对象。 • 包对象用来创建并存储步骤,这些步骤定义了 一系列任务执行的顺序,以及执行任务的必要 细节。包对象中还包括源列、目标列以及有关 在数据传递过程中如何操纵数据的信息
包可以存储在 DTS COM结构的存储文件中、 msdb数据库中或 Microsoft repository中。 可以通过以下工具来运行包,它们是 dtsrun工 具, DTS Designer,DTS的导入、导出向导, SQL Server Agent来运行规划作业,使用 Execute方法调用DTS包对象的COM应用程序。 包是顶层对象,它包含三种底层对象:连接、 任务、步骤
6 • 包可以存储在DTS COM 结构的存储文件中、 msdb 数据库中或Microsoft Repository中。 • 可以通过以下工具来运行包,它们是dtsrun 工 具,DTS Designer, DTS 的导入、导出向导, SQL Server Agent 来运行规划作业,使用 Execute 方法调用DTS 包对象的COM应用程序。 • 包是顶层对象,它包含三种底层对象:连接、 任务、步骤
连接 ·连接定义了有关源和目标数据(数据源或文件) 的信息,这些信息包括数据格式和位置以及安 全认证的密码。DTS包可不包含或包含多个连 接。使用连接的任务有: DTS Data Pump任务 ·执行SQL任务 数据驱动查询任务 定制任务
7 连接 • 连接定义了有关源和目标数据(数据源或文件) 的信息,这些信息包括数据格式和位置以及安 全认证的密码。DTS 包可不包含或包含多个连 接。使用连接的任务有: • DTS Data Pump 任务 • 执行SQL 任务 • 数据驱动查询任务 • 定制任务
有三种类型的连接对象 数据源连接:数据源连接定义了有关源和目标 OLE DB数据源的信息。这些信息包括服务器 名称、数据格式和位置,以及安全认证的密码。 第一个使用连接的任务负责创建该连接。如果 使用ODBC的 OLE DB提供者,则连接也可以 定义ODBC数据源信息。 文件连接:文件连接定义了有关源和目标文件 的信息,这些信息包括文件格式和位置。 Microsoft数据连接对象: Microsoft数据连接 对象或者加载数据连接文件(ud)或者为 OLE DB提供者设置数据连接文件的属性
8 • 有三种类型的连接对象 • 数据源连接:数据源连接定义了有关源和目标 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脚本。凡是脚本支 持的操作都可以执行
9 任务 • 每个DTS 包都含有一个或多个任务,每个 任务都是数据转换(传递)处理的工作项 目。任务的种类包括: • 执行SQL 任务:即执行SQL 语句 • Data Pump(数据抽取) 任务:该任务为 Data Pump 操作定义了源和目标数据源以 及数据转换。Data Pump 从源和目标OLE DB 数据源间拷贝并转换数据。 • ActiveX 脚本:执行ActiveX, VB, Jscript 或Perscript 脚本。凡是脚本支 持的操作都可以执行
·执行处理任务( Execute Process task) 指执行外部程序 批量插入:指执行 SQL Server批拷贝操作 ·发送邮件:使用 SQL Mai1发送寻呼或邮件 ·数据驱动查询:执行 OLE DB数据源间的高级 数据传递 转换 SQL Server对象:即从 SQL Server Ole DB数据源向另外的同类数据源复制对象。例 如表、索引、视图
10 • 执行处理任务(Execute Process task): 指执行外部程序 • 批量插入:指执行SQL Server 批拷贝操作 • 发送邮件:使用SQL Mail 发送寻呼或邮件 • 数据驱动查询:执行OLE DB 数据源间的高级 数据传递 • 转换SQL Server 对象:即从SQL Server OLE DB 数据源向另外的同类数据源复制对象。例 如表、索引、视图