ALTER SNAPSHOT POLICY

Modifica as propriedades de uma política de instantâneos. As seguintes alterações são compatíveis:

  • Renomear a política.

  • Adicione ou atualize o comentário para a política.

  • Alterar as configurações de cronograma e expiração da política. O cronograma determina a frequência com que o Snowflake faz um backup automático e adiciona o instantâneo resultante ao conjunto de instantâneos governado pela política. O período de expiração determina quanto tempo cada instantâneo é retido antes que o Snowflake o exclua automaticamente do conjunto de instantâneos associado.

  • Desative as propriedades da política, para que elas retornem aos seus valores padrão.

Consulte também:

CREATE SNAPSHOT POLICY, DROP SNAPSHOT POLICY, SHOW SNAPSHOT POLICIES

Sintaxe

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

Parâmetros

name

Especifica o identificador da política de instantâneos.

Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

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

RENAME TO new_name

Especifica o novo identificador da política de instantâneos. Deve ser único para sua conta.

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

SET...

Especifica uma ou mais propriedades a serem definidas para a política de instantâneo (separadas por espaços em branco, vírgulas ou novas linhas):

COMMENT = 'string_literal'

Especifica um comentário para a política de instantâneos.

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

Especifica o cronograma para a criação de instantâneos de um objeto.

Nota

O cronograma mínimo para instantâneos é de 60 minutos.

Toda política deve incluir uma cláusula SCHEDULE, uma cláusula EXPIRE_AFTER_DAYS ou ambas.

  • USING CRON expr time_zone

    Especifica uma expressão cron e um fuso horário para o momento em que um instantâneo de um objeto é criado. Oferece suporte a um subconjunto de sintaxe de utilitário cron padrão.

    Para uma lista de fusos horários, consulte a lista de fusos horários do banco de dados tz (no Wikipedia).

    A expressão cron consiste nos seguintes campos:

    # __________ 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)
    # | | | | |
    # | | | | |
      * * * * *
    

    Os seguintes caracteres especiais são suportados:

    *

    Curinga. Especifica qualquer ocorrência do campo.

    L

    Significa “último”. Quando usado no campo do dia da semana, permite especificar construções como “a última sexta-feira” (“5L”) de um determinado mês. No campo do dia do mês, ele especifica o último dia do mês.

    /n

    Indica a enésima instância de uma determinada unidade de tempo. Cada quanta de tempo é computada independentemente. Por exemplo, se 4/3 estiver especificado no campo do mês, o instantâneo será programado para abril, julho e outubro (ou seja, a cada 3 meses, começando com o quarto mês do ano). O mesmo cronograma é mantido nos anos seguintes. Ou seja, o instantâneo não é programado para ser executado em janeiro (3 meses após a execução de outubro).

    Nota

    • Atualmente, a expressão cron avalia apenas em relação ao fuso horário especificado. Alterar o valor do parâmetro TIMEZONE para a conta (ou definir o valor no nível do usuário ou da sessão) não altera o fuso horário para o instantâneo.

    • A expressão cron define todos os tempos de execução válidos para o instantâneo. O Snowflake tenta criar um instantâneo com base nesse cronograma; no entanto, qualquer tempo de execução válido é ignorado se uma execução anterior não tiver sido concluída antes do próximo tempo de execução válido começar.

    • Quando tanto um dia específico do mês como um dia da semana são incluídos na expressão cron, o instantâneo é programada em dias que satisfaçam o dia do mês ou o dia da semana. Por exemplo, SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC' agenda um instantâneo às 0AM (meia-noite) em qualquer dia de 10 a 20 e também em qualquer terça ou quinta-feira fora dessas datas.

  • num MINUTE

    Especifica um intervalo (em minutos) de tempo de espera entre instantâneos. Aceita apenas números inteiros positivos.

    Também oferece suporte à sintaxe num M.

    Para evitar ambiguidade, um tempo de intervalo base é definido nas seguintes circunstâncias:

    • Quando o objeto é criado (usando CREATE SNAPSHOT SET … WITH SNAPSHOT POLICY).

    • Quando um intervalo diferente é definido (usando ALTER SNAPSHOT SET … APPLY SNAPSHOT POLICY ou ALTER SNAPSHOT POLICY … SET SCHEDULE).

    O tempo de intervalo base inicia o contador de intervalo a partir da hora atual do relógio. Por exemplo, se o valor de INTERVAL for definido como 10 e o instantâneo agendado for habilitado às 9:03 AM, os próximos instantâneos serão criados às 9:13 AM, às 9:23 AM e assim por diante. Observe que fazemos o melhor para assegurar uma precisão absoluta, mas só garantimos que um instantâneo não seja executado antes do intervalo definido ocorrer (ou seja, no exemplo atual, o instantâneo poderia ser executado primeiro às 9:14 AM, mas definitivamente não será executado às 9:12 AM).

EXPIRE_AFTER_DAYS = days_integer

Especifica o número de dias até que o instantâneo expire. O Snowflake exclui automaticamente os instantâneos expirados. Se esse parâmetro não for especificado, os instantâneos permanecerão no conjunto de instantâneos até serem excluídos manualmente do conjunto.

Nota

Se a política tiver um bloqueio de retenção, você poderá aumentar o valor de EXPIRE_AFTER_DAYS, mas não é possível diminuir esse valor.

Toda política deve incluir uma cláusula SCHEDULE, uma cláusula EXPIRE_AFTER_DAYS ou ambas.

UNSET...

Desmarque uma das seguintes propriedades para a política de instantâneo. A propriedade retorna ao seu valor padrão.

  • COMMENT

  • SCHEDULE

  • EXPIRE_AFTER_DAYS

Nota

Você pode remover a definição da propriedade SCHEDULE ou da propriedade EXPIRE_AFTER_DAYS, mas não de ambas. Por exemplo, você pode manter a propriedade EXPIRE_AFTER_DAYS quando você não pretende criar novos instantâneos, mas deseja que os instantâneos existentes expirem após um determinado período.

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

OWNERSHIP

A função usada para modificar uma política de instantâneo deve ter o privilégio OWNERSHIP na política de instantâneo.

APPLY SNAPSHOT RETENTION LOCK

A função usada para modificar uma política de instantâneo com bloqueio de retenção deve ter esse privilégio na conta.

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.

Exemplos

Adicionar um comentário à política de instantâneos hourly_snapshot_policy:

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

Cronograma de alterações para política de instantâneos every_two_hours:

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

Inversão da propriedade EXPIRE_AFTER_DAYS de volta para seu valor padrão:

ALTER SNAPSHOT POLICY sample_snapshot_policy UNSET EXPIRE_AFTER_DAYS;
Copy