Manutenção de tabelas Delta no Microsoft Fabric

A manutenção das mesas Delta ajuda-o a manter as mesas rápidas e eficientes em armazenamento à medida que crescem. Com o tempo, as tabelas Delta podem acumular muitos ficheiros pequenos, os dados eliminados podem continuar a consumir espaço de armazenamento e estatísticas obsoletas podem reduzir a eficiência das consultas. A manutenção regular ajuda-o a melhorar o desempenho de leitura, recuperar armazenamento e manter os metadados das tabelas alinhados com a forma como as suas cargas de trabalho acedem aos dados. Use este artigo como um guia rápido das principais operações de manutenção disponíveis para as tabelas Delta.

Por que a manutenção é importante

À medida que as tabelas Delta crescem, a atividade de escrita altera o layout físico da tabela. Trabalhos de ingestão repetidos podem criar muitos ficheiros pequenos, operações de atualização e eliminação podem deixar para trás ficheiros sem referência ou linhas apagadas suavemente, e estatísticas mais antigas podem dificultar que o Spark ignore dados desnecessários. Se fizer a manutenção regular das tabelas, reduz a sobrecarga dos varrimentos, ajuda o Fabric a otimizar as consultas mais eficazmente e evita pagar para manter armazenamento de que as versões ativas das tabelas já não precisam.

Utilize o OPTIMIZE para a compactação de contentores

Use OPTIMIZE quando a sua tabela Delta acumulou muitos ficheiros pequenos e quiser consolidá-los em menos ficheiros maiores. Esta operação melhora o desempenho de leitura ao reduzir a sobrecarga de gestão de ficheiros e tornar as digitalizações mais eficientes. OPTIMIZE também suporta outros argumentos e funcionalidades como VORDER. Para sintaxe completa, opções e exemplos, veja Compactação da tabela e ordem V.

OPTIMIZE table_name

Use o VACUUM para limpar o armazenamento

Use VACUUM quando quiser remover ficheiros de dados não referenciados que sejam mais antigos do que a janela de retenção configurada. No Fabric, esta operação ajuda-te a recuperar armazenamento OneLake após atualizações, eliminações, fusões, operações de sobrescrever e compactação. VACUUM foca-se na limpeza do armazenamento em vez da otimização de consultas, pelo que normalmente complementa outras tarefas de manutenção em vez de as substituir. Para orientações de retenção e detalhes de execução, consulte VACUUM.

VACUUM table_name

Use o REORG para uma reorganização direcionada

Usa REORG quando precisares de reescrever o estado da tabela para um objetivo específico de manutenção em vez de compactação geral de ficheiros. No Delta Lake, REORG TABLE ... APPLY (PURGE) remove fisicamente as linhas que os vetores de eliminação marcaram como eliminadas. Para as opções suportadas e quando as usar, veja Reorganizar tabelas Delta com REORG.

Note

REORG normalmente não é necessário porque OPTIMIZE elimina automaticamente ficheiros onde mais de 5% de registos são referenciados por vetores de eliminação.

REORG TABLE table_name APPLY (PURGE)

Mantenha as estatísticas atualizadas

O Fabric Spark Runtime suporta dois tipos de estatísticas em tabelas Delta: estatísticas de ficheiros e estatísticas de tabelas.

  • Estatísticas do ficheiro — Delta Lake regista valores mínimos, máximos e de contagem nula por ficheiro para colunas indexadas sempre que um ficheiro de dados é escrito. O motor Spark usa estas estatísticas para saltar ficheiros que não podem conter linhas que correspondam a um predicado de consulta, o que reduz a quantidade de dados digitalizados. Por defeito, as estatísticas são recolhidas para as primeiras 32 colunas. Para mais detalhes sobre como funciona o ignoramento de ficheiros e como personalizar as colunas para as quais são recolhidas estatísticas, consulte Ignoramento de ficheiros.
  • Estatísticas da tabela — Estatísticas ao nível das colunas agregadas em todos os ficheiros da tabela são mantidas automaticamente para que o Spark tenha melhores metadados para o planeamento de consultas. Estas estatísticas melhoram o desempenho por meio de melhores decisões de otimização para filtros, junções e agregações. Para saber como funcionam as estatísticas automatizadas e como configurar, consulte Estatísticas automatizadas para tabelas Delta.

Use a autocompactação para gestão contínua de ficheiros

O Delta Lake também suporta a compactação automática após a escrita, para que as tabelas se mantenham em melhor estado sem exigir uma tarefa manual autónoma de cada vez. Pode controlar este comportamento através das propriedades das tabelas ou das definições do espaço de trabalho, dependendo de como gere as suas cargas de trabalho no Spark. Consulte Compactação automática para mais detalhes sobre como a ativar.

Executar a manutenção a partir da IU do lakehouse

Se preferir um fluxo de trabalho baseado em interface, pode executar ações de manutenção diretamente a partir do explorador Lakehouse, veja manutenção de tabelas Lakehouse.

Siga uma cadência prática de manutenção

Executa OPTIMIZE após uma ingestão em grandes lotes ou sempre que ficheiros pequenos começarem a acumular-se e a atrasar as leituras. Execute VACUUM numa cadência regular, por exemplo, semanalmente ou após os principais ciclos de compactação, para recuperar espaço de armazenamento de ficheiros a que a tabela já não faz referência. REORG TABLE ... APPLY (PURGE) não é necessário como manutenção rotineira porque OPTIMIZE elimina automaticamente ficheiros onde mais de 5% de registos são referenciados por vetores de eliminação. Utilize PURGE apenas em cenários que exijam controlo explícito, como conformidade ou obrigações do RGPD. Monitorize a condição da tabela com DESCRIBE DETAIL e DESCRIBE HISTORY para poder acompanhar a contagem de ficheiros, o tamanho e o histórico de manutenção antes e depois de cada operação.

-- View current table state
DESCRIBE DETAIL table_name;

-- View history of transactions
DESCRIBE HISTORY table_name;