ALTER SNAPSHOT POLICY

修改 快照 策略的属性。支持以下变更:

  • 重命名策略。

  • 添加或更新策略的注释。

  • 更改策略的计划和有效期设置。该计划决定了 Snowflake 自动进行备份的频率,并将生成的快照添加到受策略管理的快照集中。有效期决定了在 Snowflake 自动将快照从关联的快照集中删除之前每个快照的保留时间。

  • 取消设置策略的属性,使其恢复为默认值。

另请参阅:

CREATE SNAPSHOT POLICYDROP SNAPSHOT POLICYSHOW SNAPSHOT POLICIES

语法

ALTER SNAPSHOT POLICY <name> RENAME TO <new_name>

ALTER SNAPSHOT POLICY <name> SET
  [ COMMENT = '<string_literal>' ]
  [ SCHEDULE = '{ <num> MINUTE | USING CRON <expr> <time_zone> }' ]
  [ EXPIRE_AFTER_DAYS = <days_integer> ]

ALTER SNAPSHOT POLICY <name> UNSET { COMMENT | SCHEDULE | EXPIRE_AFTER_DAYS }
Copy

参数

name

指定快照策略的标识符。

如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。

有关更多信息,请参阅 标识符要求

RENAME TO new_name

指定快照策略的新标识符;对于您的账户必须唯一。

有关更多信息,请参阅 标识符要求

SET...

指定要为快照策略设置的一个或多个属性(属性之间用空格、逗号或换行符分隔)。

COMMENT = 'string_literal'

指定快照策略的注释。

SCHEDULE = '{ num MINUTE | USING CRON expr time_zone }'

指定创建对象快照的计划。

备注

快照的最短计划为 60 分钟。

每个策略都必须包含 SCHEDULE 子句、EXPIRE_AFTER_DAYS 子句或两者。

  • USING CRON expr time_zone

    为创建对象快照的时间点指定 cron 表达式和时区。支持标准 cron 实用程序语法的子集。

    有关时区列表,请参阅 ` tz 数据库时区列表 <https://en.wikipedia.org/wiki/List_of_tz_database_time_zones (link removed)>`_ (在维基百科中)。

    cron 表达式由以下字段组成:

    # __________ 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 表达式中同时包含一个月中的特定一天和一周中的某一天时,快照将计划在满足该月中的某一天 一周中的某一天的日期。例如,SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC' 计划在每月的任何第 10 到 20 天以及这些日期之外任何星期二或星期四的 0AM(午夜)运行快照。

  • num MINUTE

    指定快照之间的等待时间间隔(以分钟为单位)。仅接受正整数。

    还支持 num M 语法。

    为避免歧义,在以下情况下设置了 基本间隔时间

    • 创建对象时(使用 CREATE SNAPSHOT SET ... WITH SNAPSHOT POLICY)。

    • 当设置不同的间隔时(使用 ALTER SNAPSHOT SET ... APPLY SNAPSHOT POLICY 或 ALTER SNAPSHOT POLICY ... SET SCHEDULE)。

    基本间隔时间从当前时钟时间开始间隔计数器。例如,如果将 INTERVAL 值设置为 10,并在 9:03 AM 启用计划快照,则下一个快照将在 9:13 AM、9:23 AM 创建,以此类推。请注意,我们尽最大努力确保绝对精度,但仅保证快照不会在设定的时间间隔发生 之前 执行(即,在当前示例中,快照可以首先在 9:14 AM 运行,但绝对不会在 9:12 AM 运行)。

EXPIRE_AFTER_DAYS = days_integer

指定距离快照过期的天数。Snowflake 会自动删除过期的快照。如果未指定此参数,则快照将保留在快照集中,直到从快照集中手动删除为止。

  • 最小值:1

  • 如果您未指定 SCHEDULE 子句,则最大值:``3653``(大约 10 年)。如果您指定了 SCHEDULE 子句,则最大值取决于拍摄快照的频率。有关更多信息,请参阅 公共预览期间快照的限制

备注

当策略有保留锁定时,您可以增加 EXPIRE_AFTER_DAYS 值,但不能减少该值。

每个策略都必须包含 SCHEDULE 子句、EXPIRE_AFTER_DAYS 子句或两者。

UNSET...

取消设置快照策略的以下属性之一。该属性恢复为其默认值。

  • COMMENT

  • SCHEDULE

  • EXPIRE_AFTER_DAYS

备注

您可以取消设置 SCHEDULE 属性或 EXPIRE_AFTER_DAYS 属性,但不能同时取消设置两者。例如,当您不打算创建新快照但希望现有快照在一定时间后过期时,可以保留 EXPIRE_AFTER_DAYS 属性。

访问控制要求

用于执行此操作的 角色 必须至少具有以下 权限

权限

备注

OWNERSHIP

用于修改快照策略的角色必须具有快照策略的 OWNERSHIP 权限。

APPLY SNAPSHOT RETENTION LOCK

用于修改带有保留锁定的快照策略的角色必须对账户具有此权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

关于元数据:

注意

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

示例

为快照策略 hourly_snapshot_policy 添加注释:

ALTER SNAPSHOT POLICY hourly_snapshot_policy
  SET COMMENT = 'hourly snapshot expires in 90 days';
Copy

更改快照策略 every_two_hours 的计划:

ALTER SNAPSHOT POLICY every_two_hours SET SCHEDULE = '120 MINUTE';
Copy

将 EXPIRE_AFTER_DAYS 属性恢复为其默认值:

ALTER SNAPSHOT POLICY sample_snapshot_policy UNSET EXPIRE_AFTER_DAYS;
Copy
语言: 中文