Compartilhar via


Visão geral da exclusão reversível

Aplica-se a: ✅Azure Data Explorer

Há suporte para a capacidade de excluir registros individuais. A exclusão de registros geralmente é obtida usando um dos seguintes métodos:

  • Para excluir registros com uma garantia do sistema de que os artefatos de armazenamento que contêm esses registros também sejam excluídos, use .purge
  • Para excluir registros sem essa garantia, use .delete conforme descrito neste artigo – esse comando marca os registros como excluídos, mas não exclui necessariamente os dados dos artefatos de armazenamento. Esse método de exclusão é mais rápido do que limpar.

Para obter informações sobre como usar o comando, consulte Sintaxe

Casos de uso

Esse método de exclusão só deve ser usado para a exclusão não planejada de registros individuais. Por exemplo, se você descobrir que um dispositivo IoT está relatando telemetria corrompida por algum tempo, considere usar esse método para excluir os dados corrompidos.

Se você precisar excluir registros com frequência para eliminação de duplicação ou atualizações, recomendamos o uso de exibições materializadas. Consulte escolher entre exibições materializadas e exclusão reversível para eliminação de duplicação de dados.

Processo de exclusão

O processo de exclusão reversível é executado usando as seguintes etapas:

  1. Executar consulta de predicado: A tabela é verificada para identificar extensões de dados que contêm registros a serem excluídos. As extensões identificadas são aquelas com um ou mais registros retornados pela consulta de predicado.
  2. Substituição de extensões: as extensões identificadas são substituídas por novas extensões que apontam para os blobs de dados originais e também têm uma nova coluna oculta do tipo bool que indica por registro se ela foi excluída ou não. Depois de concluída, se nenhum novo dado for ingerido, a consulta de predicado não retornará nenhum registro se for executada novamente.

Limitações e considerações

  • O processo de exclusão é definitivo e irreversível. Não é possível desfazer esse processo ou recuperar dados que foram excluídos, mesmo que os artefatos de armazenamento não sejam necessariamente excluídos após a operação.

  • A exclusão reversível tem suporte para tabelas nativas e exibições materializadas. Não há suporte para tabelas externas.

  • Antes de executar a exclusão reversível, verifique o predicado executando uma consulta e verificando se os resultados correspondem ao resultado esperado. Você também pode executar o comando no whatif modo, que retorna o número de registros que devem ser excluídos.

  • Não execute várias operações paralelas de exclusão reversível na mesma tabela, pois isso pode resultar em falhas de alguns ou de todos os comandos. No entanto, é possível executar várias operações paralelas de exclusão reversível em tabelas diferentes.

  • Não execute os comandos de exclusão reversível e limpeza na mesma tabela em paralelo. Primeiro, aguarde a conclusão de um comando e só então execute o outro comando.

  • A exclusão reversível é executada no URI do cluster: https://[YourClusterName].[region].kusto.windows.net. O comando requer permissões de administrador de banco de dados no banco de dados relevante.

  • A exclusão de registros de uma tabela que é uma tabela de origem de uma exibição materializada pode ter um impacto na exibição materializada. Se os registros que estão sendo excluídos ainda não tiverem sido processados pelo ciclo de materialização, esses registros estarão ausentes na exibição, pois nunca serão processados. Da mesma forma, a exclusão não terá impacto na exibição materializada se os registros já tiverem sido processados.

  • Limitações do predicado:

    • Deve conter pelo menos um where operador.
    • Ele só pode fazer referência à tabela da qual os registros devem ser excluídos.
    • Somente os seguintes operadores são permitidos: extend, order, take project, e where. Dentro toscalar()do , o summarize operador também é permitido.

Desempenho de exclusão

As principais considerações que podem afetar o desempenho do processo de exclusão são:

  • Executar consulta de predicado: o desempenho dessa etapa é muito semelhante ao desempenho do próprio predicado. Pode ser um pouco mais rápido ou mais lento, dependendo do predicado, mas espera-se que a diferença seja insignificante.
  • Substituição de extensões: o desempenho desta etapa depende do seguinte:
    • Distribuição de registros entre as extensões de dados no cluster
    • O número de nós no cluster

Ao contrário .purgedo , o .delete comando não reingere os dados. Ele apenas marca os registros retornados pela consulta de predicado como excluídos e, portanto, é muito mais rápido.

Desempenho da consulta após a exclusão

Não se espera que o desempenho da consulta mude visivelmente após a exclusão de registros.

A degradação do desempenho não é esperada porque o filtro adicionado automaticamente em todas as consultas que filtram os registros que foram excluídos é eficiente.

No entanto, também não há garantia de que o desempenho da consulta melhorará. Embora a melhoria de desempenho possa ocorrer para alguns tipos de consultas, pode não acontecer para outros. Para melhorar o desempenho da consulta, as extensões nas quais a maioria dos registros é excluída são compactadas periodicamente, substituindo-as por novas extensões que contêm apenas os registros que não foram excluídos.

Impacto no CPV (custo dos produtos vendidos)

Na maioria dos casos, a exclusão de registros não resultará em uma alteração do CPV.

  • Não haverá diminuição, porque nenhum registro é realmente excluído. Os registros são marcados apenas como excluídos usando uma coluna oculta do tipo bool, cujo tamanho é insignificante.
  • Na maioria dos casos, não haverá aumento porque a .delete operação não requer o provisionamento de recursos extras.
  • Em alguns casos, as extensões nas quais a maioria dos registros é excluída são compactadas periodicamente, substituindo-as por novas extensões que contêm apenas os registros que não foram excluídos. Isso causa a exclusão dos artefatos de armazenamento antigos que contêm um grande número de registros excluídos. As novas extensões são menores e, portanto, consomem menos espaço na conta de armazenamento e no cache frequente. No entanto, na maioria dos casos, o efeito disso no CPV é insignificante.