168大数据

标题: 什么是维度退化? [打印本页]

作者: 168主编    时间: 2021-1-24 14:02
标题: 什么是维度退化?
本帖最后由 168主编 于 2021-1-24 14:28 编辑

什么是维度退化(DegenerateDimension,DD)
将维度退化到事实表中,减少事实表和维度表的关联

在维度建模的数据仓库中,有一种维度叫Degenerate Dimension,中文一般翻译为“退化维度”。这种退化维度一般都是事务的编号,如订单编号、发票编号等。这类编号需要保存到事实表中,但是不需要对应的维度表,所以称为退化维度。

退化维度是维度建模领域中的一个非常重要的概念,它对理解维度建模有着非常重要的作用,尤其是对维度建模的入门者。

特点:

1.没有对应的维度表的维度。

2.存储在事实表中

退化维度经常会和其他一些维度一起组合成事实表的主键。在Kimball提出的维度建模中,事实表应该保存最细粒度的数据。所以对于象销售单这样的事实表来说,需要销售单编号和产品来共同作为主键,而不能用销售日期、商场、产品等用来分析的维度共同作为主键。
退化维度在分析中可以用来做分组使用。它可以将同一个事务中销售的产品集中在一起。
因为事实表主键的成员一般都是维度值所组成,但退化维度虽然也属于主键值,但没有单独的维度表,所以叫退化维度。



例子:

维度退化是指对于简单的维度来说,不创建自己的维表,例如,下面的事实表:

product_idtime_idpayment_methodcustomer_idstore_iditem_countdollars
5520040106Credit123223$3.54
7820040106Cash89221$20.00
19920040107ATM3222$2.99
5520040106Cash122221$1.18

对于其中的维度支付方式,假设我们创建了一个维表,这个维表几乎是没有意义的。如果单独增加了这样一个维表,那么可能会导致一定的连接成本。








欢迎光临 168大数据 (http://www.bi168.cn/) Powered by Discuz! X3.2