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 Unity Catalog gerenciar tabelas.
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.