跳到主要内容
最后 更新

ALTER ASYNC MATERIALIZED VIEW

描述

该语句用于修改异步物化视图。

语法

ALTER MATERIALIZED VIEW mvName=multipartIdentifier ((RENAME newName=identifier)
| (REFRESH (refreshMethod | refreshTrigger | refreshMethod refreshTrigger))
| REPLACE WITH MATERIALIZED VIEW newName=identifier propertyClause?
| (SET LEFT_PAREN fileProperties=propertyItemList RIGHT_PAREN))

说明

RENAME

用来更改物化视图的名字

例如:将 mv1 的名字改为 mv2

ALTER MATERIALIZED VIEW mv1 rename mv2;
refreshMethod

创建异步物化视图

不能通过 ALTER MATERIALIZED VIEW 把普通异步物化视图改为 INCREMENTAL,也不能把 IVM 改为其他默认刷新方式。如需切换,请重建物化视图。

refreshTrigger

创建异步物化视图

SET

修改物化视图特有的 property

例如修改 mv1 的 grace_period 为 3000ms

ALTER MATERIALIZED VIEW mv1 set("grace_period"="3000");

IVM 属性中,ivm_use_full_keys 只能在创建时设置,不能修改。ivm_partition_window_limit 可以修改;扩大窗口或移除限制后,下一次刷新需要执行 COMPLETE 重建基线。详见 物化视图增量维护(IVM)

REPLACE
ALTER MATERIALIZED VIEW [db.]mv1 REPLACE WITH MATERIALIZED VIEW mv2
[PROPERTIES('swap' = 'true')];

两个物化视图进行原子的替换操作

swap 默认为 TRUE

  • 如果 swap 参数为 TRUE,相当于把物化视图 mv1 重命名为 mv2 , 同时把 mv2 重命名为 mv1
  • 如果 swap 参数为 FALSE,相当于把 mv2 重命名为 mv1,原有的 mv1 被删除

例如想把 mv1 和 mv2 的名字互换

ALTER MATERIALIZED VIEW db1.mv1 REPLACE WITH MATERIALIZED VIEW mv2;

例如想把 mv2 重命名为 mv1,并删除原先的 mv1

ALTER MATERIALIZED VIEW db1.mv1 REPLACE WITH MATERIALIZED VIEW mv2
PROPERTIES('swap' = 'false');

关键词

ALTER, ASYNC, MATERIALIZED, VIEW