Un archivo Apache Parquet es un formato de almacenamiento de datos de código abierto que se utiliza para las bases de datos columnares en las consultas analíticas. Si tiene pequeños conjuntos de datos, pero millones de filas para buscar, puede ser mejor usar un formato de columna para un mejor rendimiento. Las bases de datos columnas almacenan los datos agrupando columnas en lugar de agruparlas por filas en la base de datos estándar basada en filas. Un archivo Parquet es uno de varios formatos de almacenamiento columnar.
¿Qué es un archivo de parquet?
En lugar de agrupar filas como una hoja de cálculo de Excel o una base de datos relacional estándar, un archivo Apache Parquet agrupa columnas para un rendimiento más rápido. El parquet es un formato de almacenamiento columnar y no una base de datos en sí misma, pero el formato Parquet es común con los lagos de datos, especialmente con Hadoop. Como es un formato columnar, es popular entre el almacenamiento de datos analíticos y las consultas.
La mayoría de los desarrolladores están acostumbrados al almacenamiento de datos basado en filas, pero imagine rotar una hoja de cálculo de Excel para que las columnas se muestren ahora en lugar de las filas numeradas. Por ejemplo, en lugar de mantener una tabla de clientes con una lista de columnas de nombre y apellido, en la que cada nombre y apellido se agrupan como fila, un archivo Parquet almacena columnas juntas para que las bases de datos puedan devolver más rápidamente la información de una columna específica en lugar de buscar en cada fila con numerosas columnas.
Ventajas de los archivos de parqué
Aparte del rendimiento de las consultas basado en la manera en que Parquet almacena los datos, la otra ventaja principal es la rentabilidad. Los archivos Apache Parquet tienen una compresión y descompresión muy eficientes, por lo que no ocupan tanto espacio como un archivo de base de datos estándar. Al ocupar menos espacio de almacenamiento, una organización empresarial podría ahorrar miles de dólares en costes de almacenamiento.
Los formatos de almacenamiento Columnar son mejores con macrodatos y consultas analíticas. Los archivos de parqué pueden almacenar imágenes, vídeos, objetos, archivos y datos estándar, por lo que pueden usarse en cualquier tipo de aplicación analítica. Debido a que las estrategias de archivos de Parquet son de código abierto, también son buenas para las organizaciones que quieren personalizar sus estrategias de almacenamiento y consulta de datos.
Cómo funcionan los archivos de parqué
Los archivos de parqué contienen almacenamiento basado en columnas, pero también contienen metadatos. Las columnas se agrupan en cada grupo de filas para lograr una mayor eficiencia en las consultas y los metadatos ayudan al motor de la base de datos a localizar los datos. Los metadatos contienen información sobre las columnas, los grupos de filas que contienen datos y el esquema.
El esquema de un archivo Parquet describe el enfoque del almacenamiento basado en columnas. El formato de esquema es binario y puede usarse en un entorno de lago de datos de Hadoop. Los archivos de parqué pueden almacenarse en cualquier sistema de archivos, por lo que no se limitan solo a los entornos Hadoop.
Una de las ventajas del formato de almacenamiento de archivos Parquet es una estrategia llamada pushdown predicado. Con una reducción prevista, el motor de la base de datos filtra los datos al principio del procesamiento, para que los datos más dirigidos se transfieran a través de la canalización. Al tener menos datos dirigidos a una consulta, mejora el rendimiento de la consulta. Un menor procesamiento de los datos también reduce el uso de los recursos informáticos y, en última instancia, también reduce los costes.
Uso de los archivos de parqué
Los archivos de parqué son archivos Apache, por lo que puede crearlos en sus propios scripts Python, siempre que importe varias bibliotecas. Supongamos que tiene una tabla en Python:
import numpy as np
import pandas as pd
import pyarrow as pa
df = pd.DataFrame({'one': [-1, 4, 1.3],
'two': ['blue', 'green', 'white'],
'three': [False, False, True]},
index=list('abc'))
table = pa.Table.from_pandas(df)
Con esta tabla, ahora podemos crear un archivo Parquet:
import pyarrow.parquet as pq
pq.write_table(table, 'mytable.parquet')
El código anterior crea el archivo “mytable.parquet” y escribe la tabla en él. Ahora puede leer desde su base de datos favorita e importar los datos, o puede usar los datos para sus propias consultas y análisis.
También puede leer esta tabla desde el archivo usando Python:
pq.read_table('mytable.parquet', columns=['one', 'three'])
La función write() le permite establecer opciones cuando escribe la tabla en un archivo. Puede encontrar una lista de opciones en el sitio de Apache, pero aquí tiene un ejemplo de cómo configurar la compatibilidad del archivo con Apache Spark:
import numpy as np
import pandas as pd
import pyarrow as pa
df = pd.DataFrame({'one': [-1, 4, 1.3],
'two': ['blue', 'green', 'white'],
'three': [False, False, True]},
flavor=’spark’)
table = pa.Table.from_pandas(df)
Conclusión
Si tiene previsto usar archivos Parquet para Hadoop, Apache Spark u otras bases de datos compatibles, puede automatizar la creación de archivos usando Python o importar archivos en el entorno de la base de datos para su análisis. Los archivos de parqué utilizan la compresión para reducir los requisitos de espacio de almacenamiento, pero sigue necesitando una capacidad de almacenamiento excesiva para los silos de macrodatos grandes. Pure Storage puede ayudarle con el almacenamiento de macrodatos con nuestra tecnología de deduplicación y compresión.