维度表是用于描述环境的。谁、什么、哪里、何时、如何、为什么等等。
列多,行少,多文本列。
维度属性用于查询约束、分组、报表标识等。
维度表中尽量使用文本描述。
数据仓库的好坏直接取决于维度属性的设置,DW/BI的分析能力直接取决于维度属性的质量和深度。
维度代理键:维度表的主键,不能采用操作型系统的自然键,避免出现不同业务系统的兼容性问题;
为什么用代理键?
- 解决操作型系统ID重用的问题
- 集成多个源系统
- 使用自增整数改进性能
- 特点的代理键可以用来记录不在操作型系统中的维度条件,如匿名用户等
- 支持维度属性变化跟踪
退化维度:除了主键没有其它内容;所以没有维度表,只在事实表中出现,但是是维度项;如零售中的POS事务号码,可以标识哪些事务是在一个事务中发生。
退化维度没有属性,但是维度值可以用来比较是否相同,这也是其意义所在。
维度属性中的空值最好用Unknow或者not applicable。
支架维度:被其它维度引用的维度称为支架维度;比如银行账户维度表中的开户日期字段引用日期维度表。 构成雪花模型。常用作支架维度的是日期。
杂项维度:每个维度的不同值都比较少,而且互相之间往往有关联,所以把它们看成是一组,当成一个维度来用,减少事实表中的外键数量。
如125页给出的,将支付类型、支付类型分组、订单类型、授信标识当成一组杂项维度。
杂项维度应该是针对一个事实表而言的,如果杂项维度中包含在整个数据仓库中通用的维度,那么反而会因为优化了一个事实表的构建损害了数据仓库中的一致性维度。