Apache Parquet é um formato de armazenamento orientado a colunas para o Hadoop. Hadoop é um framework de programação livre, baseado em Java que suporta o processamento de grandes conjuntos de dados em um ambiente de computação distribuída. Parquet é otimizado para trabalhar com dados complexos em massa e inclui métodos para compressão de dados e tipos de codificação eficientes.
>br>Tipicamente, os dados são armazenados de uma forma orientada a filas. Mesmo em bancos de dados, os dados são convencionalmente armazenados desta forma e são otimizados para trabalhar com um registro de cada vez. Parquet usa um algoritmo de quebra de registros e montagem para quebrar os dados e remontá-los para que os valores em cada coluna sejam fisicamente armazenados em locais de memória contíguos. Os dados armazenados por coluna neste método serializado permite buscas eficientes através de conjuntos de dados massivos. Como o Hadoop é feito para grandes dados, o armazenamento colunar é uma tecnologia complementar.
>br>Armazenar dados em um formato colunar oferece benefícios como:
- Compressão mais eficiente devido ao espaço economizado pelo formato colunar.
- Likeness of the data of columns enables data compression for the specific type of data.
- Queries searching specific column values need not read the entire row's data, tornando as buscas mais rápidas.
- Diferente codificação pode ser usada por coluna, permitindo uma melhor compressão à medida que é desenvolvida.
O framework Apache Thrift do Parquet aumenta a flexibilidade, para permitir trabalhar com C++, Java e Python.
Parquet é compatível com a maioria dos frameworks de processamento de dados no Hadoop. Outros formatos de arquivos de armazenamento em colunas incluem ORC, RCFile e RCFile.
Parquet é um projeto de alto nível patrocinado pela Apache Software Foundation (ASF). O projeto originou-se como um esforço conjunto do Twitter e da Cloudera.