跳到主要内容
版本: 最新版本-3.5

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_mvorder_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");