维度是维度建模的基础和灵魂。在维度建模中,将度量称为“事实” ,将环境描述为“维度”,维度是用于分析事实所需要的多样环境。
维度所包含的表示维度的列,称为维度属性。维度属性是查询约束条件、分组和报表标签生成的基本来源。
例如,在分析交易过程时,可以通过买家、卖家、商品和时间等维度描述交易发生的环境。
维度的作用一般是查询约束、分类汇总以及排序等。
如何获取维度或维度属性?如上面所提到的,一方面,可以在报表中获取;另一方面,可以在和业务人员的交谈中发现维度或维度属性。因为它们经常出现在查询或报表请求中的“按照”( by )语句内。
维度使用主键标识其唯一性 。主键有两种:代理键和自然键,它们都是用于标识某维度的具体值。但代理键是不具有业务含义的键, 一般用于处理缓慢变化维;自然键是具有业务含义的键。
维度的基本设计方法
第一步:选择维度或新建维度。 在企业级数据仓库中必须保证维度的唯一性。
第二步:确定主维表。此处的主维表一般是 ODS 表,直接与业务系统同步。
第三步:确定相关维表。
第四步 :确定维度属性。 第一个阶段是从主维表 中选择维度属性或生成新的维度属性;第二个阶段是从相关维表中选择维度属性或生成新的维度属性。
维度的层次结构
维度中的一些描述属性以层次方式或一对多的方式相互关联 。层次的最底层代表维度中描述最低级别的详细信息,最高层代表最高级别的概要信息。维度常常有多个这样的嵌入式层次结构。
规范化和反规范化
当属性层次被实例化为一系列维度,而不是单一的维度时,被称为雪花模式。大多数联机事务处理系统( OLTP )的底层数据结构在设计时采用此种规范化技术,通过规范化处理将重复属性移至其自身所属的表中,删除冗余数据。这种方法用在 OLTP 系统中可以有效避免数据冗余导致的不一致性。
将维度的属性层次合并到单个维度中的操作称为反规范化。分析系统的主要目的是用于数据分析和统计,
采用雪花模式,用户在统计分析的过程中需要大量的关联操作,使用复杂度高,同时查询性能很差;而采用反规范化处理,则方便、易用且性能好。
采用 雪花模式,除了可以节约一部分存储外,对于 OLAP 系统来说没有其他效用 。 而现阶段存储的成本非常低。出于易用性和性能的考虑,维表一般是很不规范化的 。
11.7 聚集型事实表
聚集主要是通过汇总明细粒度数据来获得改进查询性能的效果。通过访问聚集数据,可以减少数据库在响应查询时必须执行的工作量,能够快速响应用户的查询,同时有利于减少不同用户访问明细数据带来的结果不一致问题。