CREATE SNAPSHOT

备注

Snowflake 的支持政策和服务级别协议 中规定的服务级别目前不包括此操作。

创建或替换来自指定服务实例的命名卷的 快照。快照在当前架构中创建。

另请参阅:

ALTER SNAPSHOTDESCRIBE SNAPSHOTDROP SNAPSHOTSHOW SNAPSHOTS

语法

CREATE [ OR REPLACE ] SNAPSHOT [ IF NOT EXISTS ] <name>
  FROM SERVICE <service_name>
  VOLUME "<volume_name>"
  INSTANCE <instance_id>
  [ COMMENT = '<string_literal>']
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
Copy

必填参数

name

指定快照的标识符(即名称)的字符串;对于在其中创建快照的架构必须是唯一的。

此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,"My object")。放在双引号内的标识符也区分大小写。

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

FROM SERVICE service_name

指定服务名称。

VOLUME "volume_name"

指定与服务关联的卷的名称。只能获取块存储卷的快照,而不能获取本地卷、内存卷或暂存区卷的快照。

卷名称区分大小写。因此,应始终使用双引号来匹配服务规范中的相应名称。

INSTANCE instance_id

服务实例的索引。服务实例索引从 0 开始,范围是 [0, ...,  MAX_INSTANCES - 1]。您可以调用 SYSTEM$GET_SERVICE_STATUS – 已弃用 函数来获取相关信息。

可选参数

COMMENT = 'string_literal'

指定服务的注释。

默认:无值

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

指定 标签 名称和标签字符串值。

标签值始终为字符串,标签值的最大字符数为 256。

有关在语句中指定标签的信息,请参阅 对象和列的标签配额

访问控制要求

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

权限

对象

备注

CREATE SNAPSHOT

架构

OPERATE

服务

要对架构中的任何对象执行操作,需要对父数据库和架构的 USAGE 权限。

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

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

使用说明

  • 关于元数据:

    注意

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

  • CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。

  • Snowflake 在执行完成后大约 10 分钟删除作业服务。要保留作业服务使用的块存储卷的内容,您必须在 Snowflake 删除作业之前创建快照。例如,您可能使用存储的程序首先执行作业服务,然后立即创建快照。

  • 架构不能包含同名快照。创建快照时,如果架构中已存在同名快照,则返回错误,并且不创建快照,除非命令中包含可选的 OR REPLACE 关键字,在这种情况下 Snowflake 将删除现有快照并创建新快照。

    重要

    使用 DROP SNAPSHOT 或 CREATE OR REPLACE SNAPSHOT 命令删除的快照无法恢复。

示例

如果创建的服务有两个实例(容器的数量无关紧要)和一个名为“data”的卷,则使用以下 SQL 创建与第一个实例相关联的卷的快照:

CREATE SNAPSHOT snapshot_0
  FROM SERVICE example_service
  VOLUME "data"
  INSTANCE 0
  COMMENT='new snapshot';
Copy

要创建与第二个服务实例相关联的卷的快照,请在前面的 SQL 中指定 INSTANCE 1

语言: 中文