¿Qué es Apache Parquet?

La parte inferior de un puente de concreto

Autores

Annie Badman

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

¿Qué es Apache Parquet?

Apache Parquet es un formato de almacenamiento en columnas de código abierto que se utiliza para almacenar, gestionar y analizar de manera eficiente grandes conjuntos de datos

A diferencia de los formatos de almacenamiento basados en filas, como CSV o JSON, Parquet organiza los datos en columnas para mejorar el rendimiento de las consultas y reducir los costos de almacenamiento de datos.

Las organizaciones utilizan diferentes formatos de archivo para satisfacer otras necesidades de datos. Muchos formatos tradicionales organizan los datos en filas, optimizando para transferencias de datos simples y legibilidad.

Parquet adopta un enfoque fundamentalmente diferente. Agrupa tipos de datos similares en columnas. Esta estructura columnar ha ayudado a transformar la forma en que las organizaciones manejan analytics a gran escala, lo que permite una compresión superior y un acceso específico a los datos.

Por ejemplo, al analizar las transacciones de los clientes, una base de datos de venta minorista que utiliza  Parquet puede acceder a columnas específicas como fechas de compra y cantidades sin cargar registros completos de clientes. Esta capacidad de acceder a columnas específicas puede reducir tanto el tiempo de procesamiento como los costos de almacenamiento.

El formato Parquet es valioso en 3 áreas clave:

  • Cargas de trabajo de analytics que procesan consultas complejas en miles de millones de registros.
  • Data lakes y almacenes de datos que requieren un almacenamiento eficiente y una recuperación rápida de datos.
  • Pipelines de aprendizaje automático (ML) que analizan atributos específicos en grandes conjuntos de datos de entrenamiento.

Otra razón de la adopción generalizada de Parquet es su compatibilidad con sistemas distribuidos y herramientas de datos, tales como Apache Spark, Apache Hive y Apache Hadoop.

Características clave de Apache Parquet

En comparación con otros formatos de archivo, Parquet transforma el almacenamiento de datos y el acceso a los datos a través de 3 capacidades clave:

  • Formato de almacenamiento columnar:
  • Gestión de esquemas y metadatos
  • Compresión eficiente

Formato de almacenamiento columnar


Mientras que los formatos de archivo tradicionales almacenan datos en filas al igual que las entradas de hojas de cálculo, Parquet utiliza un formato de almacenamiento columnar. Organiza tipos de datos similares juntos en columnas, lo que permite a Parquet leer solo los valores de columna relevantes. Este enfoque específico ayuda a reducir los tiempos de consulta de horas a minutos, a la vez que reduce significativamente los costos de almacenamiento de información.

Gestión de esquemas y metadatos


Cada archivo Parquet incluye un esquema autodescriptivo—en realidad un proyecto técnico de su estructura de datos. Estos metadatos ayudan a realizar consultas eficientes y permiten que los modelos de datos evolucionen a medida que cambian las necesidades del negocio. Por ejemplo, una base de datos de empresa que utiliza Parquet puede agregar nuevos atributos de clientes sin reconstruir los registros existentes.

Compresión eficiente


Parquet optimiza automáticamente el almacenamiento de datos a través de sofisticadas técnicas de compresión—lo que significa que reduce el tamaño de los archivos eliminando información duplicada innecesaria y almacenando datos en un formato más eficiente en cuanto al espacio. Este enfoque inteligente del almacenamiento de datos ayuda a garantizar una eficiencia de almacenamiento y un rendimiento informático óptimos en diferentes tipos de cargas de trabajo.

Diseño 3D de pelotas rodando en una pista

Las últimas novedades e insights sobre IA

Descubra insights y noticias de expertos sobre IA, la nube y mucho más en el boletín semanal Think. 

Cómo funciona Apache Parquet

Apache Parquet transforma sistemáticamente los datos sin procesar en un formato columnar optimizado, mejorando significativamente tanto la eficiencia de almacenamiento como el rendimiento de las consultas.

Así es como Parquet procesa los datos:

1. Organización de datos

Al escribir datos en un archivo Parquet, el formato primero divide los datos en grupos de filas. Cada grupo de filas representa una unidad independiente del conjunto de datos, lo que permite el procesamiento paralelo y la administración eficiente de la memoria para operaciones a gran escala. Esta estrategia de partición constituye la base para el acceso a datos de alto rendimiento de Parquet.

2. Fragmentación de columnas

Dentro de cada grupo de filas, el algoritmo de ensamblaje de Parquet reorganiza los datos por columna en lugar de por fila. Los tipos de datos similares se agrupan en fragmentos de columnas, lo que permite una codificación especializada basada en las características de los datos. Por ejemplo, una columna de fechas se puede optimizar de manera diferente a una columna de valores numéricos.

3. Compresión y codificación

