需要对维度建模或星型模式有所了解。
通常,在设计数据仓库时,我们会有事实表和维度表。
但是,在事实表中嵌入维度确实有意义。特别是对于没有其他属性且很少改变其价值的简单维度。
在事实表中使用维度会使查询运行得非常快,无需单独维护维度表,在执行ETL时无需查找维度表。
是否考虑将维度与事实分开?
答案 0 :(得分:5)
事实上有很多行。如果你把一个长度为20的属性放在一个事实上,那么与你只存储一个INT
代理键(4个字节)相比,需要更多的存储空间。更多存储=更大的表=性能下降。
您几乎总是希望针对给定属性存储其他层次结构和属性。即使你现在没有,你可能希望将来
通常在报告中,您会在下拉列表中找到这些属性的列表以进行过滤。你怎么从事实中得到这些? SELECT DISTINCT
放在一张非常大的桌子上,没有索引就很贵。使用索引,会影响您的负载性能。
当你把东西放在维度而不是事实上时,这意味着你已经做了一些关于如何适应业务的分析