请解释 Apache Doris 中 Rollup 表的概念,并说明它在查询优化中扮演什么角色?
考察说明
考查对 Doris 中 Rollup 表概念及查询优化机制的理解。
回答思路
- 【回答框架 1】Rollup 表是 Doris 中基于基表(Base Table)创建的一种物化索引,它按照指定的维度列重新组织数据,并预先聚合部分指标,以实现对特定查询模式的加速。
- 【回答框架 2】在查询优化中,Rollup 表通过提供更小粒度的数据或预聚合结果,减少扫描数据量和计算开销,从而提升查询性能。优化器会根据查询条件自动选择匹配的 Rollup 表,若匹配则直接读取该表,否则回退到基表。
- 【回答框架 3】Rollup 表与视图不同,它是物理存储的,占用额外存储空间,但能显著加快带有固定维度分组或过滤的查询。
- 【回答框架 4】创建 Rollup 表时需明确维度列和聚合方式,且 Rollup 表的维度列必须是基表维度列的子集,聚合函数需与基表一致或兼容。
- 【回答框架 5】Rollup 表常用于固定报表或频繁执行的聚合查询,通过预计算减少实时计算压力。
- 【关键点 1】Rollup 表是物化索引,预聚合数据以加速查询。
- 【关键点 2】查询优化器自动匹配最优 Rollup 表,减少扫描和计算。
- 【关键点 3】Rollup 表是物理存储,基于基表维度列子集创建。
- 【关键点 4】适合固定模式报表,但增加存储成本。
- 【易错点 1】不要混淆 Rollup 表与视图,前者是物理存储的物化索引。
- 【易错点 2】Rollup 表并非覆盖所有查询,未命中时仍走基表,可能增加维护开销。