Tamanho da tabela no Databricks
O tamanho da tabela relatado para tabelas Delta Lake e Apache Iceberg difere do tamanho total dos diretórios de arquivos correspondentes no armazenamento de objetos cloud. Esses formatos de dados retêm versões anteriores de arquivos de dados para permitir consultas de viagem do tempo. Os arquivos de dados só são removidos quando ocorre a execução de VACUUM após a passagem do limite de retenção. Consulte Remover arquivos de dados não utilizados com vacuum.
Por que o tamanho da tabela difere do tamanho do diretório
Os tamanhos de tabela relatados no Databricks por meio de UIs e comandos DESCRIBE referem-se ao tamanho total dos arquivos de dados no armazenamento para os arquivos referenciados na versão atual da tabela. A maioria das operações que gravam em tabelas exige a reescrita de arquivos de dados subjacentes e retém arquivos de dados antigos para permitir consultas de viagem do tempo.
Se você costuma excluir ou atualizar registros em tabelas, os vetores de exclusão podem acelerar as consultas e reduzir o tamanho total dos arquivos de dados. Consulte Vetores de exclusão no Databricks.
Métricas de armazenamento computacional para uma tabela
Aplica-se a: Databricks Runtime 18.0 e acima
Para entender por que o tamanho total do armazenamento difere do tamanho da tabela, use ANALYZE TABLE … COMPUTE STORAGE METRICS. Este comando mostra um detalhamento detalhado da alocação de armazenamento, ajudando a:
- Identifique oportunidades de otimização de custos : Veja quanto espaço de armazenamento pode ser recuperado com
VACUUM - Analise o overhead da viagem do tempo : entenda o custo de retenção de dados históricos
- Rastrear padrões de armazenamento : Monitore como o armazenamento da tabela evolui ao longo do tempo executando o comando periodicamente.
- Auditoria de armazenamento em todas as tabelas : execute o comando em um loop para analisar todo o seu conjunto de dados.
O comando retorna métricas abrangentes, incluindo:
- Tamanho total de armazenamento : Espaço total ocupado, incluindo todos os dados, metadados e logs
- Dados ativos : Tamanho da versão atual da tabela
- Dados "vacuáveis" : Espaço que pode ser recuperado.
- dados da viagem do tempo : dados históricos para rollbacks
Isso é particularmente valioso para Unity Catalog , onde Databricks gerencia automaticamente o armazenamento por meio de otimização preditiva.
Consulte ANALYZE TABLE … compute STORAGE métricas para obter a sintaxe completa e exemplos.
Use a otimização preditiva para controlar o tamanho dos dados
O Databricks recomenda o uso de tabelas gerenciadas do Unity Catalog com otimização preditiva habilitada. Com tabelas gerenciadas e otimização preditiva, o Databricks executa automaticamente os comandos OPTIMIZE e VACUUM para evitar o acúmulo de arquivos de dados não utilizados. Espere 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 da cloud. Os arquivos de dados não referenciados na versão atual são necessários para suportar consultas de viagem do tempo. Consulte Otimização preditiva para tabelas gerenciadas do Unity Catalog.
VACUUM métricas de armazenamento
Quando você limpa arquivos de dados não utilizados com VACUUM ou usa DRY RUN para visualizar os arquivos definidos para remoção, as métricas relatam 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 é comum que o tamanho dos arquivos removidos exceda o tamanho total da versão atual da tabela.
OPTIMIZE métricas de armazenamento
Quando a execução de OPTIMIZE em uma tabela de destino ocorre, novos arquivos de dados combinam registros de arquivos de dados existentes. As alterações confirmadas durante OPTIMIZE afetam apenas a organização dos dados, e nenhuma alteração no conteúdo dos dados subjacentes ocorre. O tamanho total dos arquivos de dados subjacentes para a tabela aumenta após OPTIMIZE execuções, porque os novos arquivos compactados coexistem no diretório que os contém com os arquivos de dados antigos não otimizados.
O tamanho da tabela relatado após OPTIMIZE é geralmente menor que o tamanho antes de OPTIMIZE execuções, porque o tamanho total dos arquivos de dados referenciados pela versão atual da tabela diminui com a compactação de dados. Para remover os arquivos de dados subjacentes, a execução de VACUUM deve ocorrer após o limite de retenção ser ultrapassado.
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 o site VACUUM remova os arquivos de dados que não são mais referenciados na versão atual da tabela.