ALTER MATERIALIZED VIEW

更改当前/指定架构中的物化视图。支持的操作包括:

  • 重命名物化视图。

  • 暂停和恢复物化视图的使用和维护。

  • 对物化视图进行聚类。

  • 暂停和恢复物化视图的重聚类。

  • 删除物化视图的聚类。

有关更多详细信息,请参阅 使用物化视图

另请参阅:

CREATE MATERIALIZED VIEWDROP MATERIALIZED VIEWSHOW MATERIALIZED VIEWSDESCRIBE 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
Copy

参数

name

指定要更改的物化视图的标识符。

RENAME TO new_name

此选项允许为物化视图重命名。

新标识符对于在其中创建视图的架构必须唯一。新标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如 "My object")。放在双引号内的标识符也区分大小写。有关更多详细信息,请参阅 标识符要求

可以将对象移动到其他数据库和/或架构,同时选择重命名对象。为此,请指定一个限定 new_name 值,该值分别以 db_name.schema_name.object_nameschema_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 语法。

对于数据指标函数,使用以下值之一:51530607201440

'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)
# | | | | |
# | | | | |
  * * * * *
Copy

支持以下特殊字符:

*

通配符。指定字段的任何出现。

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) 物化视图:

  • 关于元数据:

    注意

    客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段

示例

重命名物化视图:

ALTER MATERIALIZED VIEW table1_MV RENAME TO my_mv;
Copy

对物化视图进行聚类:

ALTER MATERIALIZED VIEW my_mv CLUSTER BY(i);
Copy

暂停物化视图聚类,但不使用该视图:

ALTER MATERIALIZED VIEW my_mv SUSPEND RECLUSTER;
Copy

恢复物化视图聚类:

ALTER MATERIALIZED VIEW my_mv RESUME RECLUSTER;
Copy

暂停指定物化视图的所有使用及自动维护:

ALTER MATERIALIZED VIEW my_mv SUSPEND;
Copy

恢复指定物化视图的所有使用及自动维护:

ALTER MATERIALIZED VIEW my_mv RESUME;
Copy

停止物化视图聚类:

ALTER MATERIALIZED VIEW my_mv DROP CLUSTERING KEY;
Copy

将视图修改为安全视图:

ALTER MATERIALIZED VIEW mv1 SET SECURE;
Copy

添加或替换物化视图注释:

ALTER MATERIALIZED VIEW mv1 SET COMMENT = 'Sample view';
Copy
语言: 中文