📜  数据仓库什么是雪花模式

📅  最后修改于: 2020-12-30 00:52:41             🧑  作者: Mango

什么是雪花模式?

雪花模式等效于星型模式。 “如果一个或多个维度表不直接连接到事实表,而必须通过其他维度表进行联接,则该架构被称为雪花。”

雪花模式是星型模式的扩展,星型的每个点都会爆炸成更多点。之所以称为雪花模式,是因为雪花模式的图类似于雪花。雪花化是一种规范STAR模式中的维表的方法。当我们完全标准化所有维度表时,生成的结构类似于雪花,中间是事实表。

雪花用于开发特定查询的性能。绘制该架构时,每个事实都被其关联的维度围绕着,这些维度与其他维度相关,并分支成雪花图案。

雪花模式由一个事实表组成,该事实表链接到许多维度表,这些事实表可以通过多对一关系链接到其他维度表。雪花模式中的表通常被规范化为第三范式。每个维度表在层次结构中仅执行一个级别。

下图显示了一个具有两个维度的雪花模式,每个维度具有三个级别。雪花模式可以具有任意数量的维度,并且每个维度可以具有任意数量的级别。

示例:该图显示了一个带有销售事实表,商店,位置,时间,产品,行和族维度表的雪花模式。市场维度具有两个维度表,其中“商店”为主要维度表,“位置”为支腿维度表。产品维度包含三个维度表,其中“产品”作为主要维度表,而“线”和“族”表是支腿维度表。

星型模式将维度的所有属性存储到一个非规范化表中。与更规范的雪花模式相比,这需要更多的磁盘空间。雪花化通过将具有低基数的属性移动到使用外键与核心维度表相关的单独维度表中来规范化维度。不建议仅以最小化磁盘空间为目的进行雪花处理,因为雪花化处理会对查询性能产生不利影响。

在雪花中,对架构表进行规范化以删除冗余。在雪花尺寸表中损坏为多个尺寸表。

该图显示了在制造公司中进行销售的简单STAR模式。销售事实表包括数量,价格和其他相关指标。 SALESREP,CUSTOMER,PRODUCT和TIME是维度表。

如上所示,销售的STAR模式仅包含五个表,而规范化版本现在扩展到了11个表。我们将注意到,在雪花模式中,每个原始维度表中具有低基数的属性都被删除以形成单独的表。这些新表通过人工键连接回原始维表。

雪花模式旨在在更复杂的维度和关系之间进行灵活的查询。它适用于维度级别之间的多对多和一对多关系。

雪花模式的优势

  • 雪花模式的主要优点是由于最小化磁盘存储需求并加入了较小的查找表,从而提高了查询性能。
  • 它在维度级别和组件之间的相互关系中提供了更大的可伸缩性。
  • 无冗余,因此易于维护。

雪花模式的缺点

  • 雪花模式的主要缺点是由于查找表数量的增加而需要进行额外的维护工作。它也被称为多事实星型模式。
  • 查询更为复杂,因此难以理解。
  • 更多的表加入,因此更多的查询执行时间。