Parquet aplica un proceso de optimización en dos etapas. En primer lugar, emplea esquemas de codificación como la codificación de longitud de ejecución (RLE) para representar de manera eficiente valores repetidos—lo que resulta particularmente valioso para columnas con muchas entradas duplicadas. A continuación, aplica algoritmos de compresión como Snappy o Gzip para reducir aún más los requisitos de almacenamiento.

 4. Generación de metadatos

El formato crea metadatos completos—incluyendo esquema de archivo y tipos de datos, estadísticas de cada columna, ubicaciones y estructura de los grupos de filas. Estos metadatos ayudan a permitir una planificación y optimización eficientes de las consultas.

5. Ejecución de consultas

Al leer los datos de Parquet, los motores de consulta primero consultan los metadatos para identificar las columnas relevantes. Solo se leen del almacenamiento los fragmentos de columna necesarios, y los datos se descomprimen y decodifican según sea necesario.

Beneficios de Apache Parquet

Apache Parquet puede ofrecer ventajas significativas para las organizaciones que gestionan operaciones de datos a gran escala.

Algunos de sus beneficios incluyen:

  • Rendimiento de consultas
  • Manejo de datos complejos
  • Eficiencia del almacenamiento
  • Integración de infraestructuras
  • Optimización del ecosistema Hadoop

 

Rendimiento de consultas

La estructura de datos de Parquet puede hacer que la ejecución de consultas analíticas sea mucho más rápida. Cuando las aplicaciones necesitan datos específicos, acceden solo a las columnas relevantes, lo que reduce los tiempos de consulta de horas a minutos. Este acceso dirigido hace que Parquet sea valioso para las organizaciones que ejecutan complejos analytics a escala.

Manejo de datos complejos

A diferencia de los formatos más simples, Parquet puede gestionar de manera eficiente estructuras de datos anidadas y matrices comunes en las aplicaciones modernas. Esta capacidad lo hace útil para organizaciones que trabajan con tipos de datos complejos, tales como estructuras tipo JSON en analytics o matrices anidadas en datos de sensores de dispositivos de Internet de las Cosas (IoT) .

Eficiencia del almacenamiento

El formato columnar de Parquet cambia fundamentalmente la forma en que se almacenan y comprimen los datos. Al agrupar tipos de datos similares, Parquet puede aplicar diferentes algoritmos de codificación a cada tipo de datos, logrando mejores índices de compresión que formatos como CSV o JSON.

Por ejemplo, un conjunto de datos que contiene millones de transacciones de clientes puede requerir terabytes de almacenamiento en formato CSV, pero solo una fracción de ese espacio cuando se almacena como archivos Parquet.

Integración de infraestructuras

Las arquitecturas de datos modernas suelen requerir una integración continua de herramientas, algo que Parquet ofrece gracias a su compatibilidad nativa con infraestructuras principales. Tanto si los equipos emplean Python con pandas para el análisis, Java para el desarrollo de aplicaciones o Apache Spark para el procesamiento de datos, Parquet puede ayudar a garantizar un acceso a los datos consistente en toda la empresa.

Optimización del ecosistema Hadoop

La Integración nativa de Parquet con Hadoop lo hace particularmente efectivo para el procesamiento de datos. Debido a que Parquet se creó para Hadoop Distributed File System (HDFS), generalmente funciona mejor que los formatos de archivo tradicionales en entornos Hadoop. Al usar Parquet con Hadoop, las organizaciones pueden ejecutar consultas más rápido y almacenar sus datos de manera más eficiente, a menudo utilizando una fracción del espacio de almacenamiento que necesitaban antes.

IBM Storage FlashSystem

IBM Storage FlashSystem: optimización de VMware para lograr costos, simplicidad y resiliencia

Descubra cómo IBM FlashSystem optimiza los entornos de VMware para lograr rentabilidad, simplicidad y resiliencia. Esta sesión destaca cómo FlashSystem puede mejorar la seguridad, la accesibilidad y el rendimiento de los datos, convirtiéndolo en una solución ideal para las infraestructuras de TI modernas.

Casos de uso comunes de Parquet

Apache Parquet puede tratar una variedad de necesidades de ingeniería de datos en todas las industrias y aplicaciones.

Algunas de sus implementaciones más impactantes incluyen:

Data lakes y almacenes

Las organizaciones que crean data lakes y almacenes de datos suelen elegir Parquet como formato de almacenamiento principal. Su eficaz compresión y rendimiento de consultas lo hacen ideal para almacenar grandes volúmenes de datos, manteniendo un acceso rápido a las herramientas de business intelligence y a las consultas de structured query language (SQL).

Por ejemplo, una cadena de venta minorista que utiliza Parquet para almacenar datos de transacciones puede analizar patrones de ventas en miles de tiendas mientras utiliza menos espacio de almacenamiento que los formatos tradicionales.

Cargas de trabajo de analytics

Científicos de datos y analistas que trabajan con infraestructuras como Apache Spark o la biblioteca pandas de Python se benefician del rendimiento optimizado de Parquet para las consultas analíticas. Aunque formatos como Avro suelen destacar en el procesamiento a nivel de registro, muchos consideran que el formato de archivo Parquet es especialmente eficaz para analytics complejos.

