Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
  • Inteligencia Artificial _
Artículos de Tecnología > Data Science

Apache Parquet: Almacenamiento eficiente de datos a gran escala

Danielle-Oliveira
Danielle-Oliveira
11 de Agosto

Compartir

Mira este artículo:
  1. ¿Qué es Apache Parquet?
  2. Apache Parquet vs. CSV
  3. Ventajas
  4. Conclusión

Apache Parquet es un formato de archivo de código abierto, disponible para cualquier proyecto en el ecosistema de Hadoop. Construido desde cero, fue desarrollado para el almacenamiento de datos basado en columnas con el objetivo de admitir esquemas de compresión y codificación de grandes cantidades de datos, proporcionando una mayor eficiencia en comparación con los archivos basados en filas, como el CSV.

Parquet tiene una organización interna de los datos muy similar a la de una tabla de RDBMS (Sistema de Gestión de Bases de Datos Relacionales, por sus siglas en inglés:Relational Database Management System), con filas y columnas. A diferencia de esta tabla, los datos en Parquet se almacenan uno al lado del otro. Debido a su estructura columnar, proporciona una mejor compactación y rendimiento al trabajar con grandes cantidades de datos.

En este artículo, conoceremos un poco la estructura de un archivo Parquet, haremos una comparación sencilla entre archivos CSV y Parquet, y destacaremos algunas ventajas de utilizar este formato.


¿Qué es Apache Parquet?

Apache Parquet es un archivo de formato binario que permite almacenar datos utilizando algunos tipos específicos, como: BOOLEAN, INT32, INT64, INT96, FLOAT, DOUBLE y BYTE_ARRAY. Los metadatos en Parquet, incluyendo el esquema y la estructura, se integran individualmente en cada archivo, lo que convierte a Apache Parquet en un formato de archivo autodescriptivo.

Los metadatos de un archivo Parquet contienen información como la versión, el esquema, el tipo, entre otros puntos importantes, y siempre se graban después de los datos. Según la documentación de Apache Parquet, este formato está diseñado explícitamente para separar los metadatos de los datos. Cuando esto ocurre, es posible referenciar varios archivos Parquet. De esta manera, tendremos los datos en varios archivos donde se pueden leer en paralelo, es decir, al mismo tiempo.

Los metadatos se segmentan en tres partes: metadatos de archivo (FileMetaData), metadatos de columna (ColumnMetaData) y metadatos de encabezado de página (PageHeader). En el caso de los metadatos de archivos, se almacenan en el pie de página de cada archivo y contienen la siguiente información:

  • Versión del formato Parquet.
  • Esquema de datos.
  • Metadatos de la columna (tipo, número de valores, ubicación, codificación).
  • Número de grupos de filas.
  • Pares de valor-clave adicionales.

Se espera que la lectura de un archivo Parquet se realice inicialmente a través de los metadatos. Así, será posible localizar e identificar solo las columnas que son de interés para el lector.


Apache Parquet vs. CSV

El formato CSV es uno de los más utilizados actualmente y su estructura es muy similar a la de una tabla de RDBMS con columnas y filas. La primera línea del archivo forma el encabezado y la separación interna se puede hacer por coma (,), punto y coma (;) o TAB (carácter vacío).

Herramientas como Google Sheets y Excel se pueden utilizar para crear un archivo CSV. Sin embargo, a pesar de ser uno de los formatos más utilizados para la creación de archivos, existen algunas desventajas al trabajar con él. Un ejemplo de esta situación puede ocurrir al utilizar servicios que cobran en base a los datos consultados, la cantidad de datos almacenados y el tiempo, como Amazon Athena, Amazon S3 y Google Dataproc.

Databricks realizó una comparación de rendimiento y ahorro de espacio con el mismo conjunto de datos utilizando los formatos Parquet y CSV.

ArchivoEspacio utilizadoTiempo de ejecución
CSV1 TB236 segundos
Apache Parquet130 GB6,78 segundos

A partir de esta comparación, fue posible verificar un ahorro en recursos de almacenamiento del 87% y una reducción significativa en el tiempo de ejecución de las consultas cuando utilizamos el formato Parquet.


Ventajas

  • Consultas dirigidas: Las consultas se pueden realizar directamente en columnas específicas, en lugar de realizar una búsqueda en todos los datos de los archivos. Esto se debe a que los archivos Parquet son autodescriptivos. A través del archivo de metadatos, es posible identificar solo las columnas que tienen relevancia para la consulta.
  • Compresión eficiente: La compresión se realiza columna por columna y se puede realizar utilizando uno de los varios códecs disponibles. Fue diseñada para ofrecer soporte a opciones flexibles de compresión y esquemas de codificación extensibles por tipo de dato, es decir, una codificación diferente puede aplicarse para comprimir columnas con datos de distintos tipos.
  • Evolución del esquema: Al utilizar el formato columnar como Parquet, es posible evolucionar el esquema. Inicialmente se puede crear un archivo con pocas columnas y, gradualmente, ir añadiendo más columnas al esquema, pudiendo tener varios archivos con esquemas diferentes y compatibles entre sí.
  • Tipos de datos mapeados: Con los tipos de datos mapeados, es posible identificar fácilmente con qué datos estamos trabajando, si son texto, números u otros. Sin embargo, al ser de formato binario, no es posible leer los datos de un archivo Parquet sin utilizar una herramienta externa, a diferencia del CSV.

Conclusión

En este artículo, hemos conocido un poco sobre el proyecto Apache Parquet, que es un formato de archivo de código abierto y orientado por columnas.

El formato de almacenamiento columnar hace que Parquet sea bastante eficiente a la hora de almacenar y analizar grandes volúmenes de datos. Esto se debe a que, al ejecutar una consulta, podemos concentrarnos solo en la información relevante, minimizando significativamente la cantidad de datos que necesitan ser procesados.

Otra característica interesante de este formato es la posibilidad de utilizar esquemas de compresión específicos para cada columna. Este recurso aumenta de forma significativa la eficiencia y el ahorro en recursos de almacenamiento.

Para saber más, sigue las novedades en la página del proyecto Apache Parquet y en nuestros cursos aquí en Alura.

Articulo Adaptado y Traduzido por Iara Martínez.

Artículo Anterior
MongoDB: el banco basado en documentos
Siguiente Artículo
Georreferenciación: qué es, sus usos y herramientas

Ver otros artículos sobre Data Science

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps
  • Inteligencia Artificial

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Una empresa del grupo Alun

Logo do grupo Alun

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics
Cursos de Inteligencia Artificial

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast