Compartilhar via


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 do 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 estão qualificados para remoção. Não há garantia específica quando ocorre a remoção. Os dados podem "permanecer" mesmo que a política de retenção seja acionada.

A política de retenção é mais comumente 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 como Disabled.
  • 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 1,000 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 novos e existentes.
  • 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 como Enabled, os dados poderão ser recuperados por 14 dias após a exclusão reversível.
    • 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 por seu 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": "365000.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 tabelas MyTable1, MyTable2, e MySpecialTable.

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

Defina todas as tabelas no banco de dados para ter um período de exclusão reversível de sete dias e 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 a capacidade de recuperação desabilitada.

  • Defina MySpecialTable para 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 e a capacidade de recuperação relevantes.

    .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 1.000 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 no nível do banco de dados e no nível da tabela não MySpecialTable 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 table MySpecialTable, defina uma política de retenção no nível da tabela com um período de exclusão reversível de 1.000 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 "{}"