维度建模(dimensional modeling)是数据仓库建设中的一种数据建模方法,将数据结构化的逻辑设计方法,由Kimball 最先提出这一概念。按照事实表,维表来构建数据仓库,数据集市。
主要有星型模型、雪花模型。
优点:
2、星型连接模式的可预测框架能够忍受不可预知的用户行为变化。
3、具有非常好的可扩展性,以便容纳不可预知的新数据源和新的设计决策。可以很方便在不改变模型粒度情况下,增加新的分析维度和事实,不需要重载数据,也不需要为了适应新的改变而重新编码。较好的扩展性意味着以前的所有应用都可以继续运行,并不会产生不同的结果。
缺点:
1、由于在构建星型模式之前需要进行大量的数据预处理,因此会导致大量的数据处理工作。而且,当业务发生变化,需要重新进行维度的定义时,往往需要重新进行维度数据的预处理。而在这些与处理过程中,往往会导致大量的数据冗余。
2、另外一个维度建模法的缺点就是,如果只是依靠单纯的维度建模,不能保证数据来源的一致性和准确性,而且在数据仓库的底层,不是特别适用于维度建模的方法。
维度建模的数据仓库中,有一个概念叫Bus Architecture,中文一般翻译为“总线架构”。总线架构是Kimball的多维体系结构(MD)中的三个关键性概念之一,另两个是一致性维度(Conformed Dimension)和一致性事实(Conformed Fact)。
一致性维度就好比企业范围内的一组总线,不同数据集市的事实的就好比插在这组总线上的元件。这也是称之为总线架构的原因。
实际设计过程中,我们通常把总线架构列表成矩阵的形式,其中列为一致性维度,行为不同的业务处理过程,即事实,在交叉点上打上标记表示该业务处理过程与该维度相关。这个矩阵也称为总线矩阵(Bus Matrix)。
总线矩阵提供一种分解企业DW/BI规划任务的合理方式,行是业务过程,列是公共维度(一致性维度),图表中的X表示的是哪些列与哪些行有关系,也表示这一个业务过程需要有哪些公共维度。
如下图:
1、选择业务过程
业务过程是组织完成的操作型活动。业务过程事件建立或获取性能度量,并转换为事实表中的事实。多数事实表关注某一业务过程的结果。过程的选择是非常重要的,因为过程定义了特定的设计目标以及对粒度,维度,事实的定义。每个业务过程对应企业数据仓库总线矩阵的一行。
2、声明粒度
声明粒度是维度设计的重要步骤。在选择维度或事实前必须声明粒度,因为每个候选维度或事实必须与定义的粒度保持一致。在所有维度设计中强制实行一致性是保证BI应用性能和易用性的关键。在从给定的业务过程中获取数据时,原子粒度时最低级别的粒度。最好从原子级别粒度开始设计,因为原子粒度能够承受无法预期的用户查询。针对不同的事实表粒度,要建立不同的物理表,在同一事实表中不要混用多种不同的粒度。
3、确认维度
维度围绕某一业务过程事件所涉及的谁、什么、何处、何时、为什么、如何等背景。维度表包含BI应用所需要的用于过滤及分类事实的描述性属性。牢牢掌握事实表的粒度,就能够将所有可能存在的维度区分开。当与给定的事实表关联时,任何情况都能保证维度表唯一值。
4、确认用于度量的事实
事实设计来自业务过程事件的度量,基本上都是以数量值表示。一个事实表行与按照事实表粒度描述的度量事件之间存在一对一关系,因此事实表对应一个物理可观察的事件。在事实表内,所有事实只允许与生命的粒度保持一致。
5、确认所需的冗余维度
额外的为减少下游使用时需要多次关联的场景所增加的冗余维度。
原文:https://www.cnblogs.com/dangjf/p/14628146.html