数据仓库与 OLAPMaterialized View
物化视图 是什么?
预计算好的聚合结果,查询自动改写命中
类比:提前算好的汇总表,不用每次重新加一遍
解决什么问题
报表里的指标往往是对明细的固定聚合(按天、按渠道求和)。每次都扫全量明细太浪费,物化视图把结果预先算好存起来,查询时直接读小表。
Doris 的异步物化视图支持透明改写:用户还是查原表,优化器自动改成查视图。
代价
物化视图要额外存储,还要在基表变更时刷新(定时或实时)。视图建太多会拖慢写入,也会让优化器选择困难。只给“高频 + 重聚合”的查询建视图。
和缓存、宽表的区别
缓存(Redis)是结果级缓存,命中率看查询是否完全一致;宽表是提前 join 好的明细;物化视图是提前聚合的汇总。三者解决不同层次的问题,实际项目经常一起用。