ALTER MATERIALIZED VIEW
ALTER MATERIALIZED VIEW 可以:
-
修改异步物化视图的名称。
-
修改异步物化视图的刷新策略。
-
更改异步物化视图的状态为 active 或 inactive。
-
在两个异步物化视图之间执行原子交换。
-
修改异步物化视图的属性。
您可以使用此 SQL 语句来修改以下属性:
bloom_filter_columns
partition_ttl_number
partition_refresh_number
resource_group
auto_refresh_partitions_limit
excluded_trigger_tables
mv_rewrite_staleness_second
unique_constraints
foreign_key_constraints
colocate_with
excluded_refresh_tables
- 所有与会话变量相关的属性。有关会话变量的信息,请参见系统变量。
提示
- 此操作需要在目标物化视图上具有 ALTER 权限。您可以按照GRANT中的说明授予此权限。
- ALTER MATERIALIZED VIEW 不支持直接修改用于构建物化视图的查询语句。您可以构建一个新的物化视图,并使用 ALTER MATERIALIZED VIEW SWAP WITH 将其与原始视图交换。
语法
ALTER MATERIALIZED VIEW [db_name.]<mv_name>
{ RENAME [db_name.]<new_mv_name>
| REFRESH <new_refresh_scheme_desc>
| ACTIVE | INACTIVE
| SWAP WITH [db_name.]<mv2_name>
| SET ( "<key>" = "<value>"[,...]) }
参数
参数 | 必需 | 描述 |
---|---|---|
mv_name | 是 | 要修改的物化视图的名称。 |
new_refresh_scheme_desc | 否 | 新的刷新策略,详见SQL 参考 - CREATE MATERIALIZED VIEW - Parameters。 |
new_mv_name | 否 | 物化视图的新名称。 |
ACTIVE | 否 | 将物化视图的状态设置为 active。如果任何基本表发生更改(例如,删除并重新创建),StarRocks 会自动将物化视图设置为 inactive,以防止原始元数据与更改后的基本表不匹配的情况。非活动的物化视图不能用于查询加速或查询重写。您可以使用此 SQL 在更改基本表后激活物化视图。 |
INACTIVE | 否 | 将物化视图的状态设置为 inactive。非活动的异步物化视图无法刷新。但您仍然可以将其作为表进行查询。 |
SWAP WITH | 否 | 在进行必要的完整性检查后,与另一个异步物化视图执行原子交换。 |
key | 否 | 要修改的属性的名称,详见SQL 参考 - CREATE MATERIALIZED VIEW - Parameters。 注意 如果要更改物化视图的会话变量相关属性,必须向该属性添加 session. 前缀,例如session.insert_timeout 。对于非会话属性,例如mv_rewrite_staleness_second ,则无需指定前缀。 |
value | 否 | 要修改的属性的值。 |
示例
示例 1:更改物化视图的名称。
ALTER MATERIALIZED VIEW lo_mv1 RENAME lo_mv1_new_name;
示例 2:更改物化视图的刷新间隔。
ALTER MATERIALIZED VIEW lo_mv2 REFRESH ASYNC EVERY(INTERVAL 1 DAY);
示例 3:将物化视图刷新任务的超时时间更改为 1 小时(默认)。
ALTER MATERIALIZED VIEW mv1 SET ("session.insert_timeout" = "3600");
示例 4:将物化视图的状态更改为 active。
ALTER MATERIALIZED VIEW order_mv ACTIVE;
示例 5:在物化视图order_mv
和order_mv1
之间执行原子交换。
ALTER MATERIALIZED VIEW order_mv SWAP WITH order_mv1;
示例 6:为物化视图刷新过程启用 profile。默认情况下启用此功能。
ALTER MATERIALIZED VIEW mv1 SET ("session.enable_profile" = "true");
示例 7:为物化视图刷新过程启用中间结果溢写,并将溢写模式设置为force
。自 v3.1 起,默认启用中间结果溢写。
-- Enable spilling during materialized view refresh.
ALTER MATERIALIZED VIEW mv1 SET ("session.enable_spill" = "true");
-- Set spill_mode to force (the default value is auto).
ALTER MATERIALIZED VIEW mv1 SET ("session.spill_mode" = "force");
示例 8:如果物化视图的查询语句包含外部表或多个连接,则将其优化器超时时间更改为 30 秒(自 v3.3 以来的默认值)。
ALTER MATERIALIZED VIEW mv1 SET ("session.new_planner_optimize_timeout" = "30000");
示例 9:将物化视图的查询重写陈旧时间更改为 600 秒。
ALTER MATERIALIZED VIEW mv1 SET ("mv_rewrite_staleness_second" = "600");
示例 10:更改物化视图的 bloom filter 索引。
ALTER MATERIALIZED VIEW mv1 SET ("bloom_filter_columns" = "col1, col2");