异步物化视图能力边界
自 v2.4 起,StarRocks 支持异步物化视图。异步物化视图旨在加速在 StarRocks 内部或数据湖中基于多个大表执行复杂查询,通常涉及多表之间数十亿行数据的关联和聚合。查询的频率越高或查询语句越复杂,性能增益就会越很明显。此外,您还可以通过异步物化视图对数据仓库进行建模。
本文介绍了异步物化视图的能力边界及相关功能的支持版本。
DDL 特性
特性 | 描述 | 支持版本 |
---|---|---|
自动分析 | 物化视图创建后自动收集统计信息,以避免改写失败。 | v3.0+ |
随机分桶 | 默认为物化视图启用随机分桶策略。 | v3.1+ |
延迟刷新 | 支持在创建物化视图时使用 DEFERRED 或 IMMEDIATE 指定是否立即刷新。 | v3.0+ |
排序键 | 支持使用 ORDER BY 指定物化视图的排序键。 | v3.1+ |
Window/CTE/Union/子查询 | 支持在物化视图中使用窗口函数、CTE、Union 和子查询。 | v2.5+ |
激活无效物化视图 | 在基表 Schema Change 后,通过在 ALTER MATERIALIZED VIEW 中使用 ACTIVE 关键字激活失效的物化视图。 | v2.5.7+ v3.0.1+ v3.1+ |
同步执行刷新 | 支持在 REFRESH MATERIALIZED VIEW 中使用 WITH SYNC MODE 关键字同步执行物化视图刷新任务。 | v2.5.8+ v3.0.4+ v3.1+ |
中间结果落盘 | 支持通过 enable_spill 属性启用中间结果落盘,避免在物化视图构建期间出现 OOM。 | v3.1+ |
资源组 | 支持通过 resource_group 属性指定物化视图构建的资源组,以实现资源隔离。 | v3.1+ |
基于 视图创建物化视图 | 支持基于逻辑视图创建物化视图。 | v3.1+ |
替换物化视图 | 支持在 ALTER MATERIALIZED VIEW 中使用 SWAP WITH 关键字原子替换物化视图。 | v3.1+ |
在物化视图上创建索引 | 支持在物化视图上创建索引加速点查询。 | v3.0.7+ v3.1.4+ v3.2+ |
自动激活 | 支持在后台会自动激活失效的物化视图,后台刷新间隔默认是 30 秒,尝试频率会指数递减,直至间隔大于 60min 后停止尝试。 | v3.1.4+ v3.2+ |
备份与恢复 | 支持物化视图的备份与恢复。 | v3.2+ |
对象依赖关系 | 提供系统定义的视图 sys.object_dependencies ,用以查询物化视图与基表之间的依赖关系。 | v3.2+ |
变量
变量 | 描述 | 默认值 | 支持版本 |
---|---|---|---|
enable_materialized_view_rewrite | 是否启用物化视图查询改写。 | true | v2.5+ |
enable_materialized_view_for_insert | 是否为 INSERT 语句启用物化视图查询改写。 | false | v2.5.18+ v3.0.9+ v3.1.7+ v3.2.2+ |
materialized_view_rewrite_mode | 物化视图查询改写模式。 | DEFAULT | v3.2+ |
optimizer_materialized_view_timelimit | 物化视图查询改写的最大时间限制,超过此时间后将放弃改写并继续优化器进程。 | 1000 | v3.1.9+ v3.2.5+ |
analyze_mv | 在物化视图刷新后收集统计信息的方法。 | SAMPLE | v3.0+ |
enable_materialized_view_plan_cache | 是否启用物化视图的 Plan Cache。默认情况下,缓存 1000 个物化视图 Plan。 | true | v2.5.13+ v3.0.7+ v3.1.4+ v3.2.0+ v3.3.0+ |
query_including_mv_names | 查询改写时可使用的物化视图的白名单。 | v3.1.11+ v3.2.5+ | |
query_excluding_mv_names | 查询改写时不可使用的物化视图的黑名单。 | v3.1.11+ v3.2.5+ | |
cbo_materialized_view_rewrite_related_mvs_limit | 计划阶段候选物化视图的最大数量。 | 64 | v3.1.9+ v3.2.5+ |