DTS组件在实现数据仓库中数据转换的应用

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:smilelemon
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:DTS是一个强大而且灵活的数据库迁移工具,它能够实现各种异构数据源的数据转换。本文通过一个数据仓库实例,说明如何利用DTS将原始的业务数据源加载到数据仓库中,重点说明运用DTS中的ActiveX脚本语言转换数据。
  关键词:DTS;数据仓库;数据转换;ActiveX
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21514-02
  
  Application of DTS Component in Data Warehouse Data Transformation
  
  ZHENG Dan, WANG Yao
  (School of Polytechnic, East China Jiaotong University, Nanchang 330013, China)
  Abstract:DTS is a very powerful and flexible data transfer tool. It can realize the transformation of data source with different construct. This paper by using a practical application in data warehouse, illuminates how to use DTS for loading original operation data into data warehouse, and emphasizes on how to use ActiveX script language in data transformation.
  Key words:DTS; Data Warehouse; Data Transformation; ActiveX
  
  1 引言
  
  在建立數据仓库时,数据的抽取、转换和装载是一个重要的环节,它所完成的工作就是将数据迁移到数据仓库系统。在一个数据仓库项目中,大部分的工作都花费在此。但是,不同的事务处理系统可能用到不同的数据库系统,使数据转换的工作变得异常复杂。期间容易产生许多异构数据源,有的是文本文件,有的虽具有表结构但不属于同一种数据源,如EXCEL、FOXPRO、ACCESS,这些情况极大地妨碍着数据的集中处理。因此由原有异构环境向OLAP环境转换就成为数据仓库构建过程中最重要的一步。SQL Server提供数据转换服务(Data Transformation Services,DTS)很好地解决了这个问题。DTS提供了例如引入、引出以及在微软的SQL Server和任何OLE DB、ODBC或者文本格式之间转换数据的功能,使这一工作变得简单高效。
  
  2 设计学生成绩分析系统的星型模式
  
  对一个学校来说,学生成绩无疑是很有价值的数据,它是评估教学质量的重要依据。本文以我院情况为例,计划设计数据仓库对学生成绩数据进行存储和处理,以便有效地挖掘利用这些数据所隐含的价值,帮助教育管理人员做出科学的决策。在构建数据仓库之前创建一个名为gzxy的数据集市,打算采用星型结构。主要结构如图1所示。
  
  图1 星型数据模型
  
  3 ActiveX脚本语言
  
  DTS是一个强大而且灵活的数据库迁移工具,它能够实现各种异构数据源的数据转换。在数据迁移时,DTS 还可以使用ActiveX脚本语言,如VBScript 或JavaScript来转换数据。数据转换脚本可以简单地将一列的内部代码转换为外部系统使用的代码,也可完成复杂的功能。数据转换脚本可以执行能在脚本语言中执行的任何动作,这种灵活性使DTS 成了一个强大的数据迁移工具。
  3.1 利用ActiveX脚本语言实现学生维表数据的导入
  在SQL Server 2000中新建数据库gzxy,并且创建上图所示的事实表和维表。我院的学生信息和学生成绩信息都是以EXCEL文件的形式存储的。其中学生信息是按班级分别存放在每个表单中,表单名称就是班级名称,字段包括学号,姓名,性别,出生日期等,并没有班级代码。比方说,“网络1”表中,学号为20055120610101的学生:表示她是05网络1班,2005是她的入学年份,5120是院系代码,6101代表是网络专业1班,01表示是1号学生;“网络2”表中,学号为20055120610201的学生就是05网络2班的学生。05网络1班的班级代码是056101,05网络2班的班级代码是056102。根据这样的情况,我们就要考虑在将这张EXCEL表中学生信息导入SQL SERVER学生维表中,如何添加班级代码。当然我们不可能去为每个学生逐个填写班级代码,这是不现实的。在这里用SQL Server的DTS工具就能很轻松的完成这样的工作。
  对于其他字段,在导入时直接进行复制就可以了。对于班级代码的建立,就需要编写ActiveX脚本语言。ActiveX脚本可以验证信息的正确性,不正确的数据可以存储在异常日志的文件中,可以随后分析这些数据。
  具体的实现过程如下:先运行SQL Server企业管理器,选中“工具”菜单中的“数据转换服务”→导入数据,在“数据源”对话框中选Microsoft Excel 97-2000,文件名选“E:\data\05学生名单.xls”,目的选“用于SQL Server 的Microsoft OLE DB 提供程序”,数据库选gzxy,在“选择数据源表和视图”对话框中,“源”选择以班级名称命名的某张表单,比如“网络1”,在“目的”中选择“[gzxy].[dbo].[xs]”,单击随后的“转换”,弹出“列映射和转换”对话框,单击“转换”选项卡,单击“在将信息复制到目的时对其进行转换”选项,在下面的区域编写我们的脚本语言。
  Function Main()
  DTSDestination("xh") = DTSSource("学号")
  DTSDestination("xm") = DTSSource("姓名")
  DTSDestination("xb") = DTSSource("性别")
  DTSDestination("csrq") = DTSSource("出生日期")
  DTSDestination("bjdm") =mid(DTSSource("学号"),3,2)+mid(DTSSource("学号"),9,4)
  Main = DTSTransformStat_OK
  End Function
  这里编写的ActiveX脚本采用的是VB Script的语法。这里主要是对“班级代码”的一个处理,我们发现班级代码实际上隐含在每个学生的学号里。比方说学号为“20055120610101”,班级代码就是由学号第3位开始的后2位“05”组合上学号第9位开始的后4位“6101”而成的“056101”。有了这样的规律,我们就可以借助脚本语言方便的生成每个学生的班级代码。
  写好代码单击“下一步”,在“保存、调度和复制包”对话框中勾选“立即运行”,并且勾选保存DTS包,存为SQL Server,名称为“xs_resource”单击“完成”后,可以看到成功执行“包”的提示。   
  创建好的包在企业管理器的数据转换服务列表可以中看到,如果还要导入其他班的学生信息,我们只需要择其他的表单名称,重新执行一边包,就不用反复书写代码了。
  3.2 利用ActiveX脚本语言实现事实表数据的导入
  学生成绩信息按每学期的考试结果保存为一张EXCEL表,其中按班级分别创建多个表单。如表1所示就是05网络1班2005~2006上学期的考试成绩的情况:
  表1 05网络1
  
  在导入数据时,主要是对成绩的处理,其他信息可以根据具体情况填入。我们将每门课程分别导入,这里以“英语”课程为例。具体的实现过程如下:
  第一步:在当前服务器下的“数据转换服务”,选择“本地包”,单击右键“新建包”,弹出“新建包”界面。向DTS包设计器工作区中添加一个连接,即Microsoft Excel连接,该连接的数据库文件名指向“E:\data\05061_05高职成绩.xls”;再向工作区中添加一个Microsoft OLE DB Provider for SQL Server图标,选择目标数据库为gzxy。
  第二步:从任务工具箱中选择“转换数据任务”,为其设置属性。在“源”选项卡选择某个表单,这里选择“网络1”,“目的”选项卡选择“[gzxy].[dbo].[cj]”,在“转换“选项卡中,默认情况下系统会按照先后顺序自动建立源字段到目标字段的一一映射,但这并不是我们想要的,将其全部删除,然后重新建立。
  第三步:选中源列表框中的“學号”字段,再选中目的列表框中的“xh”字段,单击“新建”按钮,在“创建新转换”中,选择“Copy Column”,对于学号,只需要直接复制就可以了。
  第四步:选中源列表框中的“英语”字段,然后选中目的列表框中的“kch”字段,单击“新建”按钮,在“创建新转换”中,选择“ActiveX Script”,在弹出的“ActiveX脚本转换属性”窗口,“语言”选择“VB Script Language”,在右侧的脚本代码输入窗口中输入如下代码:
  Function Main()
  DTSDestination("kch") = "0051G057"//英语课程的课程编号
  Main = DTSTransformStat_OK
  End Function
  第五步:选中源列表框的“英语”字段,再选中目的列表框的“cj”字段,对英语成绩的导入我们直接进行列的复制就可以了,选择“Copy Column”。
  “cj”表中的其他字段,如“学分”,“教师编号”等按照步骤四的方法填入相应代码就可以了。在所有的字段映射都设置好后,DTS将会把源和目的的映射关系以图形化界面的方式显示出来,如图2所示。
  
  图2 映射关系
  第六步:保存创建好的包,并执行包。之后就可以看到EXCEL表中的英语成绩导入了SQL Server的学生成绩事实表中。
  其他课程成绩的导入只需要重新打开包,按照具体情况重新设定就可以了。
  对于考查科目,我们在导入事实表中的时候,为了成绩分析统计的方便,我们希望将“优秀”,“良好”这样的文字也转换成数字,用“考核方式”字段可以说明这门课程是考试还是考查。如何使其能自动进行转换呢,在转换的时候我们就需要编写脚本。
  在上例中的第五步,对成绩字段我们就不能直接进行复制了,而要选择“ActiveX Script”,在右侧的脚本代码输入窗口中输入如下代码:
  Function Main()
  if DTSSource("组网与综合布线实践")="优" then
  DTSDestination("cj") = 90
  elseif DTSSource("组网与综合布线实践")="良" then
  DTSDestination("cj") = 80
  elseif DTSSource("组网与综合布线实践")="中" then
  DTSDestination("cj") = 70
  elseif DTSSource("组网与综合布线实践")="及格" then
  DTSDestination("cj") = 60
  elseif DTSSource("组网与综合布线实践")="不及格" then
  DTSDestination("cj") = 50
  end if
  Main = DTSTransformStat_OK
  End Function
  上面的代码把成绩等级相应地转化为分数导入数据库中,这样考查科目就可以和考试科目一起参与计算学生总成绩,平均分等等。
  
  4 结束语
  
  本文根据构建我院学生成绩分析数据仓库中涉及到的异构数据源转换的问题,主要介绍了通过编写脚本语言实现将大量的EXCEL数据表导入SQL Server数据库中的技巧,实现了数据的快速转换,展现了DTS组件在实现数据仓库中数据导入导出的强大功能,相信对其他院校也具有一定的借鉴作用。
  
  参考文献:
  [1]飞思科技产品研发中心. SQL SERVER 2000 OLAP服务设计与应用[M]. 北京:电子工业出版社,2002.
  [2]周之昕. 基于DTS的异构数据源格式转换[J]. 电脑知识与技术,2006(8):20-21.
  [3]王胜德, 杨学强. 利用DTS实现异构数据库的数据交换[J]. 计算机应用,2003(23):132-134.
  [4]崔彬. 利用DTS包进行多维数据集的自动处理[J]. 软件导刊,2006(8):49-50.
  “本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
