SQL Server数据转换服务的四个妙用

  在企业中,各种数据分布于各个场合中。如在企业采用SQL Server数据库之前,可能采用了Excle或者MY SQL等数据库。他们的格式不同,存储的位置也不同。但是,管理者在决策的时候,可能需要用到各方面的数据。此时,用户就会遇到一个问题,如何把这些不同格式、不同地理位置的数据集中起来进行分析呢?为了解决这个难题,SQL Server数据库中提出了一种叫做DTS(数据转换)的服务。通过这个工具,使得数据库管理员可以将来自不同的源的数据(不同格式)提取、转换甚至合并到某个特定的目的(如SQL Server数据库),以满足统计分析的需要。

  可以说,数据转换服务所提供的一组工具能够帮助数据库管理员解决数据库起初数据导入、数据合并分析等方面的问题。具体的来说,它有如下四个妙用。

  一、导入导出数据。

  企业在部署信息化项目的时候,比较头痛的一个问题就是基础数据导入的问题。现在大部分企业在实施信息化项目,如ERP项目时,都一定有一定的信息化水平。最简单的来说,至少可能已经用Excle等办公软件来记录一些信息,如产品信息或者客户基本信息等。那么,在他们部署ERP系统的时候,若让企业员工再一条条的把信息输入进去,就会增加许多额外的工作量。据笔者了解,很多企业都是在原有资料的基础上,进行稍加修饰,如去掉一些不用的内容或者修改一些不准确的信息后,直接导入到数据库中。

  但是,在导入的过程中,由于格式不兼容或者其他问题,往往会导致导入的失败。而利用普通的工具,如SQL Server自带的导入工具,无法记录这些错误信息。利用这些工具在导入数据的时候,若遇到一条错误就会终止导入进程。如此数据库管理员需要重新检查数据源(有时数据库还不会提示哪条记录出现了问题)。这么导入数据的效率是非常低下的。

  而数据转换服务能够帮助我们解决这个问题。如数据转换服务可以把文本格式的数据或者Excel文件中的数据导入到SQL Server数据库中。最重要的是,如果这个原始的数据源中某条记录有问题的话,不会中断整个导入进程。在导入结束后,数据转换服务会生成一份报告。在这份报告中,会详细记录哪些记录没有成功导入以及可能遇到的问题。如果记录少的话,数据库管理员只需要手工录入即可;而数据多的话,数据库管理员也可以分批导入数据,也把符合要求的记录导入进去;然后再根据导入报告去修改那些不符合格式的记录。修改完成以后再继续导入剩余的数据。

  很明显,通过这个数据转换工具,导入不同格式的记录,会便利许多。与此同时,数据转换服务还可以把SQL Server数据库中的内容导出到一些特定的对象中,如Excel表格中。

  所以,数据转换服务的导入导出数据功能,在一些大量数据的导入导出以及不同格式的数据源之间进行对导,具有很大的用途。如数据转换服务可以将大容量的文本文件格式的记录高速导入到SQL Server数据库中,等等。

  二、利用数据转换规范导入数据的格式。

  数据转换服务允许数据库管理员在数据导入到SQLServer数据库中,在对原始数据没有进行更改的情况下,对需要导入的数据进行一些格式方面的调整或者利用一些函数进行操作。如现在数据库管理员需要从一份Excle表格中导入数据,但是在Excle表格中有一列商品编号,其是字符型数据。可是在SQL Server数据库中,则要求为整数型数据。若没有数据转换工具帮忙的话,则数据库管理员需要先在Excel表格中进行格式转换,然后再把转换后的数据导入到SQL Server数据库中。而如果利用数据转换服务导入数据的话,则在导入的过程中,就可以利用函数进行数据类型的转换,而不用修改原始的数据源。

  笔者再谈一个自己遇到真实案例。一次笔者在给一个客户导入基础资料的时候,遇到了这一种情况。他们在使用SQL Server数据库之前,采用的是ACCESS数据库。在这个数据库中有一个产品基本信息表,包含产品关键字、产品分类等等。当需要把这个数据库中的内容导入到SQL Server中时,要根据产分类的不同,给产品编号加入不同的前缀。如产品为成品的,则在产品编号前加入P;如果产品为包装材料的,则在原有的产品编号前加入B;若产品的类别为零件的,则加入M等等。此时,笔者就没有对原始的数据源进行更改。而是利用DTS服务在把数据导入到SQL Server数据库之前,利用相关的函数,如字符型数据合并等函数,进行一些格式的调整。所以,数据转换服务的一个好处,就是在不用更改原始数据源的情况下,就可以规范需要导入的数据格式。这在异构数据源相互导入中,非常有用。

  笔者另外一个同事也遇到过类似的问题。如他在给用户导入库存表的时候,也要进行一些数据转换。当库存数量大于等于0的时候,则导入的数值就是原来的库存数量。如果原始数据库库存数量小于0的时候,则导入的库存数量就为0。笔者同事在导入的过程中,就简单的编写了一个ActiveX脚本来实现这个需求。在这个脚本中,可以利用IF等函数来进行数据转换,因为这些函数可以应用到专门的转换或者包含条件逻辑。从而可以把记录根据不同的条件逻辑转换为合适的数据或者格式。

  所以,在导入数据过程中,如果要对一些数据进行格式或者其他方面的转换,笔者就建议大家采用DTS来转换数据,并导入到数据库中。

  三、导入过程中复制数据库对象。

  若直接利用ODBC等工具把其他SQLServer数据库中的数据导入到SQLServer数据库中,只能够导入数据,而无法复制数据库表上的对象,如约束、索引、主键等等。而且,对于视图、存储过程、默认值等基于基础表的数据库对象也无法导入进去。

  在SQL Server数据库中,数据库管理员可以通过数据库对象复制任务,将对象从数据库的一个实例复制到另外一个。可以传输基本对象,也可以复制某些对象的定义。如果选择了某个对象,则复制对象任务将会自动复制任何相关联的对象,如表湖或者视图等的功能。前提是这些被复制的对象在选定的对象上有外键约束。

  但是,利用DTS服务在导入数据的同时,还可以复制数据库对象,可以传输诸如视图、存储过程、触发器、规则、默认值以及用户自定义的数据类型。这是ODBC等数据导入工具所无法实现的功能。若所要复制的数据库对象比较多,数据库管理员还可以通过脚本来复制这些数据库对象。

  复制数据库对象在实际工作中很有作用,可以保障数据导入的一致性与完整性。如现在数据库管理员要从其他数据库导入客户信息表。而客户信息表中需要引用联系人信息表与地址信息表两个表。也就是说,客户信息表中有两个字段是这两个表的外键。那么通过复制对象作业,只要复制了这张客户信息表,则数据库会自动复制与其相关的表或者其他数据库对象。而不用数据库管理员再手工的去导入其他相关联的数据。

  四、执行一些自动化的操作。

  在数据库管理中,数据库管理员很希望数据库能够自动收集信息并将信息发送到用户指定的地点如邮件等等。在数据转换任务中,就提供了一系列类似的工具,来简化数据库管理员的工作。如在DTS组套种,有一个发送邮件的工具。 通过相关的设置,数据库会在包成功或者失败的时候自动发送一个电子邮件给数据库管理员,以提醒他作业是成功还是失败。并且会附上比较详细的信息,以便于数据库管理员进行后续的操作。

  数据转换功能中,还包含了一个执行包任务,是的一个包运行另一个作为包步骤。这可以让我们的工作更加的自动化。如在数据库导入过程中,我们可以通过包运行计划,把需要导入的数据表一步步按顺序写入执行包计划中。而让数据库在比较空闲的时候,自动按序导入数据。而数据库管理员不用在旁边指挥。

  可见,数据转换服务是功能很强的一项服务。在数据导入与转换的过程中,笔者首推这个工具。特别是在数据量比较大的情况下,这个数据转换服务确实能够起到画龙点睛的作用。

