CREATE SNAPSHOT SET¶
Cria um conjunto de instantâneos para uma tabela, um esquema ou um banco de dados. Depois que o conjunto de instantâneos existir, é possível adicionar um novo backup (instantâneo) ao conjunto de instantâneos a qualquer momento executando um comando ALTER SNAPSHOT SET. O Snowflake também adiciona instantâneos ao conjunto de instantâneos automaticamente, se você definiu um cronograma em uma política de instantâneos e associou essa política de instantâneos ao conjunto de instantâneos.
Cada conjunto de instantâneos representa um conjunto de backups para uma tabela específica, ou os objetos em um esquema específico, ou os objetos em um banco de dados específico. Dessa forma, você pode tornar seus backups muito granulares ou muito abrangentes. E os backups para cada tabela, esquema ou banco de dados podem ter seus próprios cronogramas independentes.
Para os tipos de objetos que estão incluídos nos instantâneos de esquema e instantâneos de banco de dados, consulte Objetos de instantâneo.
- Consulte também:
ALTER SNAPSHOT SET, DROP SNAPSHOT SET, SHOW SNAPSHOT SETS, CREATE SNAPSHOT POLICY
Sintaxe¶
CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
FOR [DYNAMIC] TABLE <table_name>
[ WITH SNAPSHOT POLICY <policy_name> ]
[ COMMENT = <string> ]
CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
FOR SCHEMA <schema_name>
[ WITH SNAPSHOT POLICY <policy_name> ]
[ COMMENT = <string> ]
CREATE [OR REPLACE] SNAPSHOT SET [IF NOT EXISTS] <name>
FOR DATABASE <database_name>
[ WITH SNAPSHOT POLICY <policy_name> ]
[ COMMENT = <string> ]
Parâmetros obrigatórios¶
name
Identificador do conjunto de instantâneos. Deve ser exclusivo para sua conta.
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.
FOR [DYNAMIC] TABLE table_name
Especifica o nome da tabela ou tabela dinâmica. Nesse caso, o conjunto de instantâneos representa backups de uma única tabela.
FOR SCHEMA schema_name
Especifica o nome do esquema. Nesse caso, o conjunto de instantâneos representa backups de todas as tabelas e outros objetos em um esquema específico.
FOR DATABASE database_name
Especifica o nome do banco de dados. Nesse caso, o conjunto de instantâneos representa backups de todas as tabelas, esquemas e outros objetos em um banco de dados específico.
Parâmetros opcionais¶
OR REPLACE
Se já existir um conjunto de instantâneos com esse nome, exclua-o e crie um novo. Se o conjunto de instantâneos não puder ser excluído devido às regras de política de instantâneos para bloqueios de retenção, suspensões legais e tempos de expiração, o comando falhará. Esta cláusula é mutuamente exclusiva com
IF NOT EXISTS
.IF NOT EXISTS
Cria o conjunto de instantâneos somente se não houver um conjunto de instantâneos com o mesmo nome. Se já existir um conjunto de instantâneos, o comando retornará uma mensagem de sucesso, mesmo que não tenha efeito. Esta cláusula é mutuamente exclusiva com
OR REPLACE
.WITH SNAPSHOT POLICY policy_name
Especifica o nome da política de instantâneos para o conjunto. A política de instantâneos define propriedades do conjunto de instantâneos, como o agendamento de backups, o período de retenção para cada instantâneo e se é necessário evitar que os instantâneos sejam removidos antes do fim do período de retenção.
Se você omitir este parâmetro do comando CREATE SNAPSHOT SET, poderá aplicar uma política mais tarde com o comando ALTER SNAPSHOT SET.
Importante
Aplicar uma política de instantâneo com um bloqueio de retenção a um conjunto de instantâneo é irreversível. Devido às sólidas garantias necessárias para a conformidade regulatória, depois de colocar um bloqueio de retenção em um conjunto de instantâneos, não será possível revogar o bloqueio. O suporte Snowflake também não pode revogar esse bloqueio de retenção. Planeje com cuidado antes de definir um bloqueio de retenção em um conjunto de instantâneos com um longo período de expiração, para evitar cobranças inesperadas de armazenamento para conjuntos de instantâneos não excluíveis e para os esquemas e bancos de dados que os contêm.
Se uma organização Snowflake for excluída, ela deixará de ser um cliente Snowflake. Nesse caso, o Snowflake exclui todos os instantâneos, incluindo aqueles com bloqueios de retenção. A exclusão de uma organização Snowflake requer o envolvimento do suporte Snowflake. Não é algo que um administrador possa fazer por acidente.
COMMENT = 'string_literal'
Especifica um comentário para o conjunto de instantâneos.
Padrão: sem valor
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 |
Notas |
---|---|
CREATE SNAPSHOT SET |
A função usada para criar um conjunto de instantâneos deve ter esse privilégio concedido no esquema no qual o conjunto de instantâneos é criado. Para criar o conjunto de instantâneos, também é necessário o privilégio apropriado no objeto que é o sujeito do conjunto: SELECT para um instantâneo de tabela ou USAGE para um instantâneo de esquema ou de banco de dados. |
SELECT |
A função usada para criar um conjunto de instantâneos para uma tabela deve ter o privilégio SELECT nessa tabela. |
USAGE |
A função usada para criar um conjunto de instantâneos para um esquema ou banco de dados deve ter o privilégio USAGE nesse esquema ou banco de dados. |
APPLY SNAPSHOT RETENTION LOCK |
A função usada para aplicar uma política de instantâneo com bloqueio de retenção em um conjunto de instantâneo deve ter esse privilégio na conta. |
Esses privilégios são exigidos na função primária atualmente ativa, não em uma função secundária.
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.
Importante
Se a política de instantâneos tiver um bloqueio de retenção aplicado a ela e houver quaisquer instantâneos não expirados no conjunto de instantâneos, não será possível excluir o conjunto de instantâneos. Nesse caso, você deve aguardar até que todos os instantâneos no conjunto expirem. Esta restrição aplica-se até mesmo a funções privilegiadas como ACCOUNTADMIN, e ao suporte Snowflake. Por esse motivo, tenha cuidado ao especificar o bloqueio de retenção e um longo período de expiração em uma política de instantâneo.
Exemplos¶
Criação de um conjunto de instantâneos chamado t1_snapshots
para a tabela t1
:
CREATE SNAPSHOT SET t1_snapshots
FOR TABLE t1;
Criação de um conjunto de instantâneos t1_snapshots
para a tabela t1
com uma política de instantâneos:
CREATE SNAPSHOT SET t1_snapshots
FOR TABLE t1
WITH SNAPSHOT POLICY hour_snapshot_policy;
Criação de um conjunto de instantâneos s1_snapshots
para o esquema s1
com uma política de instantâneos:
CREATE SNAPSHOT SET s1_snapshots
FOR SCHEMA s1
WITH SNAPSHOT POLICY hour_snapshot_policy;
Criação de um conjunto de instantâneos d1_snapshots
para o banco de dados d1
com uma política de instantâneos:
CREATE SNAPSHOT SET d1_snapshots
FOR DATABASE d1
WITH SNAPSHOT POLICY hour_snapshot_policy;