1

在缓慢变化的场景中,维度多久变化一次?

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

维度每天都在变化是否很常见?

4

1 回答 1

2

维度变化的“速度”应该相对于事实表的变化速度来考虑。

如果一个维度每天都在变化,但事实表每分钟都在变化,那可能没问题。

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

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

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

你可以在这里看到一个例子:

SCD Type 4,快速变化尺寸的解决方案

于 2020-02-16T20:16:43.700 回答