¿Qué es Apache Parquet?

Fotografía debajo de las vigas del puente

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 forma 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 costes 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, lo que optimiza las transferencias de datos y la legibilidad.

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

Por ejemplo, al analizar las transacciones de los clientes, una base de datos de venta minorista que utilice Parquet puede acceder a columnas específicas, como fechas e importes de compra, sin cargar todo el registro de clientes. Esta posibilidad de acceder a columnas específicas puede reducir tanto el tiempo de procesamiento como los costes de almacenamiento.

El formato Parquet es valioso en tres áreas clave:

  • Cargas de trabajo analíticas que procesan consultas complejas en miles de millones de registros.
  • Data lakes y almacenes de datos que requieren un almacenamiento eficaz y una rápida recuperación de los datos.
  • Canalizaciones de machine learning (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, 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 y el acceso a los datos a través de tres capacidades clave:

  • Formato de almacenamiento en columnas: mientras que los formatos de archivo tradicionales almacenan datos en filas de forma muy parecida a las entradas de una hoja de cálculo, Parquet utiliza un formato de almacenamiento en columnas. 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, al mismo tiempo que reduce significativamente los costes de almacenamiento.
  • Gestión de esquemas y metadatos: cada archivo de Parquet incluye un esquema autodescriptivo, en realidad un plan 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 empresariales. Por ejemplo, una base de datos de empresa que utiliza Parquet puede añadir nuevos atributos de clientes sin reconstruir los registros existentes.
  • Compresión eficaz: Parquet optimiza automáticamente el almacenamiento de datos mediante sofisticadas técnicas de compresión, lo que significa que reduce el tamaño de los archivos al eliminar la información duplicada innecesaria y almacenar los datos en un formato más eficiente desde el punto de vista del espacio. Este enfoque inteligente del almacenamiento de datos ayuda a garantizar una eficiencia de almacenamiento y un rendimiento informático óptimos en distintos tipos de cargas de trabajo.
Diseño 3D de bolas rodando por un circuito

Las últimas noticias + conocimientos de IA 


Descubra ideas y noticias de expertos sobre IA, 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 de columnas optimizado, lo que mejora significativamente tanto la eficiencia del almacenamiento como el rendimiento de las consultas.

Así es como Parquet procesa los datos:

1. Organización de los datos

Al escribir datos en un archivo Parquet, el formato divide primero los datos en grupos de filas. Cada grupo de filas representa una unidad independiente del conjunto de datos, lo que permite un procesamiento paralelo y una gestión eficaz de la memoria para operaciones a gran escala. Esta estrategia de partición constituye la base del 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 columnas en lugar de por filas. Los tipos de datos similares se agrupan en fragmentos de columna, lo que permite una codificación especializada en función de las características de los datos. Por ejemplo, una columna de fechas se puede optimizar de forma 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, utiliza esquemas de codificación como la codificación de longitud de ejecución (RLE) para representar eficazmente valores repetidos, especialmente valiosos 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, incluidos el esquema de archivo y los tipos de datos, estadísticas para cada columna, ubicaciones de grupos de filas y estructura. Estos metadatos ayudan a permitir una planificación y optimización eficientes de las consultas.

5. Ejecución de consultas

Al leer datos de Parquet, los motores de consulta acuden primero a los metadatos para identificar las columnas relevantes. Sólo se leen del almacenamiento los fragmentos de columna necesarios, y los datos se descomprimen y descodifican 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 las 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, sólo acceden a las columnas relevantes, reduciendo los tiempos de consulta de horas a minutos. Este acceso específico hace que Parquet sea valioso para las organizaciones que ejecutan análisis complejos a escala.

Gestión de datos complejos

A diferencia de los formatos más simples, Parquet puede administrar de manera eficiente estructuras de datos anidadas y matrices comunes en las aplicaciones modernas. Esta capacidad la hace útil para las organizaciones que trabajan con tipos de datos complejos, como estructuras tipo JSON en la analítica web o matrices anidadas en datos de sensores de dispositivos de Internet de las cosas (IoT).

Eficiencia de almacenamiento

El formato en columnas 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 relaciones de compresión que formatos como CSV o JSON.

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

Integración del marco

Las arquitecturas de datos modernas a menudo requieren una integración perfecta de herramientas, que Parquet ofrece a través del soporte nativo para los principales marcos. Tanto si los equipos utilizan 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 coherente a los datos en toda la empresa.

Optimización del ecosistema de Hadoop

La integración nativa de Parquet con Hadoop lo hace especialmente eficaz para el procesamiento de big data. Dado que Parquet fue creado para el sistema de archivos distribuidos Hadoop (HDFS), suele funcionar mejor que los formatos de archivos tradicionales en entornos Hadoop. Al utilizar Parquet con Hadoop, las organizaciones pueden ejecutar consultas más rápidamente y almacenar sus datos de forma 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 obtener costes, simplicidad y resiliencia

Descubra cómo IBM FlashSystem optimiza los entornos VMware para obtener 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 habituales de Parquet

Apache Parquet puede abordar una variedad de necesidades de ingeniería de datos en todos los sectores y aplicaciones.

Algunas de sus implementaciones más impactantes incluyen:

Data lakes y almacenes de datos

Las organizaciones que crean data lakes y almacenes de datos suelen elegir Parquet como formato de almacenamiento principal. Su eficiente compresión y rendimiento de consultas lo hacen ideal para almacenar grandes volúmenes de datos al tiempo que mantiene un acceso rápido a herramientas de inteligencia empresarial y consultas de lenguaje de consulta estructurado (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 analíticas

Científicos de datos y analistas que trabajan con marcos como Apache Spark o la biblioteca pandas de Python se benefician del rendimiento optimizado de Parquet para 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 análisis complejos.

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

Canalizaciones ETL

Las canalizaciones de datos modernas con frecuencia utilizan Parquet como formato intermedio o de destino durante los procesos de extracción, transformación y carga (ETL) . Su compatibilidad con marcos populares como Apache Spark y la compatibilidad con 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 sanitarias podrían utilizar Parquet para transformar eficazmente los historiales de los pacientes procedentes de múltiples sistemas en un formato unificado, con capacidades de evolución de esquemas que gestionen automáticamente los nuevos campos de datos sin interrumpir los procesos existentes.

Apache Parquet vs. otros formatos de archivo

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

Parquet vs. CSV y JSON

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

Mientras que 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 vs. 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 utilizar Avro para capturar eventos de pedidos en tiempo real, pero convertir estos datos a Parquet para su almacenamiento y análisis a largo plazo.

Ecosistema de apoyo de herramientas y marcos

La fuerza de Apache Parquet reside no solo en sus especificaciones de formato, sino también en su sólido ecosistema de herramientas y marcos de soporte.

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

Marcos de procesamiento

Parquet se integra de manera fluida con los principales marcos de proceso de datos. Apache Spark proporciona capacidades analíticas 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 a datos: características que aceleran el rendimiento cuando se utilizan marcos como Spark y Hadoop.

Las organizaciones pueden combinar estos marcos con Parquet para crear canalizaciones 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 varias interfaces de programación. Los desarrolladores de Python suelen utilizar pandas para manipular datos, mientras que las aplicaciones Java utilizan las bibliotecas nativas de Parquet.

Plataformas en la nube

Los principales proveedores de servicios en la nube, incluidos Amazon Web Services, Google Cloud Platform, Microsoft Azure y 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, fiable y seguro para IBM zSystems y IBM Power servers.

Explore Storage 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.

Explore 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 obtener conocimientos de sus datos a la vez que mantiene una sólida protección frente a las amenazas.

Explore las soluciones de almacenamiento de datos Realice una visita guiada del producto