VACUUM

Aplica-se a:check marked yes Databricks SQL check marked yes Databricks Runtime

Remova arquivos não utilizados de um diretório de tabela.

Nota

Esse comando funciona de forma diferente dependendo se você está trabalhando em uma tabela Delta ou Apache Spark.

Fazer a limpeza de uma tabela Delta

Aspirar recursivamente diretórios associados à tabela Delta. Para obter todos os detalhes e limitações, consulte Remover arquivos de dados não utilizados com vácuo.

VACUUM remove todos os arquivos do diretório da tabela que não são gerenciados pela Delta, bem como os arquivos de dados que não estão mais no estado mais recente do log de transações da tabela e são mais antigos do que um limite de retenção. VACUUM ignorará todos os diretórios que começam com um sublinhado (_), que inclui o _delta_log. Particionar sua tabela em uma coluna que começa com um sublinhado é uma exceção a essa regra; VACUUM verifica todas as partições válidas incluídas na tabela Delta de destino. Os arquivos de dados da tabela Delta são excluídos de acordo com o tempo em que foram removidos logicamente do log de transações da Delta mais as horas de retenção, não seus carimbos de data/hora de modificação no sistema de armazenamento. O limiar predefinido é 7 dias.

Em tabelas Delta, o Azure Databricks não aciona VACUUM operações automaticamente.

Se você executar VACUUM em uma tabela Delta, perderá a capacidade de viajar no tempo de volta para uma versão anterior ao período de retenção de dados especificado.

Aviso

É recomendável definir um intervalo de retenção de pelo menos 7 dias, porque instantâneos antigos e arquivos não confirmados ainda podem estar em uso por leitores ou gravadores simultâneos na tabela. Se VACUUM limpar arquivos ativos, leitores simultâneos podem falhar ou, pior, tabelas podem ser corrompidas quando VACUUM exclui arquivos que ainda não foram confirmados. Tem de escolher um intervalo mais longo do que a transação simultânea de execução prolongada e o período mais longo em que qualquer fluxo pode ficar aquém da atualização mais recente para a tabela.

Delta Lake tem uma verificação de segurança para evitar que você execute um comando perigoso VACUUM . No Databricks Runtime, você tem certeza de que não há operações sendo executadas nesta tabela que levem mais do que o intervalo de retenção que você planeja especificar, você pode desativar essa verificação de segurança definindo a propriedade spark.databricks.delta.retentionDurationCheck.enabled de configuração do Spark como false.

VACUUM table_name [RETAIN num HOURS] [DRY RUN]

Parâmetros

  • table_name

    Identifica uma tabela Delta existente. O nome não deve incluir uma especificação temporal.

  • RETER NUM HORAS

    O limiar de retenção.

  • FUNCIONAMENTO SECO

    Retornar uma lista de até 1000 arquivos a serem excluídos.

Aspirar uma mesa não Delta

Aspira recursivamente diretórios associados à tabela não-Delta e remove arquivos não confirmados anteriores a um limite de retenção. O limiar predefinido é 7 dias.

Em tabelas não Delta, o Azure Databricks aciona automaticamente as operações à medida que os VACUUM dados são gravados.

Sintaxe

VACUUM table_name [RETAIN num HOURS]

Parâmetros

  • table_name

    Identifica uma tabela existente por nome ou caminho.

  • RETER NUM HORAS

    O limiar de retenção.