什么是数据仓库的维度建模?详解数仓搭建的五个组件两类模型!

文 | 商业智能BI相关文章 阅读次数:464 次浏览
2023-12-11 9:28:18

上一篇文章中,我们对企业级数据仓库的建设目标进行了分析与汇总——为了提高企业决策制定的权威和可信、减轻数据部门的处理压力、形成统一、稳定的数据口径与标准,现今希望进行数字化转型的企业都亟需建设数据仓库。

《数据仓库建设为何迫切?企业建设数据仓库的目标都有哪些?》>>>>

在这篇文章里,我们将要介绍数据仓库维度建模的基本概念,盘点现在流行的数据仓库的设计方法,即数据仓库的维度建模样式,并一一列举它们的优劣势。读完本文后,企业可以根据自身的需求,选择适合的维度模型样式,进行数据仓库的规划与建设。

一、什么是维度建模?

维度建模是一种设计和组织数据仓库的方法,旨在提供对业务数据的有效查询和分析支持。该方法主要关注如何结构化数据,使得用户能够轻松理解、检索和分析数据。至今,维度建模一直是展现分析数据的首选技术,这一观点之所以被广泛接受,重点就在于它满足了以下两点业务对数据仓库的核心需求:

  • 以商业用户可理解的方式发布数据。
  • 提供高效的查询性能。

但维度建模也并不是一种新技术,早期主要用于简化数据库。50多年来,经过大量案例的考验,IT组织、行业顾问和商业用户自然而然地被这种“以单一维度结构满足人们基本需求”的简单性所吸引。

简单性至关重要,毕竟以具体、有形的方式展示数据集是提高可理解能力的关键。举例来说,如果一个业务经理描述业务为:“我们在各种不同的市场销售产品,并不断度量自身的经营表现。”维度设计者通过理解和分析,了解到业务重点是产品、市场、时间,因此就将业务数据标识为三维,即产品、市场和时间。

爱因斯坦曾说:“凡事应尽量简单,直到不能再简单为止。”从简单的数据模型开始,便是保持设计简单性的基础,若从复杂模型出发,最终会导致模型复杂过度,从而影响查询性能,商业用户也会感到不适。

二、维度建模中包含的重要组件

在维度建模中,主要的概念和组件包括:

1. 事实表(Fact Table):事实表是数据仓库中的核心表,包含了与业务过程相关的数值型度量或指标。事实表中的每一行通常表示一个业务事件或交易,并与一个或多个维度表相关联。在实际应用时,应该尽量将来源于同一个业务过程的底层度量结果存储于一个维度模型中。

事实表(Fact Table)

2. 维度(Dimension):维度是描述业务过程的属性或特征,用于对事实进行分类和分组。维度包括维度表中的各个字段,例如日期维度中的年、月、日等。

3. 维度表(Dimension Table):维度表包含了描述事实表中度量的上下文信息,它们用于描述与“谁、什么、哪里、何时、如何、为什么”有关的事件,用于对事实进行分组和筛选的属性,例如时间、地点、产品、客户等。

 维度表(Dimension Table)

4. 层次结构(Hierarchy):维度可以具有层次结构,即组织成多个级别的数据。例如,时间维度可以包含年、季度、月等层次。

5. 度量 / 原子指标(Measure):原子指标和度量含义相同,是事实表中的数值型数据,表示业务过程的性能或结果,是用户在数据仓库中分析的关键指标。

多数情况下,数据仓库的好坏直接取决于维度属性的设置;DW/BI环境的分析能力直接取决于维度属性的质量和深度,强大的维度属性带来的回报是健壮的分片-分块分析能力。为维度属性提供详细的业务术语耗费的精力越多,效果就越好。为属性列填充领域值耗费的精力越多,效果就越好。为确保属性值的质量耗费的时间越多,效果就越好。

三、维度模型样式

维度模型一般有两种重要的样式:星型模型、雪花模型。

1. 星型模式

星型模式

星型模式是维度模型最简单的形式,也是数据仓库以及数据集市开发中使用最广泛的形式。一个星型模式中可以有一个或多个事实表,每个事实表引用任意数量的维度表。星型模式的物理模型像一颗星星的形状,中心是一个事实表,围绕在事实表周围的维度表表示星星的放射状分支。

