in

Probablemente la mejor alternativa al almacenamiento CSV: datos de parquet


Apache Parquet ofrece varias ventajas para almacenar y recuperar datos sobre los métodos tradicionales como CSV.

El formato de parquet está diseñado para un procesamiento de datos más rápido de tipos complejos. En este artículo, hablaremos sobre cómo el formato Parquet se adapta a las crecientes necesidades de datos actuales.

Antes de profundizar en los detalles del formato Parquet, comprendamos qué son los datos CSV y qué desafíos plantean para el almacenamiento de datos.

¿Qué es el almacenamiento CSV?

Todos hemos escuchado mucho sobre CSV (C.abuelita S.apartado VValores): una de las formas más comunes de organizar y formatear datos. El almacenamiento de datos CSV se basa en líneas. Los archivos CSV se guardan con la extensión .csv. Podemos guardar y abrir datos CSV usando Excel, Google Sheets o cualquier editor de texto. Las fechas son sencillas visible una vez que el archivo está abierto.

Bueno, eso no es bueno, definitivamente no para un formato de base de datos.

Además, a medida que aumenta el volumen de datos, resulta difícil consultar, administrar y recuperar.

A continuación, se muestra un ejemplo de datos almacenados en un archivo .CSV:

EmpId,First name,Last name, Division
2012011,Sam,Butcher,IT
2013031,Mike,Johnson,Human Resource
2010052,Bill,Matthew,Architect
2010079,Jose,Brian,IT
2012120,Adam,James,Solutions

Cuando lo vemos en Excel, podemos ver una estructura fila-columna como esta:

Desafíos del almacenamiento CSV

Los almacenamientos basados ​​en filas como CSV son buenos para C.ahorrar Update y D.operaciones elete.

Qué pasa R.luego leer en CRUD?

Imagina un millón de líneas en el archivo CSV anterior. Se necesitaría un tiempo razonable para abrir el archivo y buscar los datos que estaba buscando. No es tan genial. La mayoría de los proveedores de nube como AWS cobran a las empresas en función de la cantidad de datos escaneados o almacenados; nuevamente, los archivos CSV ocupan mucho espacio.

El almacenamiento CSV no tiene una opción exclusiva para guardar metadatos, lo que hace que el escaneo de datos sea una tarea tediosa.

Entonces, ¿cuál es la solución óptima y de bajo costo para realizar todas las operaciones CRUD? Vamos a explorar.

¿Qué es el almacenamiento de datos de parquet?

Parquet es un formato de almacenamiento de código abierto para almacenar datos. Se usa ampliamente en los ecosistemas Hadoop y Spark. Los archivos de parquet se guardan como una extensión .parquet.

El parquet es un formato muy estructurado. También se puede utilizar para optimizar datos brutos complejos que abundan en los lagos de datos. Esto puede reducir significativamente el tiempo de consulta.

Parquet hace que el almacenamiento de datos sea eficiente y la recuperación más rápida debido a una combinación de formatos de almacenamiento basados ​​en filas y columnas (híbridos). En este formato, los datos se dividen tanto horizontal como verticalmente. El formato Parquet también elimina en gran medida la sobrecarga de análisis.

El formato limita el número total de operaciones de E / S y, en última instancia, el costo.

Parquet también almacena los metadatos, que almacenan información sobre datos como el esquema de datos, el número de valores, la posición de las columnas, el valor mínimo, el número máximo de grupos de filas, el tipo de codificación, etc. Los metadatos se almacenan en diferentes niveles en el archivo, lo que agiliza el acceso a los datos.

Con el acceso basado en filas como CSV, la recuperación de datos lleva tiempo ya que la consulta tiene que navegar por cada fila y recuperar los valores de las columnas respectivas. Con el almacenamiento de parquet, puede acceder a todas las columnas que necesita al mismo tiempo.

