代码之家  ›  专栏  ›  技术社区  ›  RaviLobo

尺寸变化的速度有多慢?

  •  0
  • RaviLobo  · 技术社区  · 4 年前

    我正在查看用于缓慢变化维度的SQLServer时态表(类型2)。一些维度表更新非常频繁(每天!从这个意义上说,它们并不是真正的“缓慢变化”。严格意义上,它们不是真正的维度)。

    0 回复  |  直到 4 年前
        1
  •  2
  •   RADO    4 年前

    维度变化的“速度”应与事实表中的变化速度相对应。

    如果一个维度每天都在变化,而事实表却每分钟都在变化,那就没问题了。

    如果一个维度每天都在变化,而事实表每天都在变化,那么这很可能是一个设计错误。你目前所拥有的是不正常的,你需要修复设计。

    通常,问题的根源是维度和事实之间的混淆——如果设计师将事实建模为维度属性,那么维度的变化会太快。例如,如果您在产品维度中添加价格,并且价格每天都在变化,您将把“缓慢变化”转换为“快速变化”。这里的一个解决方案是将价格分离到一个包含价格历史的事实表中。

    在不太明显的情况下,一个常见的解决方案是将快速变化的属性分离成一个“小维度”。例如,如果某些客户属性的更改比其他属性的更改快得多,则将表拆分为“customer”和“customer Profile”两个维度。这种“小尺寸”也被称为尺寸设计中的“4类”变化。

    SCD Type 4, a Solution for Rapidly Changing Dimension