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?

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.