渐变维度(Slowly Changing Dimension)及其处理方法

本文探讨了渐变维度的概念及其在业务过程中的应用,包括如何在数据仓库的ETL过程中处理这类维度表,提供了三种不同的处理方法,并分析了各自的优势与局限。
渐变维度(Slowly Changing Dimension)及其处理方法
要讨论什么是渐变维度,或者缓慢变化维度,就要先说说什么是维度。虽然经常挂在嘴边的词,但解释起来确实有难度,更不要说给出一个概念了。我们平时提到的0维的点,一维的线,二维平面,三维的立体空间已经挺复杂了,撇开不提,我们看看BI领域的维度是什么意思。
个人的理解,维度就是观察数据的不同角度。比如有一个魔方,我们从一个面看是绿色,转个角度,看起来就是红色了。现在举一个具体业务的例子,有一个超市的销售数据,我们就可以有不同的角度去看,从时间角度看,一个月来每天的销售额是上升的,还是下降的;从产品角度看,那种产品占销售分额最多,是食品还是日用品。这个例子中的时间和产品就分别是观察销售数据的维度,与此类似,也可以有营业员维度,价格维度,折扣维度等等。存储维度信息的表就叫做维度表。
维度分为三类,固定维度,渐变维度,和快变维度,今天我们仅介绍渐变维度,顾名思义,渐变维度就是在业务进行过程中,会发生变化,但又不会频繁变化的维度。比如我们企业中的部门,可能不时地会有机构调整,部门就会发生变化,但是又不会天天进行机构调整,因此我们可以把部门这个维度看作缓慢变化维。把存放部门这个维度的表,叫做缓慢变化维度表。
那么在数据仓库的ETL过程中应该怎么处理这种渐变的维度表呢?就以前面提到的维度表为例,我们创建表如下:
   Dept (Dept_id, Dept_name)
有数据如下:
              1         财务部
              2         市场部
              3         人事部
那么我们部门调整的时候,把3改为人力资源部了,那么第一种处理方法就是,直接修改Dept表,修改后的表中数据如下:
              1         财务部
              2         市场部
              3         人力资源部
这样处理的好处是,处理简单快捷,减少空间消耗和管理难度。但是其缺点是不能记录维度历史,需要分期部门变化前的数据情况的时候便无从下手了,因此有了第二种处理办法,增加一个列,把部门变化的历史记录下来,修改以后的数据如下:
             Dept_id  Dept_name  Dept_name_new
              1           财务部          财务部
              2           市场部          市场部
              3           人事部          人力资源部
这种方法的好处是,可以记录下来维度变化的历史,方便分析历史数据,但其缺点是需要修改表结构,增加新列,那么每当部门变化的时候都需要变更表,维护的工作量很大。那么我们现在看一下第三种方法。
我们可以在表中增加列,部门的状态,状态时间如下
     Dept_id  Dept_name  Status   Status_time            Dept_pre_id
                1         财务部           A          2009-1-1              
                2         市场部           A          2009-1-1
                3         人事部           U          2009-2-26
                4         人力资源部      A          2009-2-26                3
这样就能记录到维度改变的历史,并且不用经常的修改表结构,只需要在维度变化的时候,更改表中数据就可以了。 这种方法的缺点是当维表数据量大的时候,会导致访问效率降低和存储空间的消耗增加。
1.什么是逻辑数据映射?它对ETL项目组的作用是什么? 2.在数据仓库项目中,数据探索阶段的主要目的是什么? 3.如何确定起始来源数据? 架构 4.在ETL过程中四个基本的过程分别是什么? 5.在数据准备区中允许使用的数据结构有哪些?各有什么优缺点? 6.简述ETL过程中哪个步骤应该出于安全的考虑将数据写到磁盘上? 抽取 7.简述异构数据源中的数据抽取技术。 8.从ERP源系统中抽取数据最好的方法是什么? 9.简述直接连接数据库和使用ODBC连接数据库进行通讯的优缺点。 10.简述出三种变化数据捕获技术及其优缺点。 数据质量 11.数据质量检查的四大类是什么?为每类提供一种实现技术。 12.简述应该在ETL的哪个步骤来实现概况分析? 13.ETL项目中的数据质量部分核心的交付物有那些? 14.如何来量化数据仓库中的数据质量? 建立映射 15.什么是代理键?简述代理键替换管道如何工作。 16.为什么在ETL的过程中需要对日期进行特殊处理? 17.简述对一致性维度的三种基本的交付步骤。 18.简述三种基本事实表,并说明ETL的过程中如何处理它们。 19.简述桥接表是如何将维度表和事实表进行关联的? 20.迟到的数据对事实表和维度表有什么影响?怎样来处理这个问题? 元数据 21.举例说明各种ETL过程中的元数据。 22.简述获取操作型元数据的方法。 23.简述共享业务元数据和技术元数据的方法。 优化/操作 24.简述数据仓库中的表的基本类型,以及为了保证引用完整性该以什么样的顺序对它们进行加载。 25.简述ETL技术支持工作的四个级别的特点。 26.如果ETL进程运行较慢,需要分哪几步去找到ETL系统的瓶颈问题。 27.简述如何评估大型ETL数据加载时间。 实时ETL 28.简述在架构实时ETL时的可以选择的架构部件。 29.简述几种不同的实时ETL实现方法以及它们的适用范围。 30.简述实时ETL的一些难点及其实现方法。 ......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值