Articles

Parquet

Posted on

Parquet es un formato de archivo de código abierto disponible para cualquier proyecto en el ecosistema Hadoop. Apache Parquet está diseñado para un formato de almacenamiento plano de datos en columnas, eficiente y de alto rendimiento, en comparación con los archivos basados en filas como los archivos CSV o TSV.

Parquet utiliza el algoritmo de trituración y ensamblaje de registros que es superior al simple aplanamiento de espacios de nombres anidados. Parquet está optimizado para trabajar con datos complejos en masa y cuenta con diferentes formas de compresión de datos y tipos de codificación eficientes. Este enfoque es mejor especialmente para aquellas consultas que necesitan leer ciertas columnas de una tabla grande. Parquet sólo puede leer las columnas necesarias, por lo que minimiza en gran medida el IO.

Ventajas de almacenar datos en un formato columnar:

  • El almacenamiento columnar como Apache Parquet está diseñado para aportar eficiencia en comparación con los archivos basados en filas como CSV. Cuando se realizan consultas, el almacenamiento en columnas permite saltarse los datos no relevantes muy rápidamente. Como resultado, las consultas de agregación consumen menos tiempo en comparación con las bases de datos orientadas a filas. Esta forma de almacenamiento se ha traducido en un ahorro de hardware y en la minimización de la latencia de acceso a los datos.
  • Apache Parquet está construido desde cero. Por lo tanto, es capaz de soportar estructuras de datos anidadas avanzadas. El diseño de los archivos de datos de Parquet está optimizado para consultas que procesan grandes volúmenes de datos, en el rango de gigabytes para cada archivo individual.
  • Parquet está construido para soportar opciones de compresión flexibles y esquemas de codificación eficientes. Como el tipo de datos de cada columna es bastante similar, la compresión de cada columna es sencilla (lo que hace que las consultas sean aún más rápidas). Los datos se pueden comprimir utilizando uno de los varios códecs disponibles; como resultado, los diferentes archivos de datos se pueden comprimir de manera diferente.
  • Apache Parquet funciona mejor con tecnologías interactivas y sin servidor como AWS Athena, Amazon Redshift Spectrum, Google BigQuery y Google Dataproc.

Diferencia entre Parquet y CSV

CSV es un formato sencillo y muy extendido que es utilizado por muchas herramientas como Excel, Google Sheets, y otras numerosas pueden generar archivos CSV. Aunque los archivos CSV son el formato por defecto para los pipelines de procesamiento de datos tiene algunas desventajas:

  • Amazon Athena y Spectrum cobrarán en función de la cantidad de datos escaneados por consulta.
  • Google y Amazon cobrarán en función de la cantidad de datos almacenados en GS/S3.
  • Los cargos de Google Dataproc se basan en el tiempo.
    • Parquet ha ayudado a sus usuarios a reducir los requisitos de almacenamiento en al menos un tercio en grandes conjuntos de datos, además, mejoró en gran medida el tiempo de escaneo y deserialización, por lo tanto, los costes globales.

      La siguiente tabla compara el ahorro así como el speedup obtenido al convertir los datos a Parquet desde CSV.

      .

      Conjunto de datos

      Tamaño en Amazon S3

      Tiempo de ejecución de la consulta

      Datos escaneados

      Coste

      Datos almacenados como archivos CSV

      1 TB

      236 segundos

      1.15 TB

      Datos almacenados en formato Apache Parquet

      130 GB

      6,78 segundos

      2.51 GB

      Ahorro

      87% menos al utilizar Parquet

      34 veces más rápido

      99% menos de datos escaneados

      99.7% de ahorro

Deja una respuesta

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