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

日期: 2009-03-17 作者:彭芬 来源:TechTarget中国 英文

  在企业中,各种数据分布于各个场合中。如在企业采用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等函数来进行数据转换,因为这些函数可以应用到专门的转换或者包含条件逻辑。从而可以把记录根据不同的条件逻辑转换为合适的数据或者格式。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