Super Sale WeekClaude Skills — 20% OFF
Glossary

Dominando Arquivos Parquet: Estrutura, Casos de Uso e Principais Vantagens

Powerdrill Bloom·
Dominando Arquivos Parquet: Estrutura, Casos de Uso e Principais Vantagens

Um arquivo Parquet armazena dados por coluna em vez de por linha. O projeto Apache Parquet o descreve como "um formato de arquivo de dados de código aberto orientado a colunas, projetado para armazenamento e recuperação eficientes de dados". Essa única escolha de design explica por que ele é menor, mais rápido de consultar e mais difícil de abrir com um clique duplo.

O que é um arquivo Parquet?

O Parquet é um formato de arquivo para dados tabulares, mantido como um projeto Apache. A documentação oficial afirma que ele "fornece esquemas de compressão e codificação de alto desempenho para lidar com dados complexos em massa". Ela acrescenta que o formato "é compatível com muitas linguagens de programação e ferramentas de análise".

A propriedade definidora é a orientação. Um CSV grava uma linha por vez: cada campo do registro um, depois cada campo do registro dois. O Parquet grava uma coluna por vez: cada valor da primeira coluna, depois cada valor da segunda.

Isso parece um detalhe técnico. Mas tem duas grandes consequências. Os valores em uma única coluna tendem a ser semelhantes entre si, o que faz com que eles se comprimam muito melhor do que uma linha mista. E uma consulta que precisa de três colunas de noventa pode ler apenas essas três, em vez de escanear cada linha para descartar a maior parte dela.

O formato é formalmente especificado. A documentação do Apache observa que "o repositório parquet-format hospeda a especificação oficial do formato de arquivo Parquet, definindo como os dados são estruturados e armazenados".

Como um arquivo Parquet é estruturado

O envelope

Todo arquivo Parquet abre e fecha com os mesmos quatro bytes. A especificação mostra um "número mágico de 4 bytes 'PAR1'" no início, e o mesmo número mágico no final.

Entre eles ficam os dados e, perto do fim, os metadados. Logo antes do número mágico de fechamento fica um "comprimento de 4 bytes em bytes de metadados do arquivo (little endian)". Esse valor diz ao leitor o quanto voltar para encontrar o bloco de metadados.

Grupos de linhas e fragmentos de colunas

Dentro do envelope, os dados são divididos duas vezes. A especificação descreve um arquivo com "N colunas nesta tabela, divididas em M grupos de linhas".

Um grupo de linhas é uma fatia horizontal — um lote de linhas. Dentro de cada grupo de linhas, os valores de cada coluna são armazenados juntos como um fragmento de coluna. Portanto, um arquivo com 90 colunas e 10 grupos de linhas contém 900 fragmentos de colunas, cada um sendo uma sequência contígua de valores de uma única coluna.

Essa divisão dupla é o que torna possível a leitura seletiva. Uma consulta pode pular grupos de linhas inteiros que não possam conter linhas correspondentes e, em seguida, ler apenas os fragmentos de colunas necessários daqueles que restaram.

Por que os metadados ficam no final

Isso surpreende as pessoas que esperam um cabeçalho. A documentação do Apache explica o motivo diretamente: "os metadados do arquivo são gravados após os dados para permitir a gravação em uma única passagem".

Um gravador que transmite um grande conjunto de dados não sabe as posições finais de bytes de cada fragmento até que os tenha gravado. Colocar os metadados por último significa que ele nunca precisa voltar e corrigir um cabeçalho.

O padrão de leitura decorre disso. De acordo com a documentação, os metadados do arquivo "contêm os locais de todas as posições iniciais dos fragmentos de colunas". Ela acrescenta que "espera-se que os leitores leiam primeiro os metadados do arquivo para encontrar todos os fragmentos de colunas nos quais estão interessados".

Para que o Parquet é usado

Você normalmente encontrará um arquivo .parquet em uma de quatro situações.

Exportações de data warehouse. Quando alguém exporta uma tabela grande de um warehouse moderno, esse costuma ser o padrão, porque o arquivo permanece gerenciável.

Armazenamento em data lake. Arquivos localizados em armazenamento de objetos na nuvem comumente o utilizam, justamente porque os mecanismos podem ler um subconjunto de colunas sem baixar tudo.

Transferências entre equipes. Um engenheiro de dados que lhe envia um ano de transações frequentemente optará por ele em vez de um CSV que seria várias vezes maior.

Intercâmbio de ferramentas de análise. Como o formato é compatível com muitas linguagens e ferramentas, ele transita entre sistemas sem a necessidade de uma etapa de conversão no meio.

O ponto em comum é o tamanho. Ele se torna a escolha óbvia no momento em que um CSV deixa de ser prático para ser compartilhado ou movido.

Parquet vs CSV

Parquet CSV
Orientação Orientado a colunas Orientado a linhas
Legível em um editor de texto Não, é binário Sim
Tamanho de arquivo típico Menor, por meio de compressão de colunas Maior para os mesmos dados
Leitura de poucas colunas Lê apenas esses fragmentos de colunas Lê o arquivo inteiro
Tipos de dados Carregados nos metadados do arquivo Inferidos por aquilo que o abre
Abre com clique duplo Geralmente não Geralmente abre em uma planilha
Melhor para Tabelas grandes, consultas repetidas Tabelas pequenas, inspeção rápida, compartilhamento universal

O comportamento dos tipos merece uma observação. Um CSV não tem ideia se 00123 é um número ou uma string, e é por isso que os zeros à esquerda e as datas são desconfigurados na importação. O Parquet registra os tipos em seus metadados, de modo que o valor gravado é exatamente o valor lido de volta.

Para o lado orientado a linhas desta comparação, o explicador de CSV cobre o mesmo assunto sob a outra perspectiva. A análise de TSV aborda a variante separada por tabulações.

Principais vantagens

Compressão que realmente se potencializa. Armazenar valores semelhantes lado a lado dá ao codificador muito mais com o que trabalhar. A documentação do Apache credita isso a "esquemas de compressão e codificação de alto desempenho".

Poda de colunas. Ler três de noventa colunas custa aproximadamente três colunas de E/S em vez de noventa.

Pulo de grupos de linhas. Como os metadados registram o que está em cada grupo de linhas, um leitor pode descartar fatias inteiras antes mesmo de tocá-las.

Os tipos sobrevivem à viagem. As datas continuam sendo datas e os identificadores mantêm seus zeros à esquerda, porque o esquema viaja dentro do arquivo.

Gravação em uma única passagem. Metadados no final significam que arquivos muito grandes podem ser gravados como um fluxo de dados.

Amplo suporte. A documentação observa a compatibilidade com "muitas linguagens de programação e ferramentas de análise", por isso raramente é um beco sem saída.

Onde o Parquet deixa de ajudar

O Parquet resolve o armazenamento e a recuperação. Ele não resolve nenhuma das dúvidas que você possa ter sobre o que realmente está no arquivo.

Ele é binário, então você não pode simplesmente dar uma olhada rápida nele. Abrir um CSV para verificar se a coluna de receita é bruta ou líquida leva cinco segundos. Um arquivo binário precisa de uma ferramenta antes que você possa ver qualquer coisa.

Ele também não é adequado para pequenos volumes de dados. Para uma tabela de consulta de 200 linhas, a sobrecarga de metadados e a necessidade de ferramentas superam qualquer benefício de compressão. O CSV é o melhor formato nesse caso, e ser honesto sobre isso faz parte de usar bem o Parquet.

E ele não diz nada sobre a qualidade. O arquivo pode carregar absurdos perfeitamente tipados e eficientemente comprimidos. Registros duplicados, uma coluna de moeda misturando duas moedas, um ID de cliente que mudou de esquema em março. O formato garante fidelidade, não correção.

Como trabalhar com um arquivo Parquet se você não for engenheiro

Esta é a lacuna prática. A maioria das ferramentas de negócios pressupõe uma planilha, e um arquivo .parquet não abrirá da mesma forma que um CSV.

O caminho pragmático é uma etapa de conversão. Peça a quem gerou o arquivo um extrato em CSV ou Excel das colunas que você realmente precisa, ou converta você mesmo com qualquer ferramenta compatível com Parquet. Você perde o benefício da compressão, o que não importa uma vez que os dados estejam na sua máquina e limitados ao escopo necessário.

A partir daí, o trabalho é uma análise comum. A página de preços do Powerdrill Bloom lista uploads para Excel, CSV, PDF e documentos, de modo que um extrato convertido entra diretamente. As perguntas são feitas em linguagem natural, em vez de serem escritas como consultas. O assistente de IA para CSV cobre esse caminho, e os conectores de dados cobrem os casos em que é melhor extrair os dados do que exportá-los.

A distinção que vale a pena manter é que o Parquet é uma decisão de armazenamento tomada antes de chegar a você. Ele não é uma ferramenta de análise, e convertê-lo assim que o arquivo chega à sua mesa é algo normal, e não uma solução alternativa.

Conclusão

O Parquet é um armazenamento orientado a colunas com seu esquema e seu índice no final do arquivo. Esse design garante compressão, leituras seletivas e tipos de dados confiáveis, e é por isso que ele se tornou o padrão para qualquer volume grande de dados.

O que ele não oferece é visibilidade. No momento em que o arquivo chega a alguém que precisa de respostas em vez de armazenamento, o próximo passo útil geralmente é um extrato delimitado e uma pergunta.

Se é aí que você está, experimente o Powerdrill Bloom com o arquivo convertido e comece transformando-o em um gráfico.

Perguntas frequentes

Para que é usado um arquivo Parquet?

O Parquet é usado para armazenar grandes conjuntos de dados tabulares de forma eficiente. É comum em exportações de data warehouse, armazenamento em data lake, transferências entre equipes e intercâmbio entre ferramentas de análise. O motivo é que ele se comprime bem e suporta a leitura de apenas colunas selecionadas.

O Parquet é melhor que o CSV?

Para tabelas grandes consultadas repetidamente, sim: ele é menor, carrega tipos de dados e suporta a poda de colunas. Para tabelas pequenas que você precisa inspecionar ou compartilhar amplamente, o CSV é mais fácil porque é texto e abre em qualquer lugar.

Posso abrir um arquivo Parquet no Excel?

Não com um clique duplo, já que o Parquet é um formato binário e não de texto. A abordagem comum é convertê-lo primeiro para CSV ou Excel, ou usar uma ferramenta que leia Parquet diretamente.

Por que os metadados do Parquet são armazenados no final do arquivo?

A documentação do Apache explica que os metadados são gravados após os dados "para permitir a gravação em uma única passagem". Um gravador que transmite um grande conjunto de dados não conhece as posições finais dos fragmentos com antecedência, portanto, gravar os metadados por último evita ter que revisitar um cabeçalho.

O que são grupos de linhas no Parquet?

Um grupo de linhas é uma fatia horizontal da tabela. A especificação descreve as colunas de um arquivo como "divididas em M grupos de linhas", com cada coluna armazenada como um fragmento separado dentro de cada grupo. Esse layout permite que os leitores pulem tanto os grupos quanto as colunas de que não precisam.