En resumen,

  • Parquet se basa en la estructura de columnas para el almacenamiento de datos.
  • Es un formato de datos optimizado para almacenar datos complejos en grandes cantidades en sistemas de almacenamiento.
  • El formato de parquet incluye varios métodos de compresión y codificación de datos.
  • Reduce significativamente el escaneo de datos y el tiempo de consulta y requiere menos espacio de almacenamiento en comparación con otros formatos de almacenamiento como CSV
  • Minimiza la cantidad de E / S y reduce los costos de ejecución de consultas y memoria
  • Contiene metadatos para facilitar la búsqueda de datos.
  • Ofrece soporte de código abierto

Formato de datos de parquet

Antes de entrar en un ejemplo, echemos un vistazo más de cerca a cómo se almacenan los datos en el formato Parquet:

Podemos tener múltiples particiones horizontales conocidas como estrofas en un archivo. La división vertical se utiliza dentro de cada estrofa. Las columnas se dividen en varios bloques de columnas. Los datos se almacenan como páginas dentro de los bloques de columnas. Cada página contiene los valores de datos codificados y los metadatos. Como se mencionó anteriormente, los metadatos de todo el archivo también se almacenan en el pie de página del archivo a nivel de estrofa.

Dado que los datos se dividen en bloques de columnas, agregar nuevos datos también es fácil al codificar los nuevos valores en un nuevo bloque y un nuevo archivo. Luego, los metadatos se actualizan para los archivos y estrofas afectados. Entonces podemos decir que el parquet es un formato flexible.

Parquet admite de forma nativa la compresión de datos mediante técnicas de compresión de páginas y codificación de diccionarios. Veamos un ejemplo simple de compresión de diccionario:


Observe que en el ejemplo anterior vemos al departamento de TI cuatro veces. Cuando se guarda en el diccionario, el formato codifica los datos con otro valor fácil de guardar (0,1,2 …) junto con el número de repeticiones consecutivas – IT, IT se cambia a 0,2 más de espacio para guardar. Se necesita menos tiempo para consultar datos comprimidos.

Comparación cara a cara

Ahora que tenemos una buena idea de cómo se ven los formatos CSV y Parquet, es hora de compilar algunas estadísticas comparando los dos formatos:

CSV parquet
Formato de almacenamiento basado en filas. Una combinación de formatos de almacenamiento basados ​​en filas y en columnas.
Ocupa mucho espacio en disco porque no hay una opción de compresión estándar disponible. Por ejemplo, un archivo de 1TB ocupará la misma cantidad de espacio cuando se almacena en Amazon S3 u otra nube. Comprime los datos a medida que se almacenan, por lo que consume menos espacio de almacenamiento. Un archivo de 1 TB guardado en formato Parquet ocupa solo 130 GB de espacio.
El tiempo de ejecución de la consulta es lento debido a la búsqueda basada en filas. Se debe obtener cada fila de datos para cada columna. El tiempo de consulta es aproximadamente 34 veces más rápido debido al almacenamiento basado en columnas y la presencia de metadatos.
Se deben escanear más datos por consulta. Se escanea aproximadamente un 99% menos de datos para ejecutar la consulta, lo que mejora el rendimiento.
La mayoría de los dispositivos de almacenamiento tienen un precio basado en el espacio de almacenamiento, por lo que el formato CSV significa un alto costo de almacenamiento. Menores costos de almacenamiento ya que los datos se almacenan en un formato codificado y comprimido.
El esquema de archivo debe derivarse (conduce a errores) o suministrarse (engorroso). El esquema de archivo se guarda en los metadatos.
El formato es adecuado para tipos de datos simples. Parquet también es adecuado para tipos complejos como esquemas anidados, matrices, diccionarios.

Conclusión

Hemos visto a través de ejemplos que el parquet es más eficiente que el CSV en términos de costes, flexibilidad y rendimiento. Es un mecanismo eficaz para almacenar y recuperar datos, especialmente cuando todo el mundo avanza hacia el almacenamiento en la nube y la optimización del espacio. Todas las plataformas principales, como Azure, AWS y BigQuery, admiten el formato Parquet.

What do you think?

Written by Alan Kim

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

GIPHY App Key not set. Please check settings

Actualización para Windows 10 KB5007253 con correcciones para impresión en red lanzadas

Microsoft Defender para Endpoint no se inicia en Windows Server