Probablemente la mejor alternativa al almacenamiento CSV: datos de parquet
Apache Parquet ofrece varios beneficios para el almacenamiento y la recuperación de datos en comparación con los métodos tradicionales como CSV.
El formato parquet está diseñado para un procesamiento de datos más rápido de tipos complejos. En este artículo, hablamos sobre cómo el formato Parquet es adecuado para las crecientes necesidades de datos de hoy.
Antes de profundizar en los detalles del formato Parquet, comprendamos qué son los datos CSV y los desafíos que plantean para el almacenamiento de datos.
¿Qué es el almacenamiento CSV?
Todos hemos escuchado mucho sobre CSV (Comma Sseparado Values): una de las formas más comunes de organizar y formatear datos. El almacenamiento de datos CSV se basa en filas. Los archivos CSV se almacenan con la extensión .csv. Podemos almacenar y abrir datos CSV usando Excel, Hojas de cálculo de Google o cualquier editor de texto. Los datos son fácilmente visible una vez que se abre el archivo.
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
Si lo vemos en Excel, podemos ver una estructura fila-columna como se muestra a continuación:
Desafíos con el almacenamiento CSV
Los almacenamientos en hileras como CSV son adecuados para Creatar Update y Doperaciones elete.
Qué pasa con la R¿Has leído en CRUD, entonces?
Imagine un millón de filas en el archivo .csv anterior. Se necesitaría un tiempo razonable para abrir el archivo y buscar los datos que está 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 consumen mucho espacio.
El almacenamiento CSV no tiene una opción exclusiva para almacenar metadatos, lo que hace que el escaneo de datos sea una tarea tediosa.
Entonces, ¿cuál es la solución óptima y rentable para realizar todas las operaciones CRUD? Exploremos.
¿Qué es el almacenamiento de datos de Parquet?
parquet es un formato de almacenamiento de código abierto para almacenar datos. Es ampliamente utilizado en Hadoop y ecosistemas Spark. Los archivos de parquet se almacenan con la extensión .parquet.
El parquet es un formato muy estructurado. También se puede utilizar para optimizar los datos brutos complejos presentes a granel 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 restringe el número total de operaciones de E / S y, en última instancia, el costo.
Parquet también almacena los metadatos, que almacena información sobre datos como el esquema de datos, el número de valores, la ubicació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.
En 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 obtener los valores de columna particulares. Con el almacenamiento de parquet, se puede acceder a todas las columnas necesarias a la vez.
En resumen,
- Parquet se basa en la estructura columnar para el almacenamiento de datos
- Es un formato de datos optimizado para almacenar datos complejos a granel en sistemas de almacenamiento.
- El formato parquet incluye varios métodos para la compresión y codificación de datos
- Reduce significativamente el tiempo de escaneo de datos y el tiempo de consulta y ocupa menos espacio en disco en comparación con otros formatos de almacenamiento como CSV
- Minimiza la cantidad de operaciones de E / S, lo que reduce el costo de almacenamiento y ejecución de consultas.
- Incluye metadatos que facilitan la búsqueda de datos.
- Proporciona soporte de código abierto
Formato de datos de parquet
Antes de entrar en un ejemplo, comprendamos con más detalle cómo se almacenan los datos en el formato Parquet:
Podemos tener múltiples particiones horizontales conocidas como grupos de filas en un archivo. Dentro de cada grupo de filas, se aplica la partición vertical. Las columnas se dividen en varios fragmentos de columnas. Los datos se almacenan como páginas dentro de los fragmentos de columna. Cada página contiene los valores de datos codificados y los metadatos. Como mencionamos anteriormente, los metadatos de todo el archivo también se almacenan en el pie de página del archivo en el nivel del grupo de filas.
Como los datos se dividen en fragmentos de columnas, también es fácil agregar nuevos datos codificando los nuevos valores en un nuevo fragmento y archivo. Luego, los metadatos se actualizan para los archivos y grupos de filas afectados. Así, podemos decir que 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:
Tenga en cuenta que en el ejemplo anterior, vemos la división de TI 4 veces. Entonces, mientras se almacenan en el diccionario, el formato codifica los datos con otro valor fácil de almacenar (0,1,2…) junto con la cantidad de veces que se repite continuamente: IT, IT se cambia a 0,2 para guardar más espacio. Consultar datos comprimidos lleva menos tiempo.
Comparación cara a cara
Ahora que tenemos una idea clara de cómo se ven los formatos CSV y Parquet, es hora de que algunas estadísticas comparen ambos formatos:
CSV | parquet |
Formato de almacenamiento basado en filas. | Un híbrido de formatos de almacenamiento basados en filas y en columnas. |
Consume mucho espacio ya que no hay disponible una opción de compresión predeterminada. Por ejemplo, un archivo de 1TB ocupará el mismo espacio cuando se almacena en Amazon S3 o cualquier otra nube. | Comprime los datos mientras se almacenan, por lo que consume menos espacio. Un archivo de 1 TB almacenado en formato Parquet ocupará solo 130 GB de espacio. |
El tiempo de ejecución de la consulta es lento debido a la búsqueda basada en filas. Para cada columna, se debe recuperar cada fila de datos. | El tiempo de consulta es aproximadamente 34 veces más rápido debido al almacenamiento basado en columnas y a la presencia de metadatos. |
Se deben escanear más datos por consulta. | Aproximadamente un 99% menos de datos se escanean para la ejecución de la consulta, por lo que optimizar el rendimiento. |
La mayoría de los dispositivos de almacenamiento se cargan en función del espacio de almacenamiento, por lo que el formato CSV significa un alto costo de almacenamiento. | Menor costo de almacenamiento ya que los datos se almacenan en formato codificado y comprimido. |
El esquema de archivo debe inferirse (lo que genera errores) o suministrarse (tedioso). | El esquema de archivo se almacena en los metadatos. |
El formato es adecuado para tipos de datos simples. | Parquet es adecuado incluso para tipos complejos como esquemas anidados, matrices, diccionarios. |
Conclusión 👩💻
Hemos visto a través de ejemplos que Parquet es más eficiente que CSV en términos de costo, flexibilidad y rendimiento. Es un mecanismo eficaz para almacenar y recuperar datos, especialmente cuando el mundo entero se está moviendo hacia almacenamiento en la nube y optimización del espacio. Todas las plataformas principales como Azure, AWS y BigQuery admiten el formato Parquet.