Elegir el motor SQL de almacén de datos adecuado: Apache Hive LLAP vs Apache Impala

¿No son dos superhéroes mejor que uno?

Algunos de los resultados más poderosos provienen de la combinación de superpoderes complementarios, y el «dúo dinámico» de Apache Hive LLAP y Apache Impala, ambos incluidos en Cloudera Data Warehouse, es una prueba más de ello. Tanto Impala como Hive pueden operar a una escala masiva y sin precedentes, con muchos petabytes de datos. Ambos son 100% de código abierto, por lo que puede evitar la dependencia de un proveedor mientras utiliza sus herramientas de BI favoritas, y se beneficia de la innovación impulsada por la comunidad.

Tanto Impala como Hive LLAP suenan como si fueran a funcionar muy bien para mis casos de uso de almacén de datos, así que ¿por qué necesito realmente decidir entre los dos? La respuesta es simple, cada uno tiene sus propias especialidades únicas, y dependiendo del tipo de análisis que desea hacer, usted puede encontrar uno es más adecuado que el otro. Sin embargo, hay un secreto que me guardo para el final del blog, que hace que la decisión sea aún más fácil para el usuario: tan fácil, de hecho, que ni siquiera tienes que decidir tú mismo.

Antes de entrar en las diferencias entre estos motores SQL, es importante señalar que tanto Impala como Hive LLAP comparten los mismos datos y metadatos (a través del Hive Metastore), por lo que no sólo se puede cambiar de uno a otro si se cambia de opinión, sino que incluso se pueden ejecutar diferentes cargas de trabajo utilizando diferentes opciones de motor sobre los mismos datos, al mismo tiempo. Una verdadera situación de «lo mejor de ambos mundos».

Entonces, ¿por qué elegir? Bueno, en general, Impala funciona mejor cuando se interactúa con un mercado de datos, que suele ser un gran conjunto de datos con un esquema de alcance limitado. Por su parte, Hive LLAP es una mejor opción para tratar casos de uso en el ámbito más amplio de un almacén de datos empresarial. Estos casos de uso suelen implicar a varios departamentos y a una variedad de aplicaciones descendentes, lo que da lugar a una gama más amplia de patrones de consulta. También vemos que Impala es una buena opción para las consultas interactivas y ad hoc, especialmente si tiene cientos o miles de usuarios trabajando por su cuenta.

También puede mezclar y combinar, utilizando Impala para algunas consultas y algunas tablas, y Hive LLAP para otras consultas y otras tablas.

Impala fue diseñado para la velocidad.

Escrito en C++, que es muy eficiente en cuanto a la CPU, con un planificador de consultas muy rápido y almacenamiento en caché de metadatos, Impala está optimizado para consultas de baja latencia. Debido a esto, Impala es un motor ideal para su uso con un mercado de datos, ya que las personas que trabajan con los mercados de datos están ejecutando principalmente consultas de sólo lectura y no escrituras a gran escala.

Impala también tiene un marco de ejecución en tiempo de ejecución muy eficiente, utilizando la generación de código, la comunicación de proceso a proceso, el paralelismo masivo y el almacenamiento en caché de metadatos. Debido a esto, Impala también es genial cuando se trabaja con consultas ad-hoc, como cuando se explora cavando iterativamente en los datos. Querrás cambiar tu consulta una y otra vez, en un momento dado, y tener tiempos de respuesta muy rápidos para no tener que esperar eternamente en cada iteración.

Hive LLAP fue diseñado para la sofisticación.

Hive LLAP tiene muchas capacidades sofisticadas que pueden hacer que sea un poco más difícil para los desarrolladores para empezar y utilizar con eficacia. En Hive LLAP, a veces una consulta tarda más tiempo en pasar por la planificación y la ramificación para la ejecución. Sin embargo, Hive está diseñado para ser muy tolerante a los fallos. Si un fragmento de una consulta de larga duración falla, Hive lo reasignará y lo volverá a intentar. Hive almacena en caché los archivos de datos, así como los resultados de las consultas, con sofisticados algoritmos, lo que significa que los datos solicitados con más frecuencia permanecen en caché con LLAP. Hive LLAP soporta la federación de consultas, permitiendo que las consultas se ejecuten en múltiples componentes y bases de datos. Por lo tanto, Hive LLAP compensa cualquier «inicio lento» en los casos de uso de EDW, ya que es mucho más robusto, y tiene un mayor rendimiento, a largo plazo.

Debido a esta sofisticación y flexibilidad, Hive LLAP es más adecuado para los casos de uso de los almacenes de datos empresariales, o EDW. Con un EDW, se está dando soporte a los informes y cuadros de mando de Business Intelligence, a los data marts dependientes, a otras aplicaciones empresariales, a sistemas externos, etc. Estas cargas de trabajo suelen tener en cuenta múltiples dimensiones y, como resultado, los EDW suelen tener que procesar requisitos SQL más complejos que los data marts, con una mayor necesidad de tipos de datos complejos, consultas más programadas y orquestación de consultas para poblar los data marts o generar extractos de datos regulares.

La capacidad de Hive para manejar de forma más robusta consultas más complejas y de más larga duración, en conjuntos de datos de escala masiva, hacen que a menudo sea la mejor opción para este tipo de aplicaciones. En las consultas ad-hoc de acción rápida, los tiempos de arranque de Hive LLAP pueden ralentizarlo en comparación con Impala, pero con las consultas de mayor duración, este coste de arranque es una parte relativamente intrascendente del tiempo total de ejecución. Hive LLAP se convierte en una mejor opción para EDW también por su tolerancia a fallos (¿quién quiere que una consulta falle si está esperando mucho tiempo el resultado?) y un mejor rendimiento en consultas más complejas.

Usando Impala y Hive LLAP

Impala Hive LLAP
Data mart Enterprise data warehouse
  • Buena opción para el análisis interactivo y ad-análisis ad hoc, especialmente con autoservicio de alta concurrencia
  • Buena opción para consultas de larga duración que requieren transformaciones pesadas o múltiples uniones
  • Buena opción para análisis interactivos y ad-ad hoc que utilizan características no disponibles en Impala
  • Buena opción para herramientas de Business Intelligence que permiten a los usuarios cambiar rápidamente las consultas
  • Buena opción para Dashboards que están predefinidos y no personalizables por el usuario
  • Usa Parquet como formato de archivo preferido
  • Usa ORC como formato de archivo preferido
  • Se comporta mejor con JSON que Impala

A medida que los conjuntos de datos masivos se combinan con el crecimiento de los casos de uso, elegir el motor SQL de almacén de datos adecuado para obtener resultados oportunos marca la diferencia.

¡Acompáñenos en la carrera por los resultados! Data Warehouse – Impala vs. Hive LLAP, un animado debate entre expertos, el 20 de octubre de 2020, a las 10:00 de la mañana hora del Pacífico de EE.UU., 1:00 de la tarde hora del Este de EE.UU., completado con ejemplos de casos de uso de clientes, y seguido de una q&a en directo.

David Dichmann
David Dichmann

Director de Marketing de Productos

Deja una respuesta

Tu dirección de correo electrónico no será publicada.