Por ejemplo, una empresa de servicios financieros podría utilizar Parquet para almacenar datos de mercado, lo que permite a los analistas procesar millones de eventos comerciales y calcular métricas de riesgo casi en tiempo real.

Pipelines ETL

Los pipelines de datos modernos suelen utilizar Parquet como formato intermedio o de destino durante los procesos de extracción, transformación y carga (ETL). Su compatibilidad con infraestructuras populares como Apache Spark y el soporte de la evolución de esquemas lo hacen valioso para los flujos de trabajo de ingeniería de datos que necesitan manejar estructuras de datos cambiantes.

Por ejemplo, las organizaciones de atención médica podrían usar Parquet para transformar de manera eficiente los registros de pacientes de múltiples sistemas a un formato unificado, con capacidades de evolución de esquemas que manejan automáticamente nuevos campos de datos sin interrumpir los procesos existentes.

Apache Parquet contra otros formatos de archivo

Así es como se compara el formato de archivo Parquet con otros formatos de almacenamiento comunes:

Parquet contra CSV y JSON

Los formatos tradicionales, como CSV y JSON, almacenan datos en filas, lo que los hace ideales para la transferencia de datos simple y la legibilidad humana. Sin embargo, cuando se trata de analytics a gran escala, la lectura de archivos Parquet ofrece ventajas significativas.

Si bien un CSV debe escanear filas enteras incluso cuando consulta columnas individuales, el almacenamiento en columnas de Parquet permite el acceso directo a elementos de datos específicos. Por ejemplo, analizar una sola columna en un conjunto de datos a escala de petabytes podría requerir leer todo el archivo CSV, mientras que Parquet accedería solo a los fragmentos de columna relevantes.

Parquet contra Avro

Avro y Parquet sirven para diferentes casos de uso en el ecosistema de datos. El formato basado en filas de Avro sobresale en escenarios de serialización y transmisión, lo que lo hace ideal para registrar eventos o transacciones individuales.

El formato de archivo Parquet, por el contrario, se optimiza para cargas de trabajo analíticas en las que las organizaciones necesitan analizar columnas específicas en millones de registros.

Por ejemplo, una plataforma de comercio electrónico podría usar Avro para capturar eventos de pedidos en tiempo real, pero convertir estos datos a Parquet para almacenamiento y análisis a largo plazo.

Ecosistema de apoyo de herramientas e infraestructuras

La fuerza de Apache Parquet reside no sólo en sus especificaciones de formato, sino también en su estable ecosistema de herramientas e infraestructuras.

Algunas de las tecnologías más importantes en el ecosistema de Parquet incluyen:

Infraestructuras de procesamiento

Parquet se integra perfectamente con las principales infraestructuras de procesamiento de datos. Apache Spark proporciona capacidades de analytics de alto rendimiento, mientras que Hadoop permite el procesamiento distribuido en grandes clústeres.

Apache Arrow puede mejorar aún más este ecosistema de procesamiento al permitir el intercambio rápido y eficiente de datos entre sistemas y el acceso directo a los datos—características que aceleran el rendimiento cuando se emplean infraestructuras como Spark y Hadoop.

Las organizaciones pueden combinar estas infraestructuras con Parquet para crear pipelines de datos eficientes que van desde gigabytes hasta petabytes.

Lenguajes de programación e interfaces

Los ingenieros de datos pueden trabajar con Parquet a través de múltiples interfaces de programación. Los desarrolladores de Python suelen emplear pandas para la manipulación de datos, mientras que las aplicaciones Java emplean bibliotecas Parquet nativas.

Plataformas en la nube

Los principales proveedores de la nube, incluyendo Amazon Web Services, Google Cloud Platform, Microsoft Azure e IBM Cloud®, ofrecen soporte nativo para Parquet.

Parquet también es compatible con almacenes de datos basados en la nube y motores de consulta, como Amazon Athena, Google BigQuery e IBM® Db2® Warehouse.

Soluciones relacionadas
IBM Storage DS8000

IBM Storage DS8000 es el sistema de almacenamiento más rápido, confiable y seguro para IBM zSystems y servidores IBM Power.

Explore el almacenamiento DS8000
Soluciones de almacenamiento de datos empresariales

IBM Storage es una familia de hardware de almacenamiento de datos, almacenamiento definido por software y software de gestión del almacenamiento.

Explorar las soluciones de almacenamiento de datos
Servicios de soporte de hardware y software  

IBM ofrece soporte proactivo para servidores web e infraestructura de centros de datos para reducir el tiempo de inactividad y mejorar la disponibilidad de la TI.

Servicios de servidores Web
Dé el siguiente paso

Desde la gestión de entornos de nube híbrida hasta garantizar la resiliencia de los datos, las soluciones de almacenamiento de IBM le permiten desbloquear insights de sus datos a la vez que mantiene una sólida protección frente a las amenazas.

Explorar las soluciones de almacenamiento de datos Recorrido guiado del producto