其他文献
摘要:本文简述了ATM技术的基本原理及其发展情况,还介绍了ATM技术在现代通信中的应用。提出了商务移动通信ATM网络。商务移动通信ATM网络是为了使ATM网络技术能够应用于商业领域,使之成为可能是依靠ATM技术高速分组交换技术,不仅如此,ATM还可以允许建立一对多连接。ATM技术可作为支持多媒体应用和服务器访问平台以及主干网络技术的最佳选择。  关键词:ATM网络技術;ATM商务移动通信网络;AT
期刊
摘要:在Oracle的性能优化对业务数据库工作在最佳状态具有重要意义,通过对Oracle采用调整内存、磁盘输入输出和命中率等方法z进行优化过程进行探讨,得到比较满意的结果。  关键词:Oracle数据库;性能优化;内存调整;磁盘I/O调整;调整竞争  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)12-21504-02    Based on Oracle9i Da
期刊
摘要:本文在对比分析IPSec和MPLS的基础上,结合华为3COM的VPE技术论述了这两种技术结合部署的必要性和可行性,以构建全程全网的企业VPN,为基于Internet的数据传输提供所能获得的最佳总体安全解决方案。  关键词:虚拟专用网;多协议标记交换;网际协议安全  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21547-02    1 引言    虚拟专
期刊
摘要:同一网络中所有计算机的IP地址须各自不同,具有唯一性,當人们在有意无意中破坏了IP地址的这种规则,就势必产生了IP地址冲突,本文在详细介绍IP地址冲突现象的基础上,综合描述了多种预防和解决此类问题的途径,并指出各途径之间存在的特点。  关键词:网络;IP地址;冲突;MAC地址  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21571-02    Ways
期刊
摘要:本文根据Web服务器的特点,将检测Web服务器漏洞攻击的基于规范的入侵检测技术和检测脚本类型攻击的URL过滤技术相结合,设计了一种保护Web服务器的入侵检测模型WIDS,并对关键模块的实现加以说明,最后通过实例分析了该模型的工作过程。  关键词:入侵检测;基于规范的入侵检测;URL过滤技术;Web服务器  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21
期刊
摘要:从管理地区电网的实际出发,设计了一种集成化的地区电网集成信息系统。应用ASP.NET开发平台和C#语言技术,基于Web的B/S模式、以SQL Server 2000开发的开放式数据库为基础,运用网络技术综合管理与控制企业内其他开放式管理系统、实时信息系统、各部门的所有相关信息,具有各类信息统一管理、统一应用,传输方便、快捷,数据及时、准确、共享范围广等特点,并提供了BBS等功能。该系统完善了
期刊
摘要:数据库应用程序与数据库的数据访问接口有多种类型,最新的是ADO技术。本文以VB与SQL Server为平台,研究ADO对象编程技术。  关键词: ADO对象编程;VB;SQL Server  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21488-01    Discuss the ADO Object ProgrammeBase on SQL Serv
期刊
摘要:结合上海民防信息化的特点和信息化建设实践,本文提出基于存储区域网络共享的上海民防信息存储改造方案,并还介绍了数据冗余容灾存储的设计。  关键词:SAN;存储区域网络;SNIA   中图分类号:TP274文献标识码:A文章编号:1009-3044(2007)12-21486-02    Reseach on the Storage of Shanghai Civil Defense Infor
期刊
摘要:Blog是近些年来发展很迅速的一种新的基于Web的信息交流技术。电子商务自诞生以来就与计算机技术紧密相连,电子商务系统是通过互联网完成的商务交易系统。通过对Blog及其相关技术和电子商务的特点的分析研究,提出了在电子商务系统的销售环节中应用Blog的新思路、技术可行性分析,以及实现企业Blog的方法。在企业的电子商务系统中应用Blog,能够提升企业的知名度、减少企业的经营风险、提高企业的知识
期刊
摘要:论文针对Win2000 Server操作系统的系统特性,以及对常用系统组件的安全分析和组件选择,深入的论述了服务器安全配置的系列问题,以求大部分用户更深入的了解、使用Server操作系统,最大程度的提高系统的安全系数。  关键词:服务器;安全配置  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21573-02    To Make a Thorough
期刊