主页 | 专题新闻 | 杂志期刊 | 订阅杂志 | 申请赠阅 | 技术活动 | 技术社区 | FAQ | 招聘信息 | 客户服务
WinITPro首页> 新闻浏览

渐变维度转换及其实现


2007-8-6 15:55:29 作者:陈立

      在SQL Server 2005中,BI(Business Intelligence,商业智能)模块功能得以大大的增强。其中有一个重要的模块,被称为SQL Server Integrated Services(SSIS),即SQL Server数据库集成服务,其主要作用是对业务数据库或OLTP数据库中的数据进行抽取、转换和加载(Extract-Transform- Load,ETL)到数据仓库(Data Warehouse),以便针对需求对业务数据进行下一步的数据仓库建模和数据分析等工作。
       渐变维度转换(Slowly Changing Dimension)是SSIS集成服务中的一个重要组件,本文主要探讨实际项目的实施过程中遇到的渐变维度转换组件效率低下的问题并提出一种解决方法。
 
      渐变维度转换简介
      首先介绍一下维度的概念。维度是一种层次关系,对应于客观世界,也就是人们观察事物的角度。在数据仓库中,一个实体的多个属性定义为该实体的维度,使得用户能对不同维度上的数据进行比较。
维度大致的分为三类:稳定维度、渐变维度、快变维度。在SQL Server 2005的SSIS中,提供了对渐变维度的转换处理。
      从较长的一个时间段来看,在数据仓库中,维度表经常会随时间而发生一些改变,为了适应这种需求,也就必须为每个维度属性指定处理变化的策略。SSIS中的渐变维度转换组件的主要功能就是协调数据仓库中维度表中的记录更新和插入,如图1。

在SSIS中,渐变维度转换提供的主要功能有:
  • 将传入行与查找表中的行匹配,以标识新行和现有行。
  • 在不允许更改时,标识含有更改的传入行。
  • 标识需要更新的推断成员记录。
  • 标识包含需要插入新记录和更新过期记录的历史更改的传入行。
  • 检测包含需要更新现有记录(包括过期记录)的更改的传入行。
常见的使用情况有以下三类:
1)   改写维度记录的属性值:其特点是容易实现,比较方便,但不保存属性变化历史,故不能对旧属性的历史数据进行任何的维护。
2)   增量式添加维度记录行:其特点是容易区分事实表的历史,准确跟踪维度属性变化,但若针对的是海量数据,同时全部是变化的历史属性数据转换,将产生大量的历史数据,使得维度表数据量剧增。
3)   添加指定的维度列:可以方便地按需求建立新的属性关系,若中间关联的属性过多可能会急剧的影响性能。
在实际项目工作中,增量式添加维度记录行最为常用。
 
      增量式添加维度记录行——维度渐变情况分析
      假定从一张表(源表)向另一张表(目标表)转换数据,实现渐变维度转换常用的增量式添加维度记录功能。源表和目标表的初始情况如图2。
 
图2目标表列与源表列对应关系如表1:
目标表列
aa1
bb1
cc1
ee1
源表列
aa
bb
cc
ee
表 1:目标表列与源表列对应关系
 
主要考虑下面几种维度渐变情况:
1)  通过与目标表逐行对比,若源表中存在目标表中没有的记录,则该数据行应属于新增加的记录,此情况下将相应的新增记录插入到目标表

全文共3012字节  

 
新闻更新
·2010年5月/6月杂志目录及文中脚本下载
·2010年3月/4月合订本--目录及文中脚本
·Windows Server 2008 R2中的Hyper-V新特性
·你所需要了解的SQL Server 2008 R2
·微软公司的Astrid McClean详解Exchange Server 201
·从Windows XP升级到Windows 7
·Windows 7后台揭密
·可控自助式商务智能的必要性
·利用DevCon远程安装设备驱动
·为无处不在的用户提供数据安全
[more...]  
© <<Windows IT Pro Magazine 国际中文版>> All Rights Reserved. 京ICP证05037048
联系地址:北京市海淀区中关村南大街2号数码大厦A座617室┊邮编:100086
电话:010-51727607 ┊传真:010-51727864
发行部:Readers#hintoninfo.com┊市场部:AE#hintoninfo.com┊编辑部:Editor#hintoninfo.com (使用时,请将#换成@)