Política de retenção
A política de retenção controla o mecanismo que remove automaticamente dados de tabelas ou vistas materializadas. É útil remover dados que fluem continuamente para uma tabela e cuja relevância é baseada na idade. Por exemplo, a política pode ser utilizada para uma tabela que contém eventos de diagnóstico que podem tornar-se desinteressadores após duas semanas.
A política de retenção pode ser configurada para uma tabela ou vista materializada específica ou para uma base de dados inteira. Em seguida, a política aplica-se a todas as tabelas na base de dados que não a substituem. Quando a política é configurada ao nível da base de dados e da tabela, a política de retenção na tabela tem precedência sobre a política de base de dados.
A configuração de uma política de retenção é importante para clusters que estão a ingerir dados continuamente, o que irá limitar os custos.
Os dados que estão "fora" da política de retenção são elegíveis para remoção. Não há nenhuma 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 é normalmente definida para limitar a idade dos dados desde a ingestão. Para obter mais informações, veja SoftDeletePeriod.
Nota
- O tempo de eliminação é impreciso. O sistema garante que os dados não serão eliminados antes de o limite ser excedido, mas a eliminação não é imediata a seguir a esse ponto.
- Um período de eliminação recuperável de 0 pode ser definido como parte de uma política de retenção ao nível da tabela, mas não como parte de uma política de retenção ao nível da base de dados.
- Quando isto for feito, os dados ingeridos não serão consolidados na tabela de origem, evitando a necessidade de manter os dados. Como resultado,
Recoverability
só pode ser definido comoDisabled
. - Esta configuração é útil principalmente quando os dados são ingeridos numa tabela. Uma política de atualização transacional é utilizada 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 são mantidos disponíveis para consulta. O período é medido a partir do momento em que os dados foram ingeridos.
- A predefinição é
100 years
. - Ao alterar o período de eliminação recuperável de uma tabela ou base de dados, o novo valor aplica-se aos dados existentes e novos.
- Capacidade de recuperação:
- Capacidade de recuperação de dados (Ativada/Desativada) após a eliminação dos dados.
- A predefinição é
Enabled
. - Se estiver definido como
Enabled
, os dados serão recuperáveis durante 14 dias após serem eliminados de forma recuperável. - Não é possível configurar o período de recuperação.
Comandos de gestão
- Utilizado
.show policy retention
para mostrar a política de retenção atual para uma base de dados, tabela ou vista materializada. - Utilizado
.alter policy retention
para alterar a política de retenção atual de uma base de dados, tabela ou vista materializada.
Predefinições
Por predefinição, quando uma base de dados ou uma tabela é criada, não tem uma política de retenção definida. Normalmente, a base de dados é criada e, em seguida, tem imediatamente a política de retenção definida pelo criador de acordo com os requisitos conhecidos.
Quando executa um .show
comando para a política de retenção de uma base de dados ou tabela que não tenha a política definida, Policy
é apresentado como null
.
A política de retenção predefinida, com os valores predefinidos mencionados acima, pode ser aplicada com o seguinte comando.
.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 à base de dados ou tabela.
{
"SoftDeletePeriod": "36500.00:00:00", "Recoverability":"Enabled"
}
Limpar a política de retenção de uma base de dados ou tabela pode ser feita com o seguinte comando.
.delete database DatabaseName policy retention
.delete table TableName policy retention
Exemplos
Para um cluster com uma base de dados denominada MyDatabase
, com as tabelas MyTable1
, MyTable2
e MySpecialTable
.
Período de eliminação recuperável de sete dias e capacidade de recuperação desativada
Defina todas as tabelas na base de dados para terem um período de eliminação recuperável de sete dias e capacidade de recuperação desativada.
Opção 1 (Recomendado): defina uma política de retenção ao nível da base de dados e verifique se não existem políticas ao 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 ao nível da tabela, com um período de eliminação recuperável de sete dias e capacidade de recuperação desativada.
.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 eliminação recuperável de sete dias e capacidade de recuperação ativada
Defina tabelas e
MyTable2
tenha um período de eliminação recuperável de sete dias e capacidade de recuperação desativadaMyTable1
.Defina
MySpecialTable
para ter um período de eliminação recuperável de 14 dias e capacidade de recuperação ativada.Opção 1 (Recomendado): defina uma política de retenção ao nível da base de dados e defina uma política de retenção ao 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 ao nível da tabela, com o período de eliminação recuperá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 eliminação recuperável de sete dias e MySpecialTable
mantém os dados indefinidamente
Defina tabelas MyTable1
e MyTable2
tenha um período de eliminação recuperável de sete dias e mantenha MySpecialTable
os dados indefinidamente.
Opção 1: defina uma política de retenção ao nível da base de dados e defina uma política de retenção ao nível da tabela, com um período de eliminação recuperável de 100 anos, a política de retenção predefinida, 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
eMyTable2
, defina uma política de retenção ao nível da tabela e verifique se a política ao nível da base de dados e ao nível da tabela paraMySpecialTable
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
eMyTable2
, defina uma política de retenção ao nível da tabela. Para a tabelaMySpecialTable
, defina uma política de retenção ao nível da tabela com um período de eliminação recuperável de 100 anos, a política de retenção predefinida..alter-merge table MyTable1 policy retention softdelete = 7d .alter-merge table MyTable2 policy retention softdelete = 7d .alter table MySpecialTable policy retention "{}"
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários