Apache Parquet (Almacenamiento columnar)
Apache Parquet es un formato de almacenamiento columnar de código abierto diseñado para consultas analíticas eficientes. Almacena datos por columnas en lugar de por filas, permitiendo una excelente compresión y un rendimiento rápido de consultas para cargas de trabajo de big data.
Tipo MIME
application/vnd.apache.parquet
Tipo
Binario
Compresión
Sin pérdida
Ventajas
- + Excellent compression through columnar encoding
- + Fast analytical queries — reads only needed columns
- + Predicate pushdown skips irrelevant row groups entirely
- + Standard in Spark, DuckDB, Pandas, and cloud data lakes
Desventajas
- − Not suited for transactional row-level updates
- − More complex to write than CSV or JSON
- − Schema evolution has some limitations
Cuándo usar .PARQUET
Usa Parquet para cargas de trabajo analíticas, data lakes y cualquier escenario donde las consultas que leen un subconjunto de columnas se beneficien del almacenamiento columnar. Para datos transaccionales por filas, prefiere CSV o bases de datos.
Detalles técnicos
Parquet organiza los datos en grupos de filas, cada uno con segmentos de columna que almacenan valores, niveles de definición/repetición (para datos anidados) y estadísticas min/max. Soporta compresión Snappy, Gzip, LZ4 y Zstd por columna. Los esquemas usan un modelo anidado a la Dremel.
Historia
Parquet fue creado por Cloudera y Twitter en 2013, inspirándose en el artículo Dremel de Google. Se convirtió en proyecto de alto nivel de Apache en 2015. Parquet es ahora el formato columnar estándar para data lakes, soportado por Spark, Hive, Presto, DuckDB y la mayoría de herramientas de datos.