Otimizar tabelas do Iceberg - Amazon Athena

Otimizar tabelas do Iceberg

À medida que os dados se acumulam em uma tabela Iceberg, as consultas gradualmente se tornam menos eficientes devido ao aumento do tempo de processamento necessário para abrir arquivos. Custo computacional adicional é incorrido se a tabela contiver delete files. No Iceberg, delete files armazena exclusões no nível de linha e o mecanismo deve aplicar as linhas excluídas aos resultados da consulta.

Para ajudar a otimizar a performance de consultas em tabelas Iceberg, o Athena oferece suporte à compactação manual como um comando de manutenção de tabela. As compactações otimizam o layout estrutural da tabela sem alterar o seu conteúdo.

OPTIMIZE

A ação de compactação OPTIMIZE table REWRITE DATA regrava os arquivos de dados em um layout mais otimizado com base no tamanho e no número de delete files associados. Para obter detalhes sobre a sintaxe e as propriedades da tabela, consulte OPTIMIZE.

Exemplo

O exemplo a seguir mescla delete files em arquivos de dados e produz arquivos próximos ao tamanho do arquivo de destino, em que o valor de category é c1.

OPTIMIZE iceberg_table REWRITE DATA USING BIN_PACK WHERE category = 'c1'

VACUUM

VACUUM executa a expiração do snapshot e a remoção de arquivos órfãos. Essas ações reduzem o tamanho dos metadados e removem os arquivos que não estão no estado atual da tabela e que também são mais antigos do que o período de retenção especificado para a tabela. Para obter detalhes sobre a sintaxe, consulte VACUUM.

Exemplo

O exemplo a seguir usa uma propriedade de tabela para configurar a tabela iceberg_table para reter os últimos três dias de dados e, em seguida, usa VACUUM para expirar os snapshots antigos e remover os arquivos órfãos da tabela.

ALTER TABLE iceberg_table SET TBLPROPERTIES ( 'vacuum_max_snapshot_age_seconds'='259200' ) VACUUM iceberg_table