如何处理大维度表

Posted

技术标签:

【中文标题】如何处理大维度表【英文标题】:What to do with large dimension tables 【发布时间】:2014-07-09 19:33:47 【问题描述】:

我有一个产品维度(服装)。每件衣服都可以有多种颜色,每种颜色都可以有多种尺寸。颜色由设计师在源头创建,因此它们的范围从 pistachiopassion red,与尺寸相同 - 它们可以是正常的数字范围,但也可以是 Up to 6 months5 Year old 之类的东西。

考虑到所有产品的尺寸和颜色,产品变体大约有 600 万条记录。最重要的是,我们在维度上有 scd type2。性能不是最好的,所以我把产品的颜色和尺寸分成了三个独立的维度(颜色和大小几乎像big-mini维度)

现在性能好多了,但显然我必须在事实表中包含颜色和尺寸键。我仍然可以在三个维度之间进行查询,因为我在颜色和尺寸维度中都有产品密钥。

我的问题是:我这样做对吗?我应该以这种方式将产品分开,还是应该不惜一切代价将颜色和尺寸包含在产品中?如果是这样,我应该如何使用这种方法解决大行数?

【问题讨论】:

【参考方案1】:

如果您的设计满足业务需求并且性能不再是问题,那么听起来您所做的一切都很好。

您还可以快速轻松地按尺寸/颜色报告,以便查看趋势,如果需要所有产品的完整列表,您可以在视图中执行此操作以复制原始列表。

【讨论】:

以上是关于如何处理大维度表的主要内容,如果未能解决你的问题,请参考以下文章

如何处理数据仓库中重复id包含略有不同值的维度表?

SSAS - 如何处理具有有效重复项的维度?

如何处理具有相似属性的维度?

100个字段的hive大宽表kylin如何处理?

SQL - 加载没有业务ID的数据仓库维度表?

大数据面试题--数仓