O Apache Parquet é um formato de arquivo de dados em coluna de código aberto projetado para armazenamento e recuperação de dados eficientes. Ele fornece esquemas eficientes de compressão e codificação de dados para agrupar dados complexos, melhorando o desempenho. O Apache Parquet foi projetado para ser um formato de troca comum para cargas de trabalho em batch e interativas, semelhante a RCFile e ORC, outros formatos de arquivo de armazenamento em coluna disponíveis no Hadoop.
O Apache Parquet é implementado por algoritmos de fragmentação e montagem de registros para acomodar estruturas de dados complexas que podem ser usadas para armazenar dados. Ele também é otimizado para processamento em massa de dados complexos e apresenta compactação de dados e tipos de codificação eficientes. Essa abordagem é melhor especialmente para queries que leem colunas específicas de tabelas grandes. O Parquet pode reduzir significativamente o IO carregando apenas as colunas necessárias.
O CSV é usado por muitas ferramentas, como Excel e Google Sheets, e é um formato simples e popular usado por muitas outras. O CSV é a configuração-padrão para pipelines de dados, mas tem as seguintes desvantagens:
O Parquet reduz os requisitos de armazenamento para grandes conjuntos de dados em pelo menos um terço e melhora muito o tempo necessário para análise e desserialização, reduzindo os custos gerais. A tabela abaixo compara a velocidade e a economia que você pode obter ao converter seus dados de CSV para Parquet.
|
Conjunto de dados |
Tamanho no Amazon S3 |
Tempo de execução da query |
Dados analisados |
Custo |
|
Dados armazenados como arquivos CSV |
1 TB |
236 segundos |
1,15 TB |
$ 5,75 |
|
Dados armazenados no formato Apache Parquet |
130 GB |
6,78 segundos |
2,51 GB |
$ 0,01 |
|
Economia |
87% menos ao usar o Parquet |
34x mais rápido |
99% menos dados analisados |
99,7% de economia |
O projeto Delta Lake de código aberto se baseia no formato Parquet e o estende adicionando vários recursos. Recursos adicionais incluem transações ACID para armazenamento de objetos em nuvem, histórico, extensão de esquema e comandos DML simples (CRIAR, ATUALIZAR, INSERIR, EXCLUIR, DAR MERGE). O Delta Lake implementa muitos desses recursos principais usando um log de transações ordenado. Isso habilita a funcionalidade de data warehouse no armazenamento de objetos em nuvem. Saiba mais no post do blog da Databricks Diving into Delta Lake: Unpacking the Transaction Log.
