什么是杂项维度?

杂项维度是对低粒度标志和指标的分组。

形象的解释就是将一些具有有限枚举值的字段值拼接在一起作为一行或者是多个字段的可能值不进行拼接而是作为多列组合,最后在杂项维度行中呈现。

什么是杂项维度?_第1张图片

事务型商业过程通常产生一系列混杂的、低基数的标志位或状态信息。与其为每个标志或属性定义不同的维度,不如建立单独的将不同维度合并到一起的杂项维度。这些维度,通常在一个模式中标记为事务型概要维度,一般不需要所有属性可能值得笛卡尔积,但应该至少包含实际发生在源数据中得组合值(不需要所有可能值的笛卡尔组合,至少要包括经常发生的几种状态的可能值组合)。

 

例如,在销售订单中,可能存在很多离散数据(yes-no这种开关类型的值),如:
(1)verification_ind(如果订单已经被审核,值为yes)
(2)credit_check_flag (表示此订单的客户信用状态是否已经检查)
(3)new_customer_ind(如果这是新客户的首个订单,值为yes)
(4)web_order_flag(表示一个订单是在线上订单还是线下订单)
这类数据通常用于销售分析,其特点是属性可能值很少(枚举值较少)。

在建模复杂的操作源系统时,经常会遭遇大量五花八门的标志或者状态信息,他们包含小范围的离散值。

处理这些较低基数的标志或者状态位可以采用以下几种方法。
1.忽略法,但是你也不知道这些维度信息到底有没有用,所以不要轻易剔除或者忽略。
2.冗余法,将这些维度信息冗余到事实表中。(退化)
3.每个维度字段单独建立一张维表,将代理键放在事实表中,但是这种方式比较复杂,容易出错,关联太多。
4.将标志位字段存放在主键字段的维表中,但是这种方式会使维表和事实表的行数一样多。
5.杂项维度:处理这些标志位的适当替换方法是将它们包装为一个杂项维度,其中放置各种离散的标志或状态数据。

 

杂项维度个人理解:比如不同的字段,假如有3个:是否学生,是否运动,是否南方人,这三个字段的枚举值按照实际发生在元数据中的值进行拼接到一个字段或者分别作为三个字段在一行中呈现(应该是有9种组合。)。

杂项维度在kimball的书中如下描述:

什么是杂项维度?_第2张图片

你可能感兴趣的:(数据建模)