Numeroso SQL en Hadoop Los motores están disponibles para acceder a los datos almacenados en HDFS utilizando el conocido lenguaje SQL. Todos parecen prometedores, todos admiten un rico dialecto SQL, pero ¿cuál es el más rápido? El rendimiento es importante, especialmente cuando los usuarios empresariales utilizan de forma interactiva herramientas de BI para acceder a big data a través de estos motores SQL-on-Hadoop.
Entonces, ¿cuál es el más rápido para una carga de trabajo interactiva, ad-hoc y similar a OLAP? Hasta ahora, no había mucha información disponible sobre este tema. Es decir, hasta A escala publicó resultados de pruebas comparativas en tres motores SQL-on-Hadoop: Apache Hive, Cloudera Impala y Spark SQL. Por supuesto, tenemos los puntos de referencia TPC-H y TPC-DS, pero estos dos no representan cargas de trabajo interactivas, ad-hoc, similares a OLAP.
AtScale, con sede en San Mateo, CA, es un proveedor de software que ofrece una interfaz rápida MDX y SQL en big data almacenados en Hadoop. Para acceder a los datos, AtScale aprovecha los motores SQL-on-Hadoop.
Desarrollaron un punto de referencia que representa una carga de trabajo interactiva, de consulta ad-hoc, similar a OLAP. El índice de referencia se define en base a la disponibilidad pública. Benchmark de esquema de estrella conjunto de datos. AtScale completó esto definiendo un conjunto de consultas OLAP típicas. Estas consultas se pueden clasificar en tres grupos: consultas de métricas rápidas (calcular un valor de métrica particular durante un período de tiempo), consultas de información sobre el producto (calcular métricas agregadas contra un conjunto de dimensiones basadas en productos y fechas) y consultas de información del cliente (calcular métricas agregadas contra un conjunto de dimensiones basadas en productos, clientes y fechas). Juntas, todas estas consultas representan los tipos de consultas que aparecen en entornos de BI de la vida real en los que los usuarios utilizan herramientas como Business Objects, Tableau, Excel y Qlikview.
Los resultados de rendimiento que se obtuvieron de este punto de referencia son intrigantes, aunque es posible que no sean los que esperan algunas personas. Un resultado claro es que ningún SQL-on-Hadoop es el más rápido para todas las consultas. Para algunas consultas, Apache Hive es el más rápido, y para otras es Spark SQL o Cloudera Impala.
La vida sería fácil si uno de los motores fuera siempre el más rápido. Porque eso significaría que cuando una organización desea seleccionar el más rápido, puede elegir solo ese. Este punto de referencia muestra claramente que este no es el caso. En sí mismo, esto es bastante interesante, porque algunos especialistas tienen un motor SQL-on-Hadoop favorito y realmente piensan que su favorito es siempre el más rápido. Esto no está confirmado por este punto de referencia.
Es importante comprender que estos tres motores pueden acceder a los mismos archivos HDFS y a las mismas descripciones de tablas documentadas en HCatalog. Esto significa que cualquier solución como AtScale y las que generan código SQL para motores SQL-on-Hadoop, como algunas herramientas ETL, deben admitir los tres motores SQL-on-Hadoop para acceder a datos en archivos HDFS. Deben ser lo suficientemente inteligentes como para saber cuál es el mejor para usar para una consulta SQL en particular. De hecho, todas las herramientas de virtualización de datos y las herramientas de BI en Hadoop que generan código SQL para los motores SQL-on-Hadoop deben conocer las fortalezas y debilidades de estos motores.
Me interesa ver cómo va a evolucionar esto en los próximos años. Pero tenemos que agradecer a AtScale por hacer este punto de referencia. Nos ha proporcionado más información sobre los aspectos de rendimiento de los motores SQL-on-Hadoop. Recomiendo encarecidamente leer los resultados de las pruebas comparativas. Una cosa que definitivamente aprendimos de este punto de referencia es que no podemos responder a la pregunta (todavía) de qué SQL-on-Hadoop es el más rápido.