Política de retenção

A política de retenção controla o mecanismo que remove automaticamente os dados das tabelas ou as exibições materializadas. É útil remover dados que fluem continuamente para uma tabela e cuja relevância se baseia na idade. Por exemplo, a política pode ser usada para uma tabela que contém eventos de diagnóstico que podem se tornar desinteressantes após duas semanas.

A política de retenção pode ser configurada para uma tabela específica ou exibição materializada ou para um banco de dados inteiro. Em seguida, a política se aplica a todas as tabelas no banco de dados que não a substituem. Quando a política é configurada no nível do banco de dados e da tabela, a política de retenção na tabela tem precedência sobre a política de banco de dados.

A configuração de uma política de retenção é importante para clusters que estão ingerindo dados continuamente, o que limitará os custos.

Os dados que estão "fora" da política de retenção são qualificados para remoção. Não há nenhuma garantia específica quando a remoção ocorre. Os dados podem "permanecer", mesmo que a política de retenção seja disparada.

A política de retenção geralmente é definida para limitar a idade dos dados desde a ingestão. Para obter mais informações, consulte SoftDeletePeriod.

Observação

  • O tempo de exclusão é impreciso. O sistema garante que os dados não serão excluídos antes que o limite seja excedido, mas a exclusão não é imediata após esse ponto.
  • Um período de exclusão reversível de 0 pode ser definido como parte de uma política de retenção no nível da tabela, mas não como parte de uma política de retenção no nível do banco de dados.
  • Quando isso for feito, os dados ingeridos não serão confirmados na tabela de origem, evitando a necessidade de persistir os dados. Como resultado, Recoverability só pode ser definido Disabledcomo .
  • Essa configuração é útil principalmente quando os dados são ingeridos em uma tabela. Uma política de atualização transacional é usada para transformá-la e redirecionar a saída para outra tabela.

O objeto de política

Uma política de retenção inclui as seguintes propriedades:

  • SoftDeletePeriod:
    • Período de tempo para o qual é garantido que os dados sejam mantidos disponíveis para consulta. O período é medido a partir do momento em que os dados foram ingeridos.
    • Assume o padrão de 100 years.
    • Ao alterar o período de exclusão reversível de uma tabela ou banco de dados, o novo valor se aplica a dados existentes e novos.
  • Capacidade de recuperação:
    • Capacidade de recuperação de dados (Habilitado/Desabilitado) depois que os dados foram excluídos.
    • Assume o padrão de Enabled.
    • Se definido Enabledcomo , os dados poderão ser recuperados por 14 dias após serem excluídos temporariamente.
    • Não é possível configurar o período de recuperação.

Comandos de gerenciamento

Padrões

Por padrão, quando um banco de dados ou uma tabela é criado, ele não tem uma política de retenção definida. Normalmente, o banco de dados é criado e, em seguida, imediatamente tem sua política de retenção definida pelo criador de acordo com os requisitos conhecidos. Quando você executa um .show comando para a política de retenção de um banco de dados ou tabela que não teve sua política definida, Policy aparece como null.

A política de retenção padrão, com os valores padrão mencionados acima, pode ser aplicada usando o comando a seguir.

.alter database DatabaseName policy retention "{}"
.alter table TableName policy retention "{}"
.alter materialized-view ViewName policy retention "{}"

O comando resulta no seguinte objeto de política aplicado ao banco de dados ou tabela.

{
  "SoftDeletePeriod": "36500.00:00:00", "Recoverability":"Enabled"
}

A limpeza da política de retenção de um banco de dados ou tabela pode ser feita usando o comando a seguir.

.delete database DatabaseName policy retention
.delete table TableName policy retention

Exemplos

Para um cluster que tem um banco de dados chamado MyDatabase, com as tabelas MyTable1, MyTable2e MySpecialTable.

Período de exclusão reversível de sete dias e capacidade de recuperação desabilitada

Defina todas as tabelas no banco de dados para ter um período de exclusão reversível de sete dias e a capacidade de recuperação desabilitada.

  • Opção 1 (Recomendado): defina uma política de retenção no nível do banco de dados e verifique se não há políticas no nível da tabela definidas.

    .delete table MyTable1 policy retention        // optional, only if the table previously had its policy set
    .delete table MyTable2 policy retention        // optional, only if the table previously had its policy set
    .delete table MySpecialTable policy retention  // optional, only if the table previously had its policy set
    .alter-merge database MyDatabase policy retention softdelete = 7d recoverability = disabled
    .alter-merge materialized-view ViewName policy retention softdelete = 7d 
    
  • Opção 2: para cada tabela, defina uma política de retenção no nível da tabela, com um período de exclusão reversível de sete dias e capacidade de recuperação desabilitada.

    .alter-merge table MyTable1 policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MyTable2 policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MySpecialTable policy retention softdelete = 7d recoverability = disabled
    

Período de exclusão reversível de sete dias e capacidade de recuperação habilitada

  • Defina tabelas MyTable1 e MyTable2 tenha um período de exclusão reversível de sete dias e capacidade de recuperação desabilitada.

  • Defina MySpecialTable como ter um período de exclusão reversível de 14 dias e capacidade de recuperação habilitada.

  • Opção 1 (Recomendado): defina uma política de retenção no nível do banco de dados e defina uma política de retenção no nível da tabela.

    .delete table MyTable1 policy retention   // optional, only if the table previously had its policy set
    .delete table MyTable2 policy retention   // optional, only if the table previously had its policy set
    .alter-merge database MyDatabase policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MySpecialTable policy retention softdelete = 14d recoverability = enabled
    
  • Opção 2: para cada tabela, defina uma política de retenção no nível da tabela, com o período de exclusão reversível relevante e a capacidade de recuperação.

    .alter-merge table MyTable1 policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MyTable2 policy retention softdelete = 7d recoverability = disabled
    .alter-merge table MySpecialTable policy retention softdelete = 14d recoverability = enabled
    

Período de exclusão reversível de sete dias e MySpecialTable mantém seus dados indefinidamente

Defina tabelas MyTable1 e MyTable2 tenha um período de exclusão reversível de sete dias e mantenha MySpecialTable seus dados indefinidamente.

  • Opção 1: definir uma política de retenção no nível do banco de dados e definir uma política de retenção no nível da tabela, com um período de exclusão reversível de 100 anos, a política de retenção padrão, para MySpecialTable.

    .delete table MyTable1 policy retention   // optional, only if the table previously had its policy set
    .delete table MyTable2 policy retention   // optional, only if the table previously had its policy set
    .alter-merge database MyDatabase policy retention softdelete = 7d
    .alter table MySpecialTable policy retention "{}" // this sets the default retention policy
    
  • Opção 2: para tabelas MyTable1 e MyTable2, defina uma política de retenção no nível da tabela e verifique se a política de nível de banco de dados e de nível de tabela para MySpecialTable não está definida.

    .delete database MyDatabase policy retention   // optional, only if the database previously had its policy set
    .delete table MySpecialTable policy retention   // optional, only if the table previously had its policy set
    .alter-merge table MyTable1 policy retention softdelete = 7d
    .alter-merge table MyTable2 policy retention softdelete = 7d
    
  • Opção 3: para tabelas MyTable1 e MyTable2, defina uma política de retenção no nível da tabela. Para a tabela MySpecialTable, defina uma política de retenção no nível da tabela com um período de exclusão reversível de 100 anos, a política de retenção padrão.

    .alter-merge table MyTable1 policy retention softdelete = 7d
    .alter-merge table MyTable2 policy retention softdelete = 7d
    .alter table MySpecialTable policy retention "{}"