Codificación, Compresión, Parquet y Hive
En el cluster CDH 5.14, estaba haciendo una comparación de tamaño para inserciones hechas con hive Vs impala a una tabla con formato de archivo parquet. Tenía la impresión de que, al ser ambos formatos de archivo iguales, deberían tener un comportamiento similar (con el códec de compresión por defecto) para dar como resultado aproximadamente el mismo tamaño. Sin embargo, me di cuenta de que el archivo de parquet escrito por Impala es mucho más pequeño que el escrito por Hive para los mismos datos de entrada. Es decir, la diferencia específica entre la codificación y la compresión y cómo hive opera en esto.
Lo que creo en la diferencia general entre la codificación y la compresión es –
- Codificación: Es más a nivel de aplicación donde se cambia la representación de los datos. La codificación también puede minimizar el uso de espacio que nos puede dar un tipo de compresión.
- Compresión : En general es la Técnica para reducir el almacenamiento de los datos dados en bytes independientemente de los datos de subrayado ya está codificado o no.
- Creé una colmena con formato de archivo parquet.
- Inserté algunos datos que habían creado aproximadamente 1GB de archivos parquet como parte de la inserción.
- Para ver el archivo parquet, copié el archivo de hdfs a local para volcarlo (sólo para notar – hay manera de volcar desde hdfs también). Entonces validado utilizando la utilidad parquet-meta que puede volcar el archivo de parquet.
- …/parquet-meta <nombre del archivo>
Lo anterior se confirma con la siguiente observación.