trilha

Tecnologias/04 - Armazenamento de Objetos/01 - Amazon S32 min

Apache Parquet e Consultas no S3

Definição

Apache Parquet é um formato de arquivo colunar. Organiza dados para leitura eficiente de colunas específicas e oferece mecanismos de codificação e compressão. Pode ser armazenado no S3, em disco local ou em outros sistemas de arquivos.

S3 é o local de armazenamento; Parquet é o formato do arquivo. Quem executa SQL é o motor de consulta. Referência: visão geral do Parquet.

Estrutura interna

Um arquivo é dividido em row groups, conjuntos de linhas. Dentro de cada grupo, os dados de cada coluna ficam em column chunks, divididos em páginas. Metadados permitem localizar esses blocos; estatísticas disponíveis podem permitir que leitores compatíveis ignorem partes incompatíveis com um filtro. Referência: formato físico.

Exemplo de consulta com ClickHouse

Considere um arquivo acessível com as colunas instante, caminho e duracao_ms:

SELECT caminho, count() AS acessos, avg(duracao_ms) AS media_ms
FROM s3(
    'https://meu-bucket.s3.amazonaws.com/eventos/2026-09-15.parquet',
    'Parquet'
)
GROUP BY caminho;

O endereço é ilustrativo. Para um objeto privado, o ambiente precisa de autenticação e permissão adequadas; o exemplo não concede acesso. A função lê os dados externos para responder à consulta, sem criar automaticamente uma tabela local. Referência: função s3.

Consulta com DuckDB

3. Parquet e S3 com DuckDB explica a mesma separação entre armazenamento, formato e motor usando read_parquet, com um exemplo local completo e leitura de objetos no S3.

Diferença entre duas partições

  • Prefixo no S3: organização de chaves, por exemplo ano=2026/mes=09/.
  • Row group no Parquet: divisão interna de um arquivo.

Um motor pode evitar arquivos pelo caminho e, em seguida, evitar blocos internos pelos metadados. Esse aproveitamento depende do leitor, do filtro e do arquivo.

Limitações

Muitos arquivos pequenos aumentam trabalho de listagem, abertura e leitura de metadados. Arquivos mal organizados podem exigir ler mais dados do que o esperado. Parquet sozinho também não fornece um catálogo transacional para múltiplos arquivos: formatos de tabela como Apache Iceberg acrescentam outra camada de metadados e controle.

Aprofundamento aplicado

Três níveis para descartar dados

Nível Informação usada Trabalho que pode ser evitado
Arquivos/partições Caminhos ou metadados de tabela Abrir arquivos fora do período
Row groups Estatísticas disponíveis por coluna Ler grupos incompatíveis com o filtro
Colunas e páginas Projeção e recursos do leitor Trazer campos e páginas desnecessários

O leitor precisa suportar a otimização e o arquivo precisa fornecer informação útil. Um mínimo e máximo muito amplo não demonstra que todo valor intermediário existe; serve para eliminar intervalos certamente incompatíveis. Referência: estrutura física.

Cenário: arquivo com cem colunas, consulta usando três. A projeção pode economizar leitura, mas filtrar por um campo sem estatísticas úteis ainda pode exigir percorrer muitos grupos. Compressão, ordenação e seletividade atuam em etapas diferentes.

Exercício: compare dados ordenados e embaralhados pelo campo de data. Resultado esperado: o filtro devolve o mesmo resultado, mas a organização pode permitir descartar mais grupos no arquivo ordenado. Confira o plano e leituras reais.

Relacionado: 1. Amazon S3 · 1. ClickHouse · Athena e Glue.


Parte de Amazon S3

Buscar

Busca por título, seção e texto das notas