Foro Formación Hadoop
Benchmark Avro vs Parquet
Benchmark Avro vs Parquet
En el siguiente bechmark hemos comprobado tanto la velocidad de procesamiento entre los formatos de ficheros Avro y Parquet así como el tamaño que ocupan cada uno de ellos después de convertirlos en sus correspondientes formatos.
Información Bechmark:
-
Estructura de las tablas: 18 columnas (17 tipo String y una de tipo Int)
-
Sin particionado
- Sin compresión
- Query Filtrado:
- select * from t where ip="80.26.83.175" and ds="NmPuUDloT9qJwYyIfHfvEw";
- Query Select:
- select ip,ds,dt from t;
- Hardware utilizado:
- Cluster de 4 Nodos (todos realizan funciones de DataNode/NodeManager)
- 64 G de Ram y 32 Cpu(s) por Nodo.
Resultado:
Formato |
Tamaño |
Query Filtrado |
Query Select |
Fichero original de 610.9 M (2.000.000 de Registros) |
|||
Text |
610.9 M |
||
Parquet |
184.8 M |
29sec |
22sec |
Avro |
640.5 M |
32sec |
30sec |
Fichero original de 4.8G (16.000.000 de Registros) |
|||
Text |
4.8G |
||
Parquet |
1.3 G |
31sec , 28sec |
30sec |
Avro |
5.0 G |
37sec, 35sec, 37sec |
38sec |
Fichero original de 24.0 G (80.000.000 de Registros) |
|||
Text |
24.0 G |
||
Parquet |
7.3 G |
43sec, 34sec, 38sec |
26sec, 27sec |
Avro |
25.2 G |
1mins 18sec, 1mins 22sec, 1mins 18sec, 1mins 28sec |
1mins 21sec, 1mins 18sec |
Conclusión:
Tal y como se puede comprobar en los tiempos tomados, a media que se va incrementado el volumen, el rendimiento de búsqueda de Parquet se hace notar. También debemos fijarnos en el volumen de almacenamiento, ya que en este sentido también "gana" Parquet.
A pesar de esto, no hay que descartar el formato de ficheros Avro. Ya que entre las características más importantes de este formato se encuentra que es posible procesarlo con multitud de herramientas y lenguajes (cosa que no podemos encontrar con el formato Parquet).
Para decantarnos entre un formato u otro, deberíamos tener una visión global del caso de uso que se desea resolver para poder determinar si lo que más nos interesa es la velocidad de procesamiento (vamos a realizar múltiples análisis) o si estamos creando un "data lake" para un posterior procesamiento-consumo por otras herramientas.
¿Cuál es el mejor formato? Ninguno, todo depende del problema a resolver ;).
Redes sociales