APACHE HIVE: QUÉ ES Y CÓMO FUNCIONA

Apache Hive es un sistema de almacenamiento de datos (Data Warehouse) distribuido y de código abierto, construido sobre Apache Hadoop. Su principal objetivo es permitir que los usuarios analicen grandes volúmenes de datos (petabytes) usando un lenguaje similar a SQL, sin necesidad de escribir complejos trabajos de MapReduce o Spark. Creado originalmente por Facebook en 2009 y donado a la Apache Software Foundation en 2010.

Ar­qui­te­c­tu­ra de Hive

Los co­m­po­ne­n­tes más im­po­r­ta­n­tes de la ar­qui­te­c­tu­ra Hive incluyen:
  • Metastore: La ubicación central de al­ma­ce­na­mie­n­to de Hive donde, como formato RDBMS, residen todos los datos e in­fo­r­ma­ción como de­fi­ni­cio­nes de tablas, ubicación de esquemas y di­re­c­to­rios y metadatos de pa­r­ti­cio­nes
  • Driver: recibe comandos HiveQL y los procesa uti­li­za­n­do los co­m­po­ne­n­tes Compiler (recopila in­fo­r­ma­ción), Optimizer (determina el mejor método de ejecución) y Executor (im­ple­me­n­ta la tarea)
  • Línea de comandos + Interfaz de usuario: interfaz para usuarios externos
  • Thrift server: permite a los clientes externos co­mu­ni­car­se con Hive y permite a los pro­to­co­los JDBC y ODBC in­ter­ac­tuar y co­mu­ni­car­se a través de la red

¿Para qué sirve realmente?

Hive permite hacer lo siguiente sobre datos almacenados en HDFS, Amazon S3, Azure Data Lake, Google Cloud Storage, etc.:
    Consultas tipo SQL (llamado HiveQL o HQL).
  • ETL (Extract, Transform, Load).
  • Análisis de datos a gran escala.
  • Generación de reportes.
  • Machine Learning básico (usando datos preparados).

Cómo funciona (de forma sencilla)

  1. Se escribe una consulta en HiveQL (muy parecida a SQL estándar).
  2. Hive traduce esa consulta en un plan de ejecución (originalmente MapReduce, ahora principalmente Tez o Spark).
  3. Ejecuta el trabajo de forma distribuida en el clúster.
  4. Devuelve los resultados.

Ejemplo de consulta HiveQL

SELECT 
    pais,
    COUNT(*) as total_usuarios,
    AVG(edad) as edad_promedio
FROM usuarios 
WHERE fecha_registro >= '2025-01-01'
GROUP BY pais
ORDER BY total_usuarios DESC
LIMIT 10;

¿Qué es HiveQL?

El lenguaje HiveQL se basa en SQL, pero no se co­rre­s­po­n­de con es­tá­n­da­res como SQL-92. Por tanto, HiveQL. A pesar de todas las si­mi­li­tu­des, ambos lenguajes son diferentes en aspectos ese­n­cia­les. Por ejemplo, HiveQL no admite muchas funciones SQL para tra­n­sac­cio­nes o su­b­co­n­su­l­tas, y a su vez pro­po­r­cio­na una mejor es­ca­la­bi­li­dad y re­n­di­mie­n­to en el framework Hadoop con sus propias ex­te­n­sio­nes como Mu­l­ti­ta­ble Inserts. El com­pi­la­dor Apache Hive traduce las consultas HiveQL a MapReduce, Tez y Spark.