Parquet
¿Qué es Parquet?
Apache Parquet es un formato de archivo de datos de código abierto y orientado a columnas, diseñado para el almacenamiento y la recuperación eficientes de datos. Ofrece esquemas eficientes de compresión y codificación de datos con un rendimiento mejorado para manejar datos complejos de forma masiva. Apache Parquet está diseñado para ser un formato de intercambio común tanto para cargas de trabajo por lotes como interactivas. Es similar a otros formatos de archivo de almacenamiento columnar disponibles en Hadoop, como RCFile y ORC.
Más temas para descubrir
Características de Parquet
- Formato de archivo gratuito y de código abierto.
- Independiente del lenguaje.
- Formato basado en columnas: los archivos se organizan por columna, en lugar de por fila, lo que ahorra espacio de almacenamiento y acelera las consultas de análisis.
- Se usa para casos de uso de análisis (OLAP), generalmente junto con bases de datos OLTP tradicionales.
- Compresión y descompresión de datos muy eficiente.
- Admite tipos de datos complejos y estructuras de datos anidadas avanzadas.
Beneficios de Parquet
- Ideal para almacenar big data de cualquier tipo (tablas de datos estructurados, imágenes, videos, documentos).
- Ahorra espacio de almacenamiento en la nube, ya que usa una compresión por columnas muy eficiente y esquemas de codificación flexibles para las columnas con diferentes tipos de datos.
- Mayor capacidad de procesamiento y rendimiento de los datos usando técnicas como la omisión de datos, que permiten que las consultas que obtienen valores de columnas específicas no necesiten leer la fila de datos completa.
Apache Parquet se implementa con el algoritmo de descomposición y ensamblaje de registros, que admite las estructuras de datos complejas que se pueden usar para almacenar los datos. Parquet está optimizado para trabajar con grandes volúmenes de datos complejos y ofrece varios métodos eficientes de compresión y codificación de datos. Este enfoque es ideal, sobre todo, para aquellas consultas que necesitan leer ciertas columnas de una tabla grande. Parquet puede leer solo las columnas necesarias, lo que minimiza en gran medida la IO.
Ventajas de almacenar datos en un formato columnar:
- El almacenamiento columnar, como Apache Parquet, está diseñado para ser más eficiente en comparación con los archivos basados en filas, como los CSV. Al realizar consultas en el almacenamiento columnar, puedes omitir los datos no relevantes muy rápidamente. Como resultado, las consultas de agregación consumen menos tiempo en comparación con las bases de datos orientadas a filas. Esta forma de almacenamiento se ha traducido en ahorros de hardware y una latencia minimizada para acceder a los datos.
- Apache Parquet se creó desde cero. Por lo tanto, puede admitir estructuras de datos anidadas avanzadas. El diseño de los archivos de datos Parquet está optimizado para consultas que procesan grandes volúmenes de datos, en el rango de los gigabytes para cada archivo individual.
- Parquet está diseñado para admitir opciones de compresión flexibles y esquemas de codificación eficientes. Como el tipo de datos de cada columna es bastante similar, la compresión de cada columna es sencilla (lo que hace que las consultas sean aún más rápidas). Los datos pueden comprimirse con uno de los distintos códecs disponibles; como resultado, los diferentes archivos de datos pueden comprimirse de maneras distintas.
- Apache Parquet funciona mejor con tecnologías interactivas y sin servidor como AWS Athena, Amazon Redshift Spectrum, Google BigQuery y Google Dataproc.
Diferencia entre Parquet y CSV
CSV es un formato simple y común que usan muchas herramientas, como Excel, Google Sheets y muchas otras. Aunque los archivos CSV son el formato predeterminado para las canalizaciones de procesamiento de datos, tienen algunas desventajas:
- Amazon Athena y Spectrum cobran en función de la cantidad de datos escaneados por consulta.
- Google y Amazon te cobrarán según la cantidad de datos almacenados en GS/S3.
- Los cargos de Google Dataproc se basan en el tiempo.
Parquet ha ayudado a sus usuarios a reducir los requisitos de almacenamiento en al menos un tercio en grandes conjuntos de datos. Además, mejoró enormemente el tiempo de escaneo y deserialización y, por lo tanto, los costos generales. La siguiente tabla compara el ahorro y la aceleración que se obtienen al convertir los datos de formato CSV a Parquet.
| Conjunto de datos | Tamaño en Amazon S3 | Tiempo de ejecución de la consulta | Datos escaneados | Costo |
| Datos almacenados como archivos CSV | 1 TB | 236 segundos | 1.15 TB | $5.75 |
| Datos almacenados en formato Apache Parquet | 130 GB | 6.78 segundos | 2.51 GB | $0.01 |
| Ahorros | 87% menos al usar Parquet | 34 veces más rápido | 99 % menos de datos escaneados | Ahorro del 99.7% |
Parquet y Delta Lake
El proyecto de código abierto Delta Lake se basa en el formato Parquet y lo amplía, agregando funcionalidades adicionales como transacciones ACID en el almacenamiento de objetos en la nube, viaje en el tiempo, evolución de esquemas y comandos DML simples (CREATE/UPDATE/INSERT/DELETE/MERGE). Delta Lake implementa muchas de estas características importantes mediante el uso de un registro de transacciones ordenado que hace posible la funcionalidad de almacenamiento de datos en el almacenamiento de objetos en la nube. Obtén más información en la publicación del blog de Databricks Profundizando en Delta Lake: desglosando el registro de transacciones.



