大数据--数据仓库--维度退化

2.3 维度退化

        不可能将所有与业务相关的维度分类到一个紧凑的表集合中。类似这样的情况,将一个或者多个维度存储到事实表中是合适的选择。采用这种方法,存储事实表中的维度列被称为退化维度,退化维度的过程称为维度退化。

        更为规范的定义是:当一个维度没有数据仓库需要的任何数据的时候就可以退化此维度,需要把退化的相关数据迁移到事实表中,然后删除退化的维度。与其他存储在维度表中的维度一样,退化维度也可以进行事实表的过滤查询,实现聚合操作等。那么究竟怎么定义退化维度呢?比如说订单id,这种量级很大的维度,没有必要用一张维表来进行存储,而我们进行数据查询或者数据过滤的时候又非常需要,所以这种就冗余在事实表里面,这种就叫退化维度。注意:citycode这种我们也会冗余在事实表里面,但是它有对应的维度表,所以它不是退化维度。

        Kimball书中对退化维度的描述为:操作型事务控制号码,例如:订单号码,发票号码,提货单号码通常产生空的维度,经常保存为事实表中的退化维度。退化维度是没有对应维度表的维度键。

        维度退化在事实表中有利于使用,一般一个维度键都有对应的维表,如果退化在事实表中,可以减少关联次数,并且退化维度可以用于group by操作,进行分组统计。

        核心理解:退化维度没有对应对应的维表,没有修饰它的属性,但是呢,通过它你可以获取一些内容,一些事实,比如说订单编号,你可以通过它获得这个订单里面包含哪些商品,对应的付款人是谁等。注意,对于不变维度,可以进行退化,对于缓慢变化维度,视具体情况而定,如果忽略缓慢变化维度的影响可以退化,否则不建议退化。

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值