时间: 2024-10-28 17:19:34

SQL Server数据转换服务的四个妙用的相关文章

SQL Server数据转换服务小妙招

以下的文章主要是介绍SQL Server数据转换服务的4妙用之执行一些自动化的操作.在SQL Server数据库的实际操作管理中,数据库管理员所希望的是数据库能够自动收集信息并将信息发送到用户指定的地点如邮件等等. 在数据转换任务中,就提供了一系列类似的工具,来简化数据库管理员的工作.如在DTS组套种,有一个发送邮件的工具.通过相关的设置,数据库会在包成功或者失败的时候自动发送一个电子邮件给数据库管理员,以提醒他作业是成功还是失败.并且会附上比较详细的信息,以便于数据库管理员进行后续的操作. 数

如何使用SQL Server数据转换服务升迁Access数据库

本文详细介绍了如何使用SQL Server数据转换服务升迁Access数据库 开发者常常以Access作为原型或者用Access来开发不是很关键的应用程序.但是,随着公司业务的增长,要解决的问题会变得越来越复杂,Access环境可能无法满足需要.目前,Access 2002的.mdb和.adp文件都将一个数据库的长度限制在2 GB以内.这意味着几乎每个Access和SQL Server开发者最终都要将一个Access数据库升迁成一个SQL Server数据库. 由于升迁已成为极为常见的一个任务,

