ALTER MATERIALIZED VIEW¶
更改当前/指定架构中的物化视图。支持的操作包括:
重命名物化视图。
暂停和恢复物化视图的使用和维护。
对物化视图进行聚类。
暂停和恢复物化视图的重聚类。
删除物化视图的聚类。
有关更多详细信息,请参阅 使用物化视图。
- 另请参阅:
CREATE MATERIALIZED VIEW、DROP MATERIALIZED VIEW、SHOW MATERIALIZED VIEWS、DESCRIBE MATERIALIZED VIEW
语法¶
ALTER MATERIALIZED VIEW <name>
{
RENAME TO <new_name> |
CLUSTER BY ( <expr1> [, <expr2> ... ] ) |
DROP CLUSTERING KEY |
SUSPEND RECLUSTER |
RESUME RECLUSTER |
SUSPEND |
RESUME |
SET {
[ SECURE ]
[ COMMENT = '<comment>' ]
} |
UNSET {
SECURE |
COMMENT
}
}
ALTER MATERIALIZED VIEW
SET DATA_METRIC_SCHEDULE = {
'<num> MINUTE'
| 'USING CRON <expr> <time_zone>'
}
ALTER MATERIALIZED VIEW UNSET DATA_METRIC_SCHEDULE
参数¶
name
指定要更改的物化视图的标识符。
RENAME TO new_name
此选项允许为物化视图重命名。
新标识符对于在其中创建视图的架构必须唯一。新标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如
"My object"
)。放在双引号内的标识符也区分大小写。有关更多详细信息,请参阅 标识符要求。可以将对象移动到其他数据库和/或架构,同时选择重命名对象。为此,请指定一个限定
new_name
值,该值分别以db_name.schema_name.object_name
或schema_name.object_name
的形式包含新数据库和/或架构名称。备注
目标数据库和/或架构必须已存在。此外,新位置中不能存在同名对象;否则,该语句将返回错误。
除非 对象所有者(即拥有对象 OWNERSHIP 权限的角色)也拥有目标架构,否则禁止将对象移动到托管访问架构。
请注意,重命名物化视图不会更新对视图的引用。例如,如果在物化视图之上创建一个名为
V1
的视图,后续对物化视图进行了重命名,则视图V1
的定义将会过时。CLUSTER BY expr#
此命令对物化视图进行聚类。聚类会对物化视图中的行进行重新排序,以提高基于群集密钥表达式执行筛选的查询的性能。
expr#
指定要在其上聚类物化视图的表达式。通常,每个表达式都是物化视图中列的名称。DROP CLUSTERING KEY
此命令会删除物化视图的聚类。
SUSPEND RECLUSTER
SUSPEND RECLUSTER
选项将暂停物化视图的重聚类。有关聚类物化视图的更多信息,请参阅 物化视图和群集。RESUME RECLUSTER
RESUME RECLUSTER
选项将恢复物化视图的重聚类。SUSPEND
SUSPEND
选项将暂停物化视图的维护(更新)和使用。在视图暂停时,对基表的更新不会传播到物化视图。物化视图本身也不可访问;如果尝试使用,则会收到如下错误消息:Failure during expansion of view 'MV1': SQL compilation error: Materialized View MV1 is invalid. Invalidation reason: Marked Materialized View as invalid manually.
如果暂停已聚类的物化视图,则暂停该视图会隐式暂停该视图的重聚类。
RESUME
RESUME
选项允许恢复物化视图的使用。它还会恢复对物化视图的维护。如果视图已聚类,则还会隐式恢复该视图的重聚类。SET ...
指定要为物化视图设置的属性:
SECURE
此选项会将视图转换为安全视图。有关安全视图的详细信息,请参阅 使用安全视图。
COMMENT = 'string_literal'
此选项为物化视图设置注释。注释对视图的行为无影响,但可为使用或维护视图的用户提供有用的信息。
DATA_METRIC_SCHEDULE ...
指定定期运行数据指标函数的计划。
'num MINUTE'
指定在两次运行数据指标函数之间插入的等待时间间隔(以分钟为单位)。仅接受正整数。
还支持
num M
语法。对于数据指标函数,使用以下值之一:
5
、15
、30
、60
、720
或1440
。'USING CRON expr time_zone'
指定用于定期运行数据指标函数的 cron 表达式和时区。支持标准 cron 实用程序语法的子集。
有关时区列表,请参阅 ` tz 数据库时区列表 <https://en.wikipedia.org/wiki/List_of_tz_database_time_zones (link removed)>`_。
cron 表达式由以下字段组成,定期间隔必须至少为 5 分钟:
# __________ minute (0-59) # | ________ hour (0-23) # | | ______ day of month (1-31, or L) # | | | ____ month (1-12, JAN-DEC) # | | | | _ day of week (0-6, SUN-SAT, or L) # | | | | | # | | | | | * * * * *
支持以下特殊字符:
*
通配符。指定字段的任何出现。
L
代表“last”。在星期几字段中使用时,它允许您指定结构,例如给定月份的“最后一个星期五”(“5L”)。在日期字段中,它指定该月的最后一天。
/{n}
指示给定时间单位的第 n 个实例。每个时间量子都是独立计算的。例如,如果在月份字段中指定
4/3
,则数据指标函数将安排在 4 月、7 月和 10 月执行(即从一年中的第 4 个月开始,每 3 个月一次)。在随后的几年中保持相同的计划。也就是说,数据指标函数 不会 安排在 1 月(10 月运行后 3 个月)运行。
备注
cron 表达式当前仅根据指定的时区进行计算。更改账户的 TIMEZONE 参数值(或在用户或会话级别设置该值):emph:
不会
更改数据指标函数的时区。cron 表达式定义数据指标函数的所有 有效 运行时间。Snowflake 尝试根据此计划运行数据指标函数;但是,如果在下一个有效运行时间开始之前未完成上一次运行,则跳过任何有效运行时间。
当 cron 表达式中同时包含一个月中的特定日期和一周中的某一天时,数据指标函数将安排在满足一个月中某一天条件 或 一周中某一天条件的日期运行。例如,
DATA_METRIC_SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC'
计划在每月的 10 号到 20 号以及这些日期之外的任何星期二或星期四的 0AM 运行数据指标函数。cron 中最短的时间粒度为分钟。
UNSET ...
指定要为物化视图取消设置的属性:
SECURE
TAG tag_name [ , tag_name ... ]
COMMENT
DATA_METRIC_SCHEDULE
使用说明¶
使用 ALTER VIEW 命令为物化视图设置/取消设置掩码策略、行访问策略,或者标签。
您可以使用如下所示的数据指标函数 (DMFs) 物化视图:
要设置物化视图上的 DATA_METRIC_SCHEDULE 参数,请使用 ALTER MATERIALIZED VIEW 命令。有关更多信息,请参阅 计划 DMFs 的运行。
使用 ALTER VIEW 命令,将 DMF 添加到某一列或从物化视图的列中拖放 DMF。
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
示例¶
重命名物化视图:
ALTER MATERIALIZED VIEW table1_MV RENAME TO my_mv;
对物化视图进行聚类:
ALTER MATERIALIZED VIEW my_mv CLUSTER BY(i);
暂停物化视图聚类,但不使用该视图:
ALTER MATERIALIZED VIEW my_mv SUSPEND RECLUSTER;
恢复物化视图聚类:
ALTER MATERIALIZED VIEW my_mv RESUME RECLUSTER;
暂停指定物化视图的所有使用及自动维护:
ALTER MATERIALIZED VIEW my_mv SUSPEND;
恢复指定物化视图的所有使用及自动维护:
ALTER MATERIALIZED VIEW my_mv RESUME;
停止物化视图聚类:
ALTER MATERIALIZED VIEW my_mv DROP CLUSTERING KEY;
将视图修改为安全视图:
ALTER MATERIALIZED VIEW mv1 SET SECURE;
添加或替换物化视图注释:
ALTER MATERIALIZED VIEW mv1 SET COMMENT = 'Sample view';