Parquet Apache

Apache Parquet es un formato de almacenamiento orientado a columnas para Hadoop. Hadoop es un marco de programación gratuito basado en Java que admite el procesamiento de grandes conjuntos de datos en un entorno informático distribuido. Parquet está optimizado para trabajar con datos complejos a granel e incluye métodos para tipos de codificación y compresión de datos eficientes.

Normalmente, los datos se almacenan de forma orientada a filas. Incluso en las bases de datos, los datos se almacenan convencionalmente de esta manera y están optimizados para trabajar con un registro a la vez. Parquet utiliza un algoritmo de ensamblaje y destrucción de registros para dividir los datos y volver a ensamblarlos de modo que los valores de cada columna se almacenen físicamente en ubicaciones de memoria contiguas. Los datos almacenados por columna en este método serializado permiten búsquedas eficientes en conjuntos de datos masivos. Dado que Hadoop está hecho para big data, el almacenamiento en columnas es una tecnología complementaria.  

El almacenamiento de datos en formato de columnas proporciona beneficios como:

  • Compresión más eficiente debido al espacio ahorrado por el formato columnar.
  • La semejanza de los datos de las columnas permite la compresión de datos para el tipo específico de datos.
  • Las consultas que buscan valores de columna específicos no necesitan leer los datos de toda la fila, lo que agiliza las búsquedas.
  • Se pueden utilizar diferentes codificaciones por columna, lo que permite utilizar una mejor compresión a medida que se desarrolla.

El marco Apache Thrift de Parquet aumenta la flexibilidad para permitir trabajar con C ++, Java y Python.
Parquet es compatible con la mayoría de los marcos de procesamiento de datos en Hadoop. Otros formatos de archivo de almacenamiento en columnas incluyen ORC, RCFile y RCFile optimizado.

Parquet es un proyecto de alto nivel patrocinado por Apache Software Foundation (ASF). El proyecto se originó como un esfuerzo conjunto de Twitter y Cloudera.