维度建模

概念

维度表:说明数据,维度是指可指定不同值的对象的描述性属性或特征。例如,地理位置的维度可以包括“纬度”、“经度”或“城市名称”。“城市名称”维度的值可以为“旧金山”、“柏林”或“新加坡”。
维度是现实世界中的对象或者概念。

upload successful

事实表:其实质就是通过一些指标值和各种维度外键来确定一个事实的。
发生在现实世界中的操作型事件,其所产生的可度量数值,存储在事实表中。从最低的粒度级别来看,事实表行对应一个度量事件,反之亦然。
事实表的关键是度量值
dw架构中的中央表,它包含联系事实与维度表的数字度量值和键。
upload successful

事务事实表/原子事实表/交易事实表
聚合事实表
周期快照事实表
累积快照事实表
参考:
https://blog.csdn.net/weixin_42478648/article/details/85290881

维度模型也有着一些缺点,比如数据的一致性很难保证,数据的冗余,大量的维度信息处理等,但这些相对于有点来讲都是可接受的,而且也可以通过其他方式避免和简化的。
但是有了总线架构和一致性维度、一致性事实就不一样了
以维表为总线,事实表以维表为基础的总线矩阵,意味着建设出来的架构正是总线式架构。

总线架构

一致性维度就好比企业范围内的一组总线,不同数据集市的事实的就好比插在这组总线上的元件。这也是称之为总线架构的原因。
实际设计过程中,我们通常把总线架构列表成矩阵的形式,其中列为一致性维度,行为不同的业务处理过程,即事实,在交叉点上打上标记表示该业务处理过程与该维度相关。这个矩阵也称为总线矩阵(Bus Matrix)。

upload successful
总线矩阵的每一行代表一个业务过程,并且至少定义了一个事实表和相应的维度。通常,总线矩阵的一行会产生几个相关的事实表,由此可以从不同角度跟踪业务过程。

总线矩阵是企业商业智能数据的路标,必须为任何企业范围的DW/BI工作创建总线矩阵。对数据建模人员和数据管理员来说,创建得到企业认可的一致性维度是一项艰巨的挑战。使用单个维度表来描述企业的产品、顾客或设备,意味着公司必须认同每个维度表的定义方式,包括属性列表、属性名称、体系结构及定义和派生表中每个属性所需的业务规则。从企业战略来看,这是艰巨的工作,其难度与员工人数和部门数量成正比。但是,这一过程是必需的。

一致性维度

在多维体系结构中,没有物理上的dw,由物理上的数据集市组合成逻辑上的dw。而且数据集市的建立是可以逐步完成的,最终组合在一起,成为一个dw。如果分步建立数据集市的过程出现了问题,数据集市就会变成孤立的集市,不能组合成dw,而一致性维度的提出正式为了解决这个问题。
一致性维度的范围是总线架构中的维度,即可能会在多个数据集市中都存在的维度,这个范围的选取需要架构师来决定。
一致性维度的内容和普通维度并没有本质上区别,都是经过数据清洗和整合后的结果。
一致性维度建立的地点是多维体系结构的后台(Back Room),即数据准备区。在多维体系结构的dw项目组内需要有专门的维度设计师,他的职责就是建立维度和维护维度的一致性。在后台建立好的维度同步复制到各个数据集市。这样所有数据集市的这部分维度都是完全相同的。
建立新的数据集市时,需要在后台进行一致性维度处理,根据情况来决定是否新增和修改一致性维度,然后同步复制到各个数据集市。这是不同数据集市维度保持一致的要点。
在同一个集市内,一致性维度的意思是两个维度如果有关系,要么就是完全一样的,要么就是一个维度在数学意义上是另一个维度的子集。例如,如果建立月维度话,月维度的各种描述必须与日期维度中的完全一致,最常用的做法就是在日期维度上建立视图生成月维度。这样月维度就可以是日期维度的子集,在后续钻取等操作时可以保持一致。如果维度表中的数据量较大,出于效率的考虑,应该建立物化视图或者实际的物理表。这样,维度保持一致后,事实就可以保存在各个数据集市中。虽然在物理上是独立的,但在逻辑上由一致性维度使所有的数据集市是联系在一起,随时可以进行交叉探察等操作,也就组成了dw。

一致性事实

在建立多个数据集市时,完成一致性维度的工作就已经完成了一致性的80%-90%的工作量。余下的工作就是建立一致性事实。 一致性事实和一致性维度有些不同,一致性维度是由专人维护在后台(Back Room),发生修改时同步复制到每个数据集市,而事实表一般不会在多个数据集市间复制。
需要查询多个数据集市中的事实时,一般通过交叉探查(drill across)来实现。 为了能在多个数据集市间进行交叉探查,一致性事实主要需要保证两点。第一个是KPI的定义及计算方法要一致,第二个是事实的单位要一致性。如果业务要求或事实上就不能保持一致的话,建议不同单位的事实分开建立字段保存。

这样,一致性维度将多个数据集市结合在一起,一致性事实保证不同数据集市间的事实数据可以交叉探查,一个分布式的dw就建成了。

多维体系结构

Multidimensional Architecture(MD)有三个关键性概念:总线架构(Bus Architecture),一致性维度(Conformed Dimension)和一致性事实(Conformed Fact)。
多维体系结构主要包括后台(Back Room)和前台(Front Room)两部分。
1、后台也称为数据准备区(Staging Area),是MD架构的最为核心的部件。
在后台,是一致性维度的产生、保存和分发的场所。同时,代理键也在后台产生。
2、前台是MD架构对外的接口,包括两种主要的数据集市,一种是原子数据集市,另一种是聚集数据集市。
原子数据集市保存着最低粒度的细节数据,数据以星型结构来进行数据存储。
聚集数据集市的粒度通常比原子数据集市要高,和原子数据集市一样,聚集数据集市也是以星型结构来进行数据存储。
前台还包括像查询管理、活动监控等为了提供dw的性能和质量的服务。
在多维体系结构(MD) 的dw架构中,主导思想是分步建立dw,由数据集市组合成企业的dw。但是,在建立第一个数据集市前,架构师首先要做的就是设计出在整个企业 内具有统一解释的标准化的维度和事实,即一致性维度和一致性事实。而开发团队必须严格的按照这个体系结构来进行数据集市的迭代开发。

维度模型设计过程

选择业务过程,即选择主题
声明粒度
确定维度
确定事实

星座模型

星座模型是星型模型延伸而来,星型模型是基于一张事实表的,而星座模型是基于多张事实表的,而且共享维度信息。 通过构建一致性维度,来建设星座模型,也是很好的选择。比如同一主题的细节表和汇总表共享维度,不同主题的事实表,可以通过在维度上互相补充来生成可以共享的维度。
upload successful
以维表为总线,事实表以维表为基础的总线矩阵,意味着建设出来的架构正是总线式架构。