优势:

  • 查询性能高:星型模型在查询性能上表现优秀。由于维度表与事实表之间的简单连接,查询通常更加直观和高效。
  • 易于理解:星型模型的结构相对简单,易于理解和维护。这使得业务用户更容易对数据进行理解和分析。
  • 灵活性:星型模型提供了良好的灵活性,可以轻松地添加、删除或修改维度,以满足业务变化的需求。
  • 容易扩展:星型模型的设计使得数据仓库易于扩展。新的维度可以简单地添加到模型中,而不会显著影响现有结构。
  • 适用于特定领域:星型模型特别适用于特定主题或领域的数据仓库,因为它使得对业务过程的特定方面进行深入分析变得简单。

劣势:

  • 复杂度增加:随着业务需求的复杂化,星型模型可能变得复杂。在某些情况下,当业务过程和需求变得非常复杂时,星型模型可能无法有效地捕捉到所有复杂关系。
  • 不适用于所有业务场景: 星型模型可能不适用于所有类型的业务。某些业务情景可能需要更灵活或规范化的模型,例如雪花模型。
  • 存储冗余:一些情况下,星型模型可能导致存储冗余,因为一些维度信息可能在事实表中重复存储。
  • 不适用于大规模交易处理:在大规模交易处理场景下,星型模型可能不是最佳选择。对于大量实时交易的系统,可能需要考虑其他模型。

2. 雪花模式

雪花模式是一种多维模型中表的逻辑布局,其实体关系图有类似于雪花的形状,因此得名。

雪花模式

与星型模式相同,雪花模式也是由事实表和维度表所组成,所谓的雪花就是将星型模式中的维度表进行规范化处理,当所有的维度表完成规范化后,就形成了以事实表为中心的雪花型结构。

将维度表进行规范化的具体做法是:把低基数的属性从维度表中移除并形成单独的表,基数指的是一个字段中不同值的个数,如主键列具有唯一值,有最高的基数,而像性别这样的列基础就很低。

在雪花模式中,一个维度被规范化成另个关联的表,而在星型模式中,每个维度由一个单一的维度表所表示、一个规范化的维度对应一组具有层次关系的维度表,而事实表作为雪花模式里的子表,存在具有层次关系的多个父表。

优势:

  • 规范化减少数据冗余:雪花模式通过规范化维度表,可以有效减少数据冗余。相较于星型模型,雪花模型更强调将维度表的层次结构规范化为多个相关的表,从而节省存储空间。
  • 更好的数据一致性:由于数据被规范化,雪花模式有助于维护更好的数据一致性。更新或修改维度数据时,只需要更新规范化的维度表,而不是多个星型模型中的相同数据。
  • 适用于高度标准化的数据:在某些业务场景中,特别是对于高度标准化的数据,雪花模式可能更适用。例如,某些金融或医疗领域的数据可能需要强调更多的规范化。

劣势:

  • 复杂性增加:相对于星型模型,雪花模式的设计更为复杂。多个表之间的关系可能增加了查询的复杂性,对于用户而言,理解和使用也可能更具挑战性。
  • 查询性能相对较低:由于需要在多个表之间进行连接,雪花模式的查询性能可能相对较低。在某些情况下,特别是对于大型数据集,查询可能会变得更为耗时。
  • 不利于某些报表工具:一些报表工具可能更适用于星型模型,因为它们更直观地处理星型结构。对于使用这些工具的组织,雪花模式可能引入了额外的复杂性。

四、结语

在本文中,我们探讨了什么是维度建模,以及维度建模两种主要的建模样式:星型模型、雪花模型。每种维度建模样式都有其独特的优势和劣势,企业在选择适当的模型时应仔细考虑自身需求。如果业务更注重直观性和快速查询,星型模型可能是不二选择;而对于强调一致性和规范化的行业,雪花模型可能更符合要求。无论选择何种方式,都应致力于构建一个符合业务需求、易于维护和具有良好性能的数据仓库,以为企业的决策提供更强大的支持。

帆软软件深耕数字行业,能够基于强大的底层数据技术,为企业打破数据孤岛,搭建数据仓库,梳理指标体系。为并企业提供数据仓库的上层应用生产力,结合强大的数据产品,建立全面、便捷、直观的经营、财务、绩效、风险和监管一体化的报表系统数据分析平台,并为各业务部门人员及领导提供PC端、移动端等可视化大屏查看方式,有效提高工作效率与需求响应速度。

若您还想了解更多数据仓库建设解决方案,请点击:《帆软数据仓库和商业智能解决方案》,或点击下方图片👇,获取各行业全业务场景数仓搭建案例及资料。

产品体验

相关内容

立即咨询 立即咨询

在线客服

电话咨询

技术问题

投诉入口

返回顶部