我们为什么要将维度和事实分开,而不是将两者结合在一个表中

ren*_*ior 2 data-warehouse star-schema dimensional-modeling

需要对维度建模或星型模式有所了解.

通常,当我们设计数据仓库时,我们将有事实表和维度表.

但是,在事实表中嵌入维度确实有意义.特别是对于没有其他属性且很少改变其价值的简单维度.

事实表中的维度将使查询运行得非常快,无需单独维护维度表,在执行ETL时无需查找维度表.

有没有考虑将尺寸与事实分开?

Nic*_*aid 7

  1. 事实有很多行.如果你在一个事实中放置​​一个长度为20的属性,那么与你只存储一个INT代理键(4个字节)相比,需要更多的存储空间.更多存储=更大的表=性能下降.

  2. 您几乎总是希望针对给定属性存储其他层次结构和属性.即使你现在没有,你可能希望将来使用

  3. 通常在报告中,您将在下拉列表中列出这些属性以进行过滤.你怎么从事实中得到这些?SELECT DISTINCT在一张非常大的桌子上,没有索引就很贵.使用索引,您会影响负载性能.

当你把东西放在维度而不是事实上时,这意味着你已经对这如何适应业务做了一些分析