同步物化视图
本文介绍如何在 StarRocks 中创建、使用以及管理同步物化视图(Rollup)。
同步物化视图下,所有对于基表的数据变更都会自动同步更新到物化视 图中。您无需手动调用刷新命令,即可实现自动同步刷新物化视图。同步物化视图的管理成本和更新成本都比较低,适合实时场景下单表聚合查询的透明加速。
StarRocks 中的同步物化视图仅能基于 Default Catalog 中的单个基表创建,是一种特殊的查询加速索引。
自 2.4 版本起,StarRocks 支持异步物化视图,可以基于多个基表创建,且支持更丰富的聚合函数。详细信息,请参阅 异步物化视图。
备注
- 同步物化视图自 v3.1.8 起支持 WHERE 子句。
- 自 v3.4.0 起,StarRocks 存算分离集群支持同步物化视图。
下表从支持的特性角度比较了 StarRocks 2.5、2.4 中的异步物化视图以及同步物化视图(Rollup):
单表聚合 | 多表关联 | 查询改写 | 刷新策略 | 基表 | |
---|---|---|---|---|---|
异步物化视图 | 是 | 是 | 是 |
| 支持多表构建。基表可以来自:
|
同步物化视图(Rollup) | 仅部分聚合函数 | 否 | 是 | 导入同步刷新 | 仅支持基于 Default Catalog 的单表构建 |
相关概念
-
基表(Base Table)
物化视图的驱动表。
对于 StarRocks 的同步物化视图,基表仅可以是 Default catalog 中的单个内部表。StarRocks 支持在明细表、聚合表上创建同步物化视图。
-
刷新(Refresh)
StarRocks 同步物化视图中的数据将在数据导入基表时自动更新,无需手动调用刷新命令。
-
查询改写(Query Rewrite)
查询改写是指在对已构建了物化视图的基表进行查询时,系统自动判断是否可以复用物化视图中的预计算结果处理查询。如果可以复用,系统会直接从相关的物化视图读取预计算结果,以避免重复计算消耗系统资源和时间。
StarRocks 的同步物化视图支持部分聚合算子的查询改写。详细信息,请参见 聚合函数匹配关系。