数据仓库中维度变化和事实变化的处理方法

. 维度慢慢改变。

你的应用必须反映出移植到仓库中的数据源所发生的数据变化。维表中的数据特别容易变化。但你怎么维护记录的历史变化呢?

  第一个也是最简单的方法是重写现有的记录而不跟踪变动。幸运的是,这个方法被许多维度所接受。例如,如果一个部门名称从“财务”变为“财务和会计”,你很可能并不需要记录这种历史变化。但是,从客户和学生的角度看,常常有必要保持跟踪姓名、婚姻状态、教育程度和其它属性的变化——你的应用必要能够获得当前的以及历史的数值。

  管理维度慢慢改变的第二个方法是数值发生变化时创建一个新的记录,并将旧的记录标记为旧记录。

  第三个也是最后的一个方法是维护在维表的同一行中不同列的变化域的历史数值。

  到此,我们已经介绍了如何处理数据仓库维度中的值的变化。但是分析服务维度怎么处理呢?要反映属性值的变化你必须重新处理维度。但是如果你完全处理维度,你就不得不也重新处理多维数据集,如果你的多维数据集包含大量数据,那这就可能不太现实了。幸运的是你可以经常使用渐进式更新(过程更新)选项来避免重新处理多维数据集。

   事实变化。

通常人们认为事实表中的记录是静态的——一旦这条记录录入到了仓库中你的工作就结束了,是吗?不幸的是这个回答是“它取决于。”在某些情况下像在一个数据仓库跟踪病人的住院情况,所有的记录通常都是静态的。如果你从1月1日到2月5日住院,那这条记录不太可能改变。

  但是考虑到零售行业,所有的销售都不是最终的——我肯定你知道有些人经常将它们购买的货物因为各种原因而退回商店。一些公司管理这种交易为一系列信用和负债来结算每笔交易。但在其它的情况下你必须更新或删除事实表记录,甚至在它们添加到了数据仓库之后。例如,如果一个股票交易记录不正确,用一个相反的交易来结算是不能接受的。还有另一个问题要考虑:你可能不希望你的客户知道你的交易系统中存在的问题。甚至你希望他们只在数据被修正后才看到数据。

  处理事实变化的一个方法是将数据放在暂存区域直到它经过了质量检查,然后将其移植到仓库中。然而有时甚至是最全面的测试也无法捕获数据源中的所有错误,你可能需要通过处理这些包含错误数据的部分来更新多维数据集。这就是为什么有必要保持你的分析服务部分尽可能的小以便处理可以相对快一些。

  另一个处理这个挑战的方法是采用一个回写分区。采用多维数据集回写,你没有真的改变关系数据仓库中的数据;而是在一个单独的分区中添加了一条记录。当用户查询一个特殊的测量值组时,分析服务将只读分区的数据和回写分区的数据结合起来,然后显示结果。当然,执行这样的查询计算会额外增加分析服务器的执行时间,并会造成性能下降。

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11423276/viewspace-979728/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11423276/viewspace-979728/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值