-1

在数据仓库上工作,并正在寻找有关具有多个维度与具有属性的大维度的建议。

我们目前有 DimEntity、DimStation、DimZone、DimGroup、DimCompany,并且有多个事实表,其中包含来自每个维度的键。这是最好的方法,还是只有一个维度 DimEntity 并包括站、区域、组和公司作为实体的属性更好?

我们已经使用我们的 ETL 走了单独维度的路线,因此填充和构建星型模式的工作不是问题。性能和可维护性很重要。这些尺寸不会经常变化,因此请寻求有关处理此类尺寸的最佳方法的指导。

事实表有超过 1 亿条记录。实体维度有大约 1000 条记录,其他列出的每条记录不到 200 条。

4

1 回答 1

1

在不知道您的星型模式表定义、数据基数等的情况下,很难给出“是”或“否”。这将是一个平衡的行为。

对于读取性能,事实表应该尽可能的细,维度应该尽可能的短(低行数)。合并维度通常意味着当维度记录计数增加时,事实表会变得更精简。

如果您可以在不向合并维度添加大量行的情况下合并维度,则可能值得研究。可能您可以将低基数维度组合成垃圾维度并实现良好的平衡。不应合并具有高基数属性的维度。

这是关于维度建模的一篇很好的 Kimball 大学文章。具体看看他在哪里处理蜈蚣事实表以及他如何建议使用垃圾维度。

于 2013-05-21T18:00:59.333 回答