使用SQL Server数据转换服务升迁Access数据库

开发者常常以Access作为原型或者用Access来开发不是很关键的应用程序.但是,随着公司业务的增长,要解决的问题会变得越来越复杂,Access环境可能无法满足需要.目前,Access 2002的.mdb和.adp文件都将一个数据库的长度限制在2 GB以内.这意味着几乎每个Access和SQL Server开发者最终都要将一个Access数据库升迁成一个SQL Server数据库. 由于升迁已成为极为常见的一个任务,所以Access配套提供了一个"升迁向导".它虽然能完成这个工作,但

SQL Server连接中的四个最常见错误

server|错误 SQL Server连接中的四个最常见错误: 一."SQL Server 不存在或访问被拒绝" 这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多. 一般说来,有以下几种可能性: 1,SQL Server名称或IP地址拼写有误 2,服务器端网络配置有误 3,客户端网络配置有误 要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因. ============= 首先,检查网络物理连接 ============= ping <服务器IP地址

如何使用SQL Server分析服务定位目标用户

如何定位目标用户,在任何一个业务单元中都是一个很重要的话题,尤其在预算有限的情况下,如何获得活动的最大收益,目标用户的定位都是很重要的手段. 本文将介绍如何通过SQL Server分析服务(SSAS)中的数据挖掘功能根据历史记录信息来定位目标用户. 微软的SQL Server为数据平台提供了一套完整的解决方案,他不只是一个数据引擎,也提供了很多数据工具和服务,借助其中的分析服务,结合业务系统中的海量历史数据信息,SQL SERVER就可以帮助我们发现其中的模式和规律,从而对目标数据做预测分析.

SQL Server报表服务中的一些常见小问题

SQL Server报表服务(SSRS)对于开发人员和用户来说是一个非常有用的设计和浏览报表的工具.但是 ,有些特性是在SSRS中没有提供为直接可以使用的. 这些特性是开发人员和用户经常需要的. 在一个报表中显示服务器名称或IP地址 当报表数据是运行在几个报表服务器上时,用户经常会搞错.你可能有一个测试和开发环境,但是你 不知道你的报表数据是来自于哪个服务器. 很明显,解决这个问题的一个方法是在报表中显示报表服务器名称或它的IP地址.不幸的是,没有直 接的函数或方法来获取服务器名称.但是有这个工

使用SQL Server数据服务开发功能强大且可扩展的应用程序

本文使用了以下技术: SQL Server 本文将介绍以下内容: SSDS 数据模型 管理实体.容器和颁发机构 创建示例 Web 应用程序 类序列化和反序列化 本专栏基于 SQL Server 数据服务的预发布版本撰写而成.文中包含的所有信息均有可能发生变更. 目录 SSDS 数据模型 构建分类广告系统 添加城市 添加类别 更新和删除实体 添加和删除列表架构 分类 Web 应用程序 类反序列化 使用自定义列表架构

Sql Server函数全解&lt;四&gt;日期和时间函数

原文:Sql Server函数全解<四>日期和时间函数   日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外,也可以使用datetime类型的参数,但会忽略这些值的时间部分.相同的,以time类型值为参数的函数,可以接受datetime类型的参数,但会忽略日期部分. 1.获取系统当前日期的函数getDate();  getDate()函数用于返回当前数据库系统的日期和时间,返回值的类型为datetime.[例]sel

Sql Server之旅——第四站 你必须知道的非聚集索引扫描

原文:Sql Server之旅--第四站 你必须知道的非聚集索引扫描 非聚集索引,这个是大家都非常熟悉的一个东西,有时候我们由于业务原因,sql写的非常复杂,需要join很多张表,然后就泪流满面了...这时候就 有DBA或者资深的开发给你看这个猥琐的sql,通过执行计划一分析...或许就看出了不该有的表扫描...万恶之源...然后给你在关键的字段加上非 聚集索引后...才发现提速比阿斯顿马丁还要快...那么一个问题来了,为什么非聚集索引能提速这么快...怎么做到的???是不是非常的好奇??? 这