Tamanho da tabela no Databricks

O tamanho da tabela relatado para tabelas apoiadas por Delta Lake em Databricks é diferente do tamanho total dos diretórios de arquivos correspondentes no armazenamento de objetos cloud. Este artigo discute por que essa diferença existe e apresenta recomendações para o controle de custos.

Por que o tamanho da minha tabela Delta não corresponde ao tamanho do diretório?

Os tamanhos de tabela informados em Databricks por meio de UIs e DESCRIBE comando referem-se ao tamanho total dos arquivos de dados em disco para os arquivos referenciados na versão atual da tabela Delta. A maioria das operações que gravam em tabelas exige a reescrita de arquivos de dados subjacentes, mas os arquivos de dados antigos são mantidos por um período de tempo para dar suporte às consultas de viagem do tempo.

Observação

Se o usuário exclui ou atualiza regularmente os registros nas tabelas, os vetores de exclusão podem acelerar as consultas e reduzir o tamanho total dos arquivos de dados. Consulte O que são vetores de exclusão?

Use a otimização preditiva para controlar o tamanho dos dados

Databricks recomenda o uso do site Unity Catalog gerenciar tabelas com a otimização preditiva ativada. Com tabelas gerenciáveis e otimização preditiva, o Databricks executa automaticamente OPTIMIZE e VACUUM comandos para evitar o acúmulo de arquivos de dados não utilizados. Espera-se que sempre haja uma diferença de tamanho entre a versão atual de uma tabela e o tamanho total dos arquivos de dados no armazenamento de objetos cloud. Isso ocorre porque os arquivos de dados não referenciados na versão atual são necessários para dar suporte às consultas de viagem do tempo. Consulte Otimização preditiva para Delta Lake.

Quais métricas de arquivo o VACUUM reporta?

Quando o senhor limpa os arquivos de dados não utilizados com VACUUM ou usa DRY RUN para visualizar os arquivos definidos para remoção, as métricas informam o número de arquivos e o tamanho dos dados removidos. O tamanho e o número de arquivos removidos por VACUUM variam drasticamente, mas não é incomum que o tamanho dos arquivos removidos exceda o tamanho total da versão atual da tabela.

Quais métricas de arquivo o OPTIMIZE reporta?

Quando OPTIMIZE executado em uma tabela de destino, os novos arquivos de dados combinam registros de arquivos de dados existentes. As alterações feitas durante OPTIMIZE afetam apenas a organização dos dados e não ocorrem alterações no conteúdo dos dados subjacentes. O tamanho total dos arquivos de dados associados à tabela aumenta após OPTIMIZE execuções, pois os novos arquivos compactados coexistem no diretório que os contém com os arquivos de dados não mais referenciados.

O tamanho da tabela relatado após OPTIMIZE é geralmente menor do que o tamanho antes da execução de OPTIMIZE, porque o tamanho total dos arquivos de dados referenciados pela versão atual da tabela diminui com a compactação dos dados. VACUUM deve ser executado após o término do limite de retenção para remover os arquivos de dados subjacentes.

Observação

O senhor pode ver métricas semelhantes para operações como REORG TABLE ou DROP FEATURE. Todas as operações que exigem a reescrita de arquivos de dados aumentam o tamanho total dos dados no diretório que os contém até que VACUUM remova os arquivos de dados que não são mais referenciados na versão atual da tabela.