Según un nuevo estudio comparativo, los tres principales motores de SQL en Hadoop -Apache Impala 2.3, Apache Spark 1.6 y Apache Hive 1.2- tienen puntos fuertes y débiles únicos que los hacen adecuados para algunos casos de uso de Business Intelligence (BI) y menos adecuados para otros.
«Las conclusiones son realmente que un solo motor no cumple con todos los requisitos», dice Dave Mariani, CEO y fundador de AtScale, una startup especializada en permitir el BI en Hadoop. «Lo que hemos hecho en nuestros despliegues, para nuestros clientes, es enchufar varios motores».
Para el benchmark de Business Intelligence on Hadoop, AtScale se propuso ayudar a los evaluadores de tecnología a seleccionar la mejor tecnología SQL-on-Hadoop para sus casos de uso de BI. El equipo de pruebas de AtScale utilizó el conjunto de datos Star Schema Benchmark (SSB), basado en datos TPCH ampliamente utilizados, modificados para representar con mayor precisión una disposición de datos típica orientada al BI. El conjunto de datos permitió al equipo de pruebas probar las consultas en tablas de gran tamaño: La tabla de pedidos de línea contiene cerca de 6.000 millones de filas y la tabla de clientes de gran tamaño contiene más de mil millones de filas.
Los motores SQL-on-Hadoop tienen diferentes cargas de trabajo de «punto dulce
Mariani explica que AtScale se fijó en tres requisitos clave para evaluar los motores SQL-on-Hadoop y su idoneidad para satisfacer las cargas de trabajo de BI:
- Rendimiento en big data. Los motores SQL-on-Hadoop deben ser capaces de analizar sistemáticamente miles de millones o billones de filas de datos sin generar errores y con tiempos de respuesta del orden de 10 o 100 segundos. Rapidez en datos pequeños.
- El motor debe ofrecer un rendimiento interactivo con patrones de consulta conocidos y, por ello, es importante que el motor SQL-on-Hadoop devuelva resultados en no más de unos pocos segundos en conjuntos de datos pequeños (del orden de miles o millones de filas). Estable para muchos usuarios.
- Las bases de usuarios de BI de las empresas están formadas por cientos o incluso miles de trabajadores de datos. El motor SQL-on-Hadoop subyacente debe funcionar de forma fiable bajo cargas de trabajo de análisis altamente concurrentes.
Mariani, que dirigió el esfuerzo de construir lo que puede haber sido el mayor cubo OLAP del mundo para BI en Yahoo!, dice que cree que estos tres criterios son representativos de los principales requisitos que tendrá que cumplir la empresa media que hace BI en Hadoop. Los criterios se han extraído de la experiencia del equipo de pruebas al trabajar con un gran número de empresas de servicios financieros, sanidad, comercio minorista, telecomunicaciones y otros sectores.
«Hemos utilizado la experiencia de empresas del mundo real para elaborar un documento que todo evaluador técnico pueda utilizar como parte de su proceso de evaluación», añade Josh Klahr, vicepresidente de Gestión de Productos de AtScale.

El equipo de pruebas descubrió que los tres motores superaron las pruebas y son lo suficientemente estables como para soportar cargas de trabajo de BI, pero un motor no se ajusta a todas las necesidades. Cada uno tiene su propio «punto dulce», y es probable que las empresas descubran que el uso combinado de todos los motores puede ajustarse mejor a sus objetivos.
Aunque Hive se considera generalmente el motor por defecto para SQL en Hadoop, fue de lejos el más lento de los motores en el benchmark, lo que lo hace poco adecuado para las consultas interactivas.
«Si quieres utilizar Hive Tez como motor de consulta interactiva exclusivamente, lo mejor que vas a hacer es 2,4 segundos», dice Mariani.
Pero aunque sea lento, Hive es también el más estable de los tres motores, con la mejor consistencia a través de múltiples tipos de consulta.
«Hive Tez es la tortuga», añade Mariani. «Siempre terminará la carrera, pero no de forma espectacular y rápida. Es la más fiable».
Impala y Spark, por su parte, dieron lo mejor de sí cuando se trataba de conjuntos de datos más pequeños. Impala superó a Spark en toda una gama de cargas de trabajo, pero Mariani señala que Spark 1.6 supuso una gran mejora de rendimiento respecto a Spark 1.5 y espera que esa tendencia continúe, ya que Spark ha atraído a una gran comunidad de código abierto centrada en su desarrollo. Cloudera propuso recientemente donar Impala a la Apache Software Foundation, lo que también podría dar un impulso adicional a su desarrollo.
Por ahora, Impala es el rey para los casos de uso que requieren un gran número de usuarios.
«Impala es el mejor cuando se trata de concurrencia», dice Mariani. «Si vas a tener un montón de usuarios ejecutando consultas pequeñas y rápidas, Impala es una opción mucho mejor de lo que sería Spark».
«Si la velocidad no es una prioridad, pero sí la estabilidad y la fiabilidad, yo elegiría usar Hive Tez como mi motor de canalización de datos», añade. «Para esas grandes cargas de trabajo por lotes elegiría Hive Tez. Si quisiera que mis usuarios de BI tuvieran acceso a mi almacén, elegiría usar Spark o Impala».
Mariani señala que, aunque el equipo no hizo un benchmark de otros motores como Apache Drill o Apache Presto, lo harán la próxima vez.
«Nunca se sabe entre lanzamiento y lanzamiento quién va a ser el mejor caballo para apostar», dice.

