Un archivo Apache Parquet es un formato de almacenamiento de datos de código abierto utilizado para bases de datos de columnas en consultas analíticas. Si tiene conjuntos de datos pequeños, pero millones de filas para buscar, podría ser mejor usar un formato de columna para un mejor rendimiento. Las bases de datos columnas almacenan datos al agrupar columnas en lugar de la base de datos estándar basada en filas que agrupa por filas. Un archivo Parquet es uno de los varios formatos de almacenamiento columnar.
¿Qué es un archivo 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. Parquet es un formato de almacenamiento de columnas y no una base de datos en sí, pero el formato de Parquet es común con data lakes, especialmente con Hadoop. Dado que 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 ahora se muestren en lugar de filas numeradas. Por ejemplo, en lugar de mantener una tabla de clientes con una lista de columnas de nombre y apellido donde cada nombre y apellido se agrupan como fila, un archivo Parquet almacena columnas juntas para que las bases de datos puedan obtener información de una columna específica de manera más rápida en lugar de buscar en cada fila con numerosas columnas.
Beneficios de Parquet Files
Además del rendimiento de las consultas basado en la forma en que los archivos de Parquet almacenan datos, la otra ventaja principal es la rentabilidad. Los archivos Apache Parquet tienen una compresión y descompresión altamente 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 costos de almacenamiento.
Los formatos de almacenamiento columnar son mejores con big data y consultas analíticas. Los archivos de parqué pueden almacenar imágenes, videos, objetos, archivos y datos estándar, por lo que se pueden usar 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 desean personalizar sus estrategias de almacenamiento de datos y consulta.
Cómo funcionan los archivos Parquet
Los archivos parlamentos contienen almacenamiento basado en columnas, pero también contienen metadatos . Las columnas se agrupan en cada grupo de filas para la eficiencia de las consultas, y los metadatos ayudan al motor de la base de datos a localizar datos. Los metadatos contienen información sobre las columnas, los grupos de filas que contienen datos y el esquema.
El esquema en un archivo Parquet describe el enfoque de almacenamiento basado en columnas. El formato del esquema es binario y se puede usar en un entorno de data lake de Hadoop. Los archivos parlamentarios se pueden almacenar en cualquier sistema de archivos, por lo que no se limitan solo a entornos Hadoop.
Una ventaja del formato de almacenamiento de archivos de Parquet es una estrategia denominada “pushdown” previamente homologada. Con la reducción de datos previamente establecida, el motor de bases de datos filtra los datos al inicio del procesamiento para que se transfieran datos más específicos a lo largo del proceso. Al tener menos datos dirigidos a una consulta, mejora el rendimiento de la consulta. Menos procesamiento de datos también reduce el uso de recursos informáticos y, en última instancia, también reduce los costos.
Uso de archivos parlamentarios
Los archivos parqué son archivos Apache, por lo que puede crearlos en sus propios scripts de Python siempre que importe varias bibliotecas. Digamos que tiene una mesa 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 este es 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)
Conclusiones
Si planea 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 al entorno de la base de datos para su análisis. Los archivos de parqué usan compresión para reducir los requisitos de espacio de almacenamiento, pero aún necesita una capacidad de almacenamiento excesiva para silos de big data grandes. Pure Storage puede ayudarlo con el almacenamiento de big data con nuestra tecnología de desduplicación y compresión.