热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

SQLServer2000的数据转换服务(下)

数据泵:转换数据DTS数据泵是一个DTS对象,它驱动数据的导入、导出和转换操作。在执行数据转换、数据驱动查询和并行数据泵任务期间将使用数据泵。执行这些任务的过程是:在源和目标连接上创建行集合,然后创建数据泵实例在源和目标间移动这些行。在复制每一行时,将进行转换操作。下图中,在第二个步骤中,转换数据任务在AccessDB任务和SQLP
数据泵:转换数据

  DTS 数据泵是一个 DTS对象,它驱动数据的导入、导出和转换操作。
在执行数据转换、数据驱动查询和并行数据泵任务期间将使用数据泵。执
行这些任务的过程是:在源和目标连接上创建行集合,然后创建数据泵实
例在源和目标间移动这些行。在复制每一行时,将进行转换操作。

  下图中,在第二个步骤中,转换数据任务在 Access DB任务和 SQL
Production DB任务之间进行。转换数据任务用连接间的灰色箭头表示。

         图 7. 示例:转换数据任务

  要定义从源连接收集的数据,可以生成一个转换任务的查询。DTS 支
持参数化查询,参数化查询允许在执行查询时定义查询值。

  可以将查询键入任务的“属性”对话框,也可以使用数据转换服务查
询设计器,它是一个用图形化方式生成 DTS任务查询的工具。下图中,使
用查询设计器来生成一个查询,该查询联接 pubs 数据库中的三个表。
    
        图 8. 数据转换服务查询设计器界面

  在转换任务中,还可以定义要对数据进行的更改。下表说明 DTS提供
的内置转换。



转换 说明
复制列 用于在不应用任何转换的情况下将数据直接从源列复制到目标列。
ActiveX 脚本 用于生成自定义转换。请注意,因为转换将逐行进行,ActiveX 脚本可能影响 DTS 软件包的执行速度。
DateTime 字符串 用于将源列中的日期或时间转换为目标列中的另一种格式。
小写字符串 用于将源列转换为小写字符形式,如需要,将其转换为目标数据类型。
大写字符串 用于将源列转换为全大写字符形式,如需要,将其转换为目标数据类型。
中间字符串 用于从源列抽取子字符串,对其进行转换后将结果复制到目标列。
修剪字符串 用于删除源列中字符串的前导空格、尾随空格和嵌入空格,然后将结果复制到目标列。
读取文件 用于打开文件内容(文件名称在源列中指定),然后将内容复制到目标列。
写入文件 用于将源列(数据列)的内容复制到一个文件中,该文件的路径由第二个源列(文件名列)指定。

  还可以用编程方式创建自己的自定义转换。生成自定义转换最快速的
方式是使用活动模板库(ATL )自定义转换模板,SQL Server 2000 DTS
样本程序中包括该模板。

数据泵错误记录

  SQL Server 2000 中提供了一种记录转换错误的新方法。可以定义三
种异常情况记录文件来记录软件包执行期间的情况:错误文本文件、源错
误行文件和目标错误行文件。
●一般错误信息将写入错误文本文件中。
●如果转换失败,源行出现错误,该行将写入源错误行文件。
●如果插入失败,目标行出现错误,该行将写入目标错误行文件。

  在转换数据的任务中将定义异常情况日志文件。每个转换任务都有自
己的日志文件。

数据泵阶段

  默认情况下,数据泵有一个阶段,即行转换。该阶段是在未选择阶段
的情况下,在转换数据任务、数据驱动查询任务和并行数据泵任务中映射
列一级的转换时配置的。

  多个数据泵阶段是 SQL Server 2000中新增的。通过在 SQL Server
企业管理器中选择多阶段数据泵选项,在数据泵操作过程中的不同阶段都
可以访问数据泵并添加功能。

  将数据行从源复制到目标时,数据泵将按照下图中所显示的基本进程
进行操作。
   
            图 9. 数据泵进程

  数据泵处理完最后一行数据后,任务结束,数据泵操作终止。

  如果高级用户要向软件包添加功能,以便软件包能支持任何数据泵阶
段,可以执行以下操作:
●为每个要自定义的数据泵阶段编写一个 ActiveX 脚本阶段函数。如果
 使用 ActiveX 脚本函数来自定义数据泵阶段,不需要该软件包以外的
 其它任何代码。
●使用 Microsoft Visual C++? 创建 COM 对象来自定义所选的数据泵阶
 段。在该软件包之外开发此程序,在执行转换过程中每个所选的阶段时
 将调用该程序。访问数据泵阶段的 ActiveX 脚本方法中每个所选阶段
 都使用不同的函数和输入点;而这种方法则不同,它在数据泵任务执行
 期间提供一个单一输入点,该输入点将被多个数据泵阶段调用。

保存 DTS 软件包的选项

以下选项可用于保存 DTS 软件包:
●Microsoft SQL Server
  如果要将软件包存储到网络中 SQL Server 的任意实例上,该选项将
DTS 软件包保存到 Microsoft SQL Server ,保留一个便于使用的这些软
件包的清单,并在软件包开发进程中添加和删除软件包版本。

●SQL Server 2000 元数据服务
  如果准备跟踪软件包版本、元数据和数据系列信息,该选项将 DTS软
件包保存到元数据服务。

●结构化存储文件
  如希望在网络间复制、移动和发送软件包而不必将其存储在Microsoft
SQL Server数据库中,该选项将 DTS软件包保存到结构化存储文件。

●Microsoft Visual Basic
  如果要将 DTS软件包合并到 Visual Basic 程序中或将其用作 DTS应
用程序开发的原型,该选项将通过 DTS设计器或 DTS导入/ 导出向导所创
建的 DTS软件包保存到 Microsoft Visual Basic 文件。

DTS 作为应用程序开发平台

  DTS 设计器为数据移动任务提供了多种解决方案。因为提供通过编程
方式访问 DTS对象模型的功能,DTS 扩展了可用的解决方案的数目。使用
Microsoft Visual Basic、Microsoft Visual C++或任何其它支持 COM的
应用程序开发系统,都可以使用图形化工具所不支持的功能开发出适合于
您的环境的自定义 DTS解决方案。

DTS 为开发人员提供多种不同方式的支持:
●生成软件包
  无需使用 DTS设计器或 DTS导入/ 导出向导,您就可以开发极为复杂
的软件包,并可访问对象模型中的全套功能。

●扩展软件包
  通过构建自定义任务和转换,可以添加一些适用于您的业务并可在 DTS
内重复使用的新功能。

●执行程序包
  并非一定要使用所提供的工具来执行 DTS软件包,可以用编程方式执
行DTS软件包并通过 COM事件显示进度,并允许构建嵌入的或自定义的DTS
执行环境。

  样本DTS程序有助于了解DTS编程的入门知识。该样本可与SQL Server
2000一起安装。

  如果开发 DTS应用程序,可以重新分发 DTS文件。有关详细信息,请
参阅 SQL Server 2000光盘上的 Redist.txt。
推荐阅读
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • 本文介绍了如何使用Power Design(PD)和SQL Server进行数据库反向工程的方法。通过创建数据源、选择要反向工程的数据表,PD可以生成物理模型,进而生成所需的概念模型。该方法适用于SQL Server数据库,对于其他数据库是否适用尚不确定。详细步骤和操作说明可参考本文内容。 ... [详细]
  • Python实现Redis订阅发布功能
    本文介绍了使用Python实现Redis订阅发布功能的方法,包括创建RedisHelper类、发布消息和订阅消息的操作。通过该功能,可以实现消息的发布和订阅,并在程序中进行相应的处理。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • yum安装_Redis —yum安装全过程
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Redis—yum安装全过程相关的知识,希望对你有一定的参考价值。访问https://redi ... [详细]
  • 006_Redis的List数据类型
    1.List类型是一个链表结构的集合,主要功能有push,pop,获取元素等。List类型是一个双端链表的结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素,List的设 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 本文介绍了Redis中RDB文件和AOF文件的保存和还原机制。RDB文件用于保存和还原Redis服务器所有数据库中的键值对数据,SAVE命令和BGSAVE命令分别用于阻塞服务器和由子进程执行保存操作。同时执行SAVE命令和BGSAVE命令,以及同时执行两个BGSAVE命令都会产生竞争条件。服务器会保存所有用save选项设置的保存条件,当满足任意一个保存条件时,服务器会自动执行BGSAVE命令。此外,还介绍了RDB文件和AOF文件在操作方面的冲突以及同时执行大量磁盘写入操作的不良影响。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • Redis API
    安装启动最简启动命令行输入验证动态参数启动配置文件启动常用配置通用命令keysbdsize计算key的总数exists判断是否存在delkeyvalue删除指定的keyvalue成 ... [详细]
  • 本文整理了Java中java.lang.NoSuchMethodError.getMessage()方法的一些代码示例,展示了NoSuchMethodErr ... [详细]
author-avatar
恨透这一切_249
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有