数据仓库中的低基数维度

Posted

技术标签:

【中文标题】数据仓库中的低基数维度【英文标题】:Low cardinality Dimensions in Datawarehouse 【发布时间】:2014-11-26 05:06:19 【问题描述】:

我的事实表中有很多列的基数非常低 (~8)。这些列中的每一个都存储引用主表的键。我想知道是将这些单独的主表中的每一个作为维度导入还是将值直接存储在事实表中。除了我要存储的值之外,主表没有其他属性。每种方法的优缺点是什么?

【问题讨论】:

【参考方案1】:

这似乎是一个典型的垃圾维度示例,它将许多杂项、低基数标志和指标组合在一起(而不是将它们中的每一个放在单独的维度表中)。

其他方法的缺点:

将每个低基数属性放在一个单独的专用维度中可能会导致模型过于复杂且维度表数量过多 (centipede fact tables)。 允许将属性直接存储在事实表中,但仅保留给degenerate dimensions,即订单或发票编号、零售销售点交易编号等值 - 高基数值有任何描述它们的附加属性。 低基数标志不是 DD,因为即使它们现在可能包含一个唯一键,它们将来也可能很容易具有其他属性,例如报告的多个描述性标题 - 移动用户短,桌面用户长。

详情:Design Tip #113 Creating, Using, and Maintaining Junk Dimensions

【讨论】:

谢谢马雷克。我使用相同的想法实现它。

以上是关于数据仓库中的低基数维度的主要内容,如果未能解决你的问题,请参考以下文章

聊聊数据仓库中的缓慢变化维度(SCD)

数据仓库中的时间和日期维度

数据仓库星型模式的维度表和事实表中的数据如何?

数据仓库系列 - 缓慢渐变维度

数据仓库 ETL 缓慢 - 更改维度中的主键?

数据仓库暗表中的选项维度信息