【问题标题】:When do we consider snowflaking a star schema?我们什么时候考虑对星型模式进行雪花化?
【发布时间】:2021-04-28 17:24:16
【问题描述】:

在下面的维度模型中,所有维度表都遵循星型模式,除了 prod 表,它是雪花的,并且有 prod_sub 表作为子表。考虑对星型模式进行雪花化的战略要点是什么?

Sales Table - Fact Table
Prod_id  (fk)
Promo_id (fk)
store_id (fk)

Promo Table - Dimension Table
promo_id (pk)

Store Table - Dimension Table
store_id (pk)

Product Table - Dimension Table
Prod_id (pk)
prod_class_id (FK)
Prod_name
Prod_brand

Prod_sub Table- Dimension Table (snow flaked)
prod_class_id,
prod_class
prod_sub_class
prod_family

【问题讨论】:

  • 没有战略点。如果一个维度是具有多个级别的层次结构(如您的产品具有两个级别 product 和 product class),则每个级别使用一个维度表来覆盖它。如果一个维度是 flat 没有层次结构,你只使用一个表。
  • 您可以将所有产品信息放入一个维度表中,无需雪花化

标签: etl data-modeling data-warehouse star-schema snowflake-schema


【解决方案1】:

根据Kimball :星型模式是设计报告数据模型的最佳方式,您将获得最佳性能和使用这种模型的灵活性。 所以不需要雪花。

那么你的 Product Table Dimension Table 就变成了:

Product Table - Dimension Table
Prod_id (pk)
Prod_name
Prod_brand
prod_class
prod_sub_class
prod_family

【讨论】:

  • 太棒了!我也是那么想的。那么,如果有任何多值属性或多值维度,唯一需要的就是雪花吗?那么,在这种情况下,如果同一个产品有多个 class ,那么我们必须雪花有桥表对吗?
  • 如果同一个产品有多个类别,您可以雪花模型。但请记住,使用星型模式是最佳实践。您的维度中可以有许多记录引用相同的产品,但每个记录具有不同的类别。
猜你喜欢
  • 1970-01-01
  • 2017-02-21
  • 2015-07-13
  • 2021-07-09
  • 2012-02-02
  • 1970-01-01
  • 2012-12-28
  • 2023-03-22
  • 2016-06-12
相关资源
最近更新 更多