一致性维度与数据仓库
维度建模的数据仓库中,有一个概念叫Conformed Dimension,中文一般翻译为“一致性维度”。一致性维度是Kimball的多维体系结构(MD)中的三个关键性概念之一,另两个是总线架构(Bus Architecture)和一致性事实(Conformed Fact)。
在多维体系结构中,没有物理上的数据仓库,由物理上的数据集市组合成逻辑上的数据仓库。数据集市的建立是可以逐步完成的,最终组合在一起,成为一个数据仓库。如果分步建立数据集市的过程出现了问题,数据集市就会变成孤立的集市,不能组合成数据仓库,而一致性维度的提出正式为了解决这个问题(多个物理的数据仓库才需要一致性统一)。
一致性维度的范围是总线架构中的维度,即可能会在多个数据集市中都存在的维度,这个范围的选取需要架构师来决定。一致性维度的内容和普通维度并没有本质上区别,都是经过数据清洗和整合后的结果。
一致性维度建立的地点是多维体系结构的数据准备区。在多维体系结构的数据仓库项目组内需要有专门的维度设计师,职责就是建立维度和维护维度的一致性。在后台建立好的维度同步复制到各个数据集市。这样所有数据集市的这部分维度都是完全相同的。建立新的数据集市时,需要在后台进行一致性维度处理,根据情况来决定是否新增和修改一致性维度,然后同步复制到各个数据集市。这是不同数据集市维度保持一致的要点。
在同一个集市内,一致性维度的意思是两个维度如果有关系,要么就是完全一样的,要么就是一个维度在数学意义上是另一个维度的子集。例如,如果建立月维度话,月维度的各种描述必须与日期维度中的完全一致,最常用的做法就是在日期维度上建立视图生成月维度。这样月维度就可以是日期维度的子集,在后续钻取等操作时可以保持一致。如果维度表中的数据量较大,出于效率的考虑,应该建立物化视图或者实际的物理表。
这样,维度保持一致后,事实就可以保存在各个数据集市中。虽然在物理上是独立的,但在逻辑上由一致性维度使所有的数据集市是联系在一起,随时可以进行交叉探察等操作,也就组成了数据仓库。
2、一致性维度的交付步骤
数据整合的关键就是生成一致性维度,再通过一致性维度将来自不同数据源的事实数据合并到一起,供分析使用。通常来说,生成一致性维度有如下三个步骤:
1.标准化(Standardizing)
3、维度建模要点
选取业务处理,定义事实表的粒度,选定维度,确定事实;这四部是维度建模要点,这种方法,容易造成大量的数据烟囱,在模型管理和控制不好的情况下会造成数据与计算资源复用率低下,数据仓库数据量大量膨胀,同时存在数据模型缺乏体系性,使用数据复杂。
针对以上问题,应在于要在选取业务阶段,数据模型设计者需要具有全局和发展的视角,应该理解整体业务流程的基础上,从全局角度选取业务处理。首先数据仓库的模型设计者应该分析源系统的实体关系模型以及业务流程,选取在整体业务流程中的关键实体作为建模的基础,建立这些实体对象的数据粒度关系,因为不同粒度的数据是不能融合的一个事实表中的。通常可以从以下三个角度来建立事实表:
1)针对某个特定的行为动作,建立一个以行为活动最小单元为粒度的事实表。最小活动单元的定义,依赖于分析业务需求。比如用户的一次网页点击行为、一次网站登录行为,一次电话通话记录。这种事实表,主要用于从多个维度统计,行为的发生情况,主要用于业务分布情况,绩效考核比较等方面的数据分析。
2)针对某个实体对象在当前时间上的状况。我们通过对这个实体对象在不同阶段存储它的快照,比如账户的余额、用户拥有的产品数等,通过这种可以统计实体对象在不同的生命周期中的关键数量指标。
3)针对业务活动中的重要分析和跟踪对象,统计在整个企业不同业务活动中的发生情况。比如会员,可以执行或参与多个特定的行为活动。这种事实表是以上两种事实表的一个总结和归纳。它主要用于针对我们业务中的活动对象进行跟踪和考察。
4、关系建模与多维建模的关系
关系模型 |
多维模型 |
|
访问 |
间接访问最佳 |
直接访问最佳 |
起源 |
数据模型设计方法 |
用户请求塑造 |
规模 |
企业级 |
部门级 |
灵活性 |
好 |
不好 |
性能 |
不理想 |
非常高效 |
使用 |
间接访问 |
直接访问 |
变化 |
支持将来未知需求 |
支持适度变化需求 |
集市应用 |
从属数据集市 |
独立数据集市 |
5、几个概念
维度(Dimension):
通俗的讲就是分析目标对象所采用的分析角度。维度是指一种视角,是一个判断、说明、评价和确定一个事物的多方位、多角度、多层次的条件和概念。
维度将业务比作一个立方体,产品维、时间维、地点维分别作为不同的坐标轴,而坐标轴的交点就是一个具体的事实。
维度表是维度属性的集合,是分析问题的一个窗口,是人们观察数据的特定角度,属性的集合构成一个维。
事实表:
事实数据表包含描述业务(例如产品销售)内特定事件的数据。
事实表是数据仓库结构中的中央表,它包含联系事实与维度表的数字度量值和键。
属性:
产品维度表:Prod_id, Product_Name, Category, Color, Size, Price
时间维度表:TimeKey, Season, Year, Month, Date
参考文献:Ralph Kimball, 数据仓库生命周期工具箱:设计、开发和部署数据仓库的专家方法 第5章