CREATE SNAPSHOT

Nota

Esta operação não é atualmente coberta pelo nível de serviço definido na Política de suporte e Acordo de nível de serviço da Snowflake.

Cria ou substitui um instantâneo de um volume nomeado da instância de serviço especificada. O instantâneo é criado no esquema atual.

Consulte também:

ALTER SNAPSHOT, DESCRIBE SNAPSHOT, DROP SNAPSHOT , SHOW SNAPSHOTS

Sintaxe

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

Parâmetros obrigatórios

name

Cadeia de caracteres que especifica o identificador (ou seja, o nome) do instantâneo; deve ser exclusivo para o esquema no qual o instantâneo é criado.

Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo, "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais informações, consulte Requisitos para identificadores.

FROM SERVICE service_name

Especifica o nome do serviço.

VOLUME "volume_name"

Especifica o nome do volume associado ao serviço. Os instantâneos só podem ser tirados para volumes de armazenamento em bloco (e não para volumes locais, de memória ou de estágio).

Os nomes de volume diferenciam maiúsculas de minúsculas. Portanto, aspas duplas devem sempre ser usadas para corresponder ao nome correspondente na especificação do serviço.

INSTANCE instance_id

Índice da instância do serviço. O índice de instância de serviço começa em 0 e o intervalo é [0, ...,  MAX_INSTANCES - 1]. Você pode chamar a função SYSTEM$GET_SERVICE_STATUS — Obsoleto para obter as informações relevantes.

Parâmetros opcionais

COMMENT = 'string_literal'

Especifica um comentário para o serviço.

Padrão: sem valor

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

Especifica o nome da tag e o valor da cadeia de caracteres dela.

O valor de tag é sempre uma cadeia de caracteres, e o número máximo de caracteres do valor da tag é 256.

Para obter informações sobre como especificar tags em uma instrução, consulte Cotas de tags para objetos e colunas.

Requisitos de controle de acesso

A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:

Privilégio

Objeto

Notas

CREATE SNAPSHOT

Esquema

OPERATE

Serviço

O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Notas de uso

  • Em relação aos metadados:

    Atenção

    Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.

  • Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.

  • O Snowflake exclui os serviços de trabalho aproximadamente 10 minutos após a conclusão de sua execução. Para preservar o conteúdo de um volume de armazenamento em bloco usado pelo serviço de trabalho, é necessário criar um instantâneo antes que o Snowflake exclua o trabalho. Por exemplo, você pode usar um procedimento armazenado para executar primeiro um serviço de trabalho e criar um instantâneo imediatamente após ele.

  • Um esquema não pode conter instantâneos com o mesmo nome. Ao criar um instantâneo, se já existir outro com o mesmo nome no esquema, será retornado um erro e o instantâneo não será criado, a menos que a palavra-chave opcional OR REPLACE seja inclusa no comando; nesse caso, o Snowflake excluirá o instantâneo existente e criará um novo.

    Importante

    Um instantâneo excluído com o comando DROP SNAPSHOT ou CREATE OR REPLACE SNAPSHOT não pode ser restaurado.

Exemplos

Se você criar um serviço com duas instâncias (o número de contêineres não é relevante) com um volume chamado “dados”, você criaria um instantâneo do volume associado à primeira instância usando o seguinte SQL:

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

Para criar um instantâneo do volume associado à segunda instância de serviço, especifique INSTANCE 1 no SQL precedente.