Avro vs Parquet: armazenamento por linha ou colunar?
Avro é um formato orientado a linha otimizado para escritas e streaming; Parquet é um formato colunar otimizado para leituras analíticas e compressão.
Avro armazena registros linha a linha, o que é eficiente para ingestão em streaming, escritas de registro completo e evolução de schema. Parquet armazena dados por coluna, permitindo compressão forte e scans rápidos de colunas selecionadas, o que é ideal para analytics e queries em data lake. Eles são complementares no ecossistema de dados: Avro para landing e streaming, Parquet para armazenamento analítico.
| Avro | Parquet | |
|---|---|---|
| Layout | Orientado a linha | Colunar |
| Otimizado para | Escritas, streaming | Leituras analíticas |
| Compressão | Boa | Excelente (por coluna) |
| Evolução de schema | Forte | Suportada |
| Melhor para | Ingestão, Kafka | Data lakes, queries |
Caso de uso e padrão de acesso
Escolha Avro quando você escreve ou faz streaming de registros inteiros com frequência e precisa de evolução de schema fácil, como tópicos Kafka e landing zones. Escolha Parquet quando você roda queries analíticas que leem poucas colunas de grandes datasets, onde o layout colunar e a compressão reduzem drasticamente o I/O. Muitos pipelines ingerem como Avro e depois convertem para Parquet para analytics.
No CI e em jobs de dados
Valide schemas e rode testes de conversão/ETL em dados de amostra. Ambos rodam em pipelines de dados em managed runners, onde runners mais rápidos encurtam os jobs de conversão e validação.
O veredito
Ingestão em streaming e escritas frequentes de registro completo com evolução de schema: Avro. Queries analíticas que escaneiam colunas sobre grandes datasets: Parquet. O padrão lakehouse comum usa Avro para ingestão e Parquet para a camada de armazenamento analítico.