在数据仓库上工作,我正在寻找关于具有多个维度的建议,而不是在具有属性的大维度上。
我们目前有DimEntity,DimStation,DimZone,DimGroup,DimCompany,并且有多个事实表,其中包含每个维度的键。这是最好的方式,还是只有一个维度DimEntity并将工作站,区域,组和公司作为实体的属性更好?
我们已经使用ETL进行了单独维度的路径,因此不像填充和构建星型模式的工作是一个问题。性能和可维护性非常重要。这些尺寸不会经常变化,因此寻找有关处理此类尺寸的最佳方法的指导。
事实表有超过1亿条记录。实体维度有大约1000条记录,其他列出的记录不到200条。
答案 0 :(得分:1)
在不知道您的星型模式表定义,数据基数等的情况下,很难给出是或否。这将是一种平衡行为。
对于读取性能,事实表应尽可能细,并且尺寸应尽可能短(低行数)。合并维度通常意味着在维度记录计数增加时,事实表变得更加紧凑。
如果您可以合并维度而不向合并维度添加大量行,则可能值得研究。可能是您可以将低基数维度组合成垃圾维度并实现良好的平衡。不应合并具有高基数属性的维度。
Here's一篇关于维度建模的金博尔大学文章。具体看看他在哪里解决蜈蚣事实表以及他建议如何使用垃圾尺寸。