Introducción a Apache Impala

Última actualización: 07/07/2021

¿Quieres aprender Apache Impala? En esta entrada veremos en qué consiste esta herramienta de consultas para Big data, muy popular en Cloudera. También, veremos su arquitectura y las ventajas que aporta en los sistemas Big Data.

Que es Apache Impala

¿Qué es Apache Impala?

Apache Impala es una herramienta escalable de procesamiento MPP (Massively Parallel Processing). Tiene licencia open source. Fue desarrollada inicialmente por Cloudera y más tarde incluida en la Apache Software Foundation. Está incluida en las distribuciones de Cloudera.

Es muy popular para realizar consultas SQL interactivas con muy baja latencia. Además, soporta múltiples formatos como Parquet, ORC, JSON o Avro y tecnologías de almacenamiento como HDFS, Kudu, Hive, HBase, Amazon S3 o ADLS.

Impala usa los mismos metadatos, la misma sintaxis SQL y el mismo driver que Hive. Además, también se puede usar desde la interfaz de Hue, por lo que se integra perfectamente con el ecosistema de Hadoop.

Impala destaca cuando necesitamos una tecnología que nos proporcione una baja latencia en consultas exploratorias y de descubrimiento de datos. Así, podemos conseguir respuestas en tiempos menores de un segundo.

Arquitectura de Impala

El procesamiento MPP se caracteriza por dividir la consulta en fragmentos y distribuirlos en los nodos. Por lo tanto, para que esta estrategia sea eficiente necesita gran cantidad de datos y que estén distribuidos y particionados de forma adecuada.

Impala usa Hive Metastore para determinar las ubicaciones de los ficheros y de los bloques.

Apache Impala Arquitectura
Esquema de Arquitectura de Apache Impala

Cuando se realiza una consulta, se procesa en uno de los coordinadores, que inicia su planificación antes de ejecutarla. Una vez que se planifica en los fragmentos de datos correspondientes, el coordinador inicia su ejecución en los datanodes de Hadoop.

Ventajas de Apache Impala

Apache Impala tiene algunas ventajas frente a otras tecnologías de consulta de datos en Hadoop. La ventaja principal es que el demonio de Impala (Impalad) se ejecuta en los datanodes de Hadoop. Este, contiene el coordinador, el planificador y el motor de ejecución de consultas, por lo que gracias a la localidad de los datos se evitan cuellos de botella y se reduce la latencia.

También, Impala utiliza el metastore de Hive, en un formato abierto y que se puede reutilizar en otras tecnologías.

Debido a estos dos puntos no necesita hardware adicional, lo que simplifica el dimensionamiento y despliegue.

Apache Impala vs Hive

Por el diseño y arquitectura de Apache Impala, su rendimiento puede ser superior al de Apache Hive en varios órdenes de magnitud.

Hive logo

Para comparar estas herramientas de forma correcta, debemos considerar Hive LLAP. Ésta, es una tecnología similar a Impala pensada para cargas big data.

Ambas tecnologías son adecuadas en entornos empresariales de Data Warehouse en los que nos podemos encontrar consultas repetitivas pero muy pesadas en su primera ejecución, con transformaciones complejas y joins sobre grandes cantidades de datos.

Hive LLAP es una tecnología cuyos casos de uso están más orientados a realizar consultas y dashboards de BI gracias a sus sistemas de caché.

Comparativa Impala y Hive Cloudera
Comparativa Impala y Hive Cloudera: benchmark

Por otro lado, Impala es una buena solución en entornos de analítica interactiva en los que se requiere el uso de funciones y tienen unos requisitos temporales más estrictos, inferiores a segundos.

Siguientes Pasos y Formación

Aquí tienes un cursos específico que te recomiendo para aprender a fondo Impala que tienes disponibles en Udemy:

Curso de SQL big Data

SQL en Impala

En este curso específico aprenderás a usar Impala en un entorno Big Data y hacer consultas SQL básicas con filtros, agregaciones, joins y subconsultas para analizar los datos. Lo tienes disponible en Udemy.

Y el mejor libro disponible en inglés:

Preguntas Frecuentes Apache Impala – FAQ

¿Impala es una Base de Datos?

Impala no es una base de datos. Sin embargo, proporciona un motor de consulta SQL para realizar consultas interactivas de baja latencia sobre datos almacenados en HDFS, HBase y otros.

¿Para qué se usa Apache Impala?

Los casos de uso más comunes de Apache Impala son los que necesitan una herramienta para realizar consultas interactivas sobre datos en el ecosistema de Apache Hadoop con menores latencias que Apache Hive.

¿Qué ventajas aporta Impala sobre Hive?

La ventaja principal que aporta Impala sobre Hive es la latencia. Así, puede ser de un orden de magnitud más rápida que Hive, lo que habilita realizar consultas interactivas con respuestas en segundos.


A continuación, el vídeo-resumen. ¡No te lo pierdas!

en Impala


Deja una respuesta