Dominando los archivos Parquet: estructura, casos de uso y ventajas clave

Un archivo Parquet almacena datos por columnas en lugar de por filas. El proyecto Apache Parquet lo describe como "un formato de archivo de datos de código abierto orientado a columnas, diseñado para un almacenamiento y recuperación de datos eficientes". Esa única elección de diseño explica por qué es más pequeño, más rápido de consultar y más difícil de abrir con un doble clic.
¿Qué es un archivo Parquet?
Parquet es un formato de archivo para datos tabulares, mantenido como un proyecto de Apache. La documentación oficial señala que "proporciona esquemas de compresión y codificación de alto rendimiento para manejar datos complejos a gran escala". Añade que el formato "es compatible con muchos lenguajes de programación y herramientas de análisis".
La propiedad que lo define es la orientación. Un CSV escribe una fila a la vez: cada campo del primer registro, luego cada campo del segundo registro. Parquet escribe una columna a la vez: cada valor de la primera columna, luego cada valor de la segunda.
Esto suena como un tecnicismo, pero tiene dos grandes consecuencias. Los valores de una sola columna tienden a ser similares entre sí, lo que hace que se compriman mucho mejor que una fila mixta. Y una consulta que necesita tres columnas de noventa puede leer solo esas tres, en lugar de escanear cada fila para descartar la mayor parte.
El formato está especificado formalmente. La documentación de Apache señala que "el repositorio parquet-format alberga la especificación oficial del formato de archivo Parquet, definiendo cómo se estructuran y almacenan los datos".
Cómo se estructura un archivo Parquet
El envoltorio
Cada archivo Parquet se abre y se cierra con los mismos cuatro bytes. La especificación muestra un "número mágico de 4 bytes 'PAR1'" al principio, y el mismo número mágico al final.
Entre ellos se encuentran los datos y, cerca del final, los metadatos. Justo antes del número mágico de cierre se encuentra una "longitud de 4 bytes en bytes de los metadatos del archivo (little endian)". Ese valor le indica al lector qué tan atrás debe saltar para encontrar el bloque de metadatos.
Grupos de filas y fragmentos de columnas
Dentro del envoltorio, los datos se dividen dos veces. La especificación describe un archivo con "N columnas en esta tabla, divididas en M grupos de filas".
A un grupo de filas es una porción horizontal: un lote de filas. Dentro de cada grupo de filas, los valores de cada columna se almacenan juntos como un fragmento de columna. Así, un archivo con 90 columnas y 10 grupos de filas contiene 900 fragmentos de columnas, cada uno de ellos una secuencia contigua de valores de una sola columna.
Esta doble división es lo que hace posible la lectura selectiva. Una consulta puede omitir grupos de filas enteros que no puedan contener filas coincidentes, y luego leer solo los fragmentos de columnas que necesita de los grupos restantes.
Por qué los metadatos se encuentran al final
Esto sorprende a quienes esperan un encabezado. La documentación de Apache explica la razón directamente: "los metadatos del archivo se escriben después de los datos para permitir la escritura en una sola pasada".
Un escritor que transmite un gran conjunto de datos no conoce las posiciones finales de los bytes de cada fragmento hasta que los ha escrito. Colocar los metadatos al final significa que nunca tiene que volver atrás y parchear un encabezado.
El patrón de lectura se deriva de esto. Según la documentación, los metadatos del archivo "contienen las ubicaciones de inicio de todos los fragmentos de columnas". Añade que "se espera que los lectores lean primero los metadatos del archivo para encontrar todos los fragmentos de columnas que les interesen".
Para qué se utiliza Parquet
Normalmente se encontrará con un archivo .parquet en una de estas cuatro situaciones.
Exportaciones de almacenes de datos. Cuando alguien exporta una tabla grande desde un almacén de datos moderno, este suele ser el formato predeterminado, porque el archivo sigue siendo manejable.
Almacenamiento en lagos de datos. Los archivos alojados en el almacenamiento de objetos en la nube suelen utilizarlo, precisamente porque los motores pueden leer un subconjunto de columnas sin tener que descargarlo todo.
Transferencias entre equipos. Un ingeniero de datos que le envíe un año de transacciones a menudo recurrirá a este formato en lugar de a un CSV que sería varias veces más grande.
Intercambio de herramientas de análisis. Debido a que el formato es compatible con muchos lenguajes y herramientas, viaja entre sistemas sin necesidad de un paso de conversión intermedio.
El elemento común es el tamaño. Se convierte en la opción obvia en el momento en que un CSV deja de ser cómodo de mover.
Parquet vs CSV
| Parquet | CSV | |
|---|---|---|
| Orientación | Orientado a columnas | Orientado a filas |
| Legible en un editor de texto | No, es binario | Sí |
| Tamaño de archivo típico | Más pequeño, gracias a la compresión de columnas | Más grande para los mismos datos |
| Lectura de unas pocas columnas | Lee solo esos fragmentos de columnas | Lee todo el archivo |
| Tipos de datos | Incluidos en los metadatos del archivo | Inferidos por lo que sea que lo abra |
| Se abre con doble clic | Generalmente no | Normalmente se abre en una hoja de cálculo |
| Ideal para | Tablas grandes, consultas repetidas | Tablas pequeñas, inspección rápida, uso compartido universal |
El comportamiento de los tipos merece una mención. Un CSV no tiene idea de si 00123 es un número o una cadena de texto, razón por la cual los ceros a la izquierda y las fechas se estropean al importar. Parquet registra los tipos en sus metadatos, por lo que el valor que escribió es el valor que recupera al leer.
Para la perspectiva orientada a filas de esta comparación, la guía explicativa de CSV cubre el mismo terreno desde la otra dirección. El análisis de TSV cubre la variante separada por tabulaciones.
Ventajas clave
Compresión que realmente se acumula. Almacenar valores similares uno al lado del otro le da al codificador mucho más material con el que trabajar. La documentación de Apache atribuye esto a "esquemas de compresión y codificación de alto rendimiento".
Recorte de columnas. Leer tres de noventa columnas cuesta aproximadamente tres columnas de E/S en lugar de noventa.
Omisión de grupos de filas. Debido a que los metadatos registran lo que hay en cada grupo de filas, un lector puede descartar porciones enteras antes de tocarlas.
Los tipos sobreviven al viaje. Las fechas siguen siendo fechas y los identificadores conservan sus ceros a la izquierda, porque el esquema viaja dentro del archivo.
Escritura en una sola pasada. Los metadatos al final significan que se pueden escribir archivos muy grandes como un flujo de datos.
Amplio soporte. La documentación destaca la compatibilidad con "muchos lenguajes de programación y herramientas de análisis", por lo que rara vez es un callejón sin salida.
Dónde deja de ser útil Parquet
Parquet resuelve el almacenamiento y la recuperación. No resuelve ninguna de las preguntas que pueda tener sobre lo que realmente hay en el archivo.
Es binario, por lo que no se puede ver de un vistazo. Abrir un CSV para comprobar si la columna de ingresos es bruta o neta lleva cinco segundos. Un archivo binario requiere una herramienta antes de que pueda ver algo en absoluto.
También es poco adecuado para conjuntos de datos pequeños. Para una tabla de búsqueda de 200 filas, la sobrecarga de metadatos y el requisito de herramientas superan cualquier beneficio de compresión. Un CSV es el mejor formato en ese caso, y ser honesto al respecto es parte de usar bien Parquet.
Y no dice nada sobre la calidad. El archivo puede contener tonterías perfectamente tipadas y comprimidas de manera eficiente. Registros duplicados, una columna de moneda que mezcla dos divisas, un ID de cliente que cambió de esquema en marzo. El formato garantiza la fidelidad, no la corrección.
Cómo trabajar con un archivo Parquet si no es ingeniero
Esta es la brecha práctica. Most business tooling assumes a spreadsheet, y un archivo .parquet no se abrirá de la misma manera que un CSV.
La vía pragmática es un paso de conversión. Pídale a quien haya generado el archivo un extracto en CSV o Excel de las columnas que realmente necesita, o conviértalo usted mismo con cualquier herramienta compatible con Parquet. Perderá el beneficio de la compresión, lo cual no importa una vez que los datos estén en su máquina y se haya acotado su alcance.
A partir de ahí, el trabajo es un análisis ordinario. La página de precios de Powerdrill Bloom incluye cargas para Excel, CSV, PDF y documentos, por lo que un extracto convertido entra directamente. Las preguntas se realizan en lenguaje natural en lugar de escribirse como consultas. El asistente de IA para CSV cubre ese camino, y los conectores de datos cubren los casos en los que es mejor extraer los datos que exportarlos.
La distinción que vale la pena mantener es que Parquet es una decisión de almacenamiento que se toma antes de que los datos lleguen a usted. No es una herramienta de análisis, y convertirlo a otro formato una vez que el archivo llega a su escritorio es algo normal y no una solución provisional.
Conclusión
Parquet es un almacenamiento orientado a columnas con su esquema y su índice al final del archivo. Ese diseño aporta compresión, lecturas selectivas y tipos de datos confiables, razón por la cual se ha convertido en el estándar predeterminado para cualquier conjunto de datos grande.
Lo que no aporta es visibilidad. En el momento en que el archivo llega a alguien que necesita respuestas en lugar de almacenamiento, el siguiente paso útil suele ser un extracto acotado y una pregunta.
Si ahí es donde se encuentra, pruebe Powerdrill Bloom con el archivo convertido y comience por convertirlo en un gráfico.
Preguntas frecuentes
¿Para qué se utiliza un archivo Parquet?
Parquet se utiliza para almacenar grandes conjuntos de datos tabulares de manera eficiente. Es común para exportaciones de almacenes de datos, almacenamiento en lagos de datos, transferencias entre equipos e intercambio entre herramientas de análisis. La razón es que se comprime bien y permite leer únicamente las columnas seleccionadas.
¿Es Parquet mejor que CSV?
Para tablas grandes que se consultan repetidamente, sí: es más pequeño, conserva los tipos de datos y admite el recorte de columnas. Para tablas pequeñas que necesita inspeccionar o compartir ampliamente, CSV es más fácil porque es texto y se abre en cualquier lugar.
¿Puedo abrir un archivo Parquet en Excel?
No con un doble clic, ya que Parquet es un formato binario en lugar de texto. El enfoque común es convertirlo primero a CSV o Excel, o utilizar una herramienta que lea Parquet directamente.
¿Por qué se almacenan los metadatos de Parquet al final del archivo?
La documentación de Apache explica que los metadatos se escriben después de los datos "para permitir la escritura en una sola pasada". Un escritor que transmite un gran conjunto de datos no conoce de antemano las posiciones finales de los fragmentos, por lo que escribir los metadatos al final evita tener que volver a modificar un encabezado.
¿Qué son los grupos de filas en Parquet?
Un grupo de filas es una porción horizontal de la tabla. La especificación describe las columnas de un archivo como "divididas en M grupos de filas", con cada columna almacenada como un fragmento separado dentro de cada grupo. Ese diseño permite a los lectores omitir tanto los grupos como las columnas que no necesitan.