Aunque muchos expertos en software pro­no­s­ti­can la des­apa­ri­ción del sistema de almacén de datos Apache Hive, hoy en día se sigue uti­li­za­n­do para la gestión de grandes ca­n­ti­da­des de datos. Muchas de las funciones de Apache Hive también han resultado ser útiles en sistemas sucesores. Por lo tanto, merece la pena echar un vistazo más de cerca a Hive y a sus apli­ca­cio­nes más im­po­r­ta­n­tes.

¿Qué es Apache Hive?

Apache Hive es una extensión escalable de la apli­ca­ción de servidor Apache y la ar­qui­te­c­tu­ra de al­ma­ce­na­mie­n­to Apache Hadoop. En las ar­qui­te­c­tu­ras Hadoop, las tareas in­fo­r­má­ti­cas complejas se dividen en pequeños procesos y se di­s­tri­bu­yen en paralelo en clusters de nodos in­fo­r­má­ti­cos uti­li­za­n­do clu­s­te­ri­ng. Esto permite procesar grandes ca­n­ti­da­des de datos incluso con ar­qui­te­c­tu­ras estándar de se­r­vi­do­res y or­de­na­do­res. Apache Hive sirve como sistema integrado de consulta y análisis de código abierto para tu data warehouse. Gracias a Hive, los datos pueden ana­li­zar­se, co­n­su­l­tar­se y resumirse uti­li­za­n­do el lenguaje de bases de datos HiveQL, similar a SQL. Gracias a Hive, los datos de Hadoop también son ac­ce­si­bles a grupos más amplios de usuarios.

Con Hive, se utiliza una sintaxis similar a SQL:1999 para es­tru­c­tu­rar o integrar scripts en programas, apli­ca­cio­nes y bases de datos. Antes de Hive, Hadoop requería co­no­ci­mie­n­tos de pro­gra­ma­ción Java y técnicas de pro­gra­ma­ción para consultar datos. Gracias a Hive, las consultas pueden tra­du­ci­r­se có­mo­da­me­n­te al formato de sistema de la base de datos. Pueden ser, por ejemplo, tareas MapReduce. Con Hive, también es posible integrar otras apli­ca­cio­nes basadas en SQL en el framework Hadoop. Debido al uso ge­ne­ra­li­za­do de SQL, Hive como extensión de Hadoop también facilita a los no expertos el trabajo con bases de datos y grandes conjuntos de datos.

¿Cómo funciona Hive?

Antes de que Apache Hive co­m­ple­me­n­ta­ra el marco Hadoop, el eco­si­s­te­ma Hadoop seguía basándose en el framework MapReduce de­sa­rro­lla­do por Google. En el caso de Hadoop 1, este aún se im­ple­me­n­ta­ba di­re­c­ta­me­n­te en el framework como motor in­de­pe­n­die­n­te para la ad­mi­ni­s­tra­ción, su­pe­r­vi­sión y control de recursos y procesos in­fo­r­má­ti­cos. Esto, a su vez, requería amplios co­no­ci­mie­n­tos de Java para poder consultar con éxito los archivos de Hadoop.

Así, las pri­n­ci­pa­les funciones de Hadooop para el uso y gestión de big data residen en:

  • resumen de datos
  • consulta
  • análisis

La fu­n­cio­na­li­dad de Hive se basa en un principio sencillo: con una interfaz similar a SQL, las consultas y análisis de archivos Hadoop pueden tra­du­ci­r­se có­mo­da­me­n­te en tareas MapReduce, Spark o Tez a través de HiveQL. Para ello, Hive organiza los datos del framework Hadoop en un formato de tabla co­m­pa­ti­ble con HDFS. HDFS son las siglas de Hadoop Di­s­tri­bu­ted File System. La re­cu­pe­ra­ción selectiva de los datos se realiza entonces a través de clusters y nodos es­pe­cí­fi­cos del sistema Hadoop. Los filtros, agre­ga­cio­nes y uniones también están di­s­po­ni­bles como funciones estándar.

Hive se basa en el principio Schema on Read

A di­fe­re­n­cia de las bases de datos re­la­cio­na­les, que funcionan según el principio SoW (Schema on Write), Hive se basa en el principio SoR (Schema on Read). Esto significa que los datos en el framework Hadoop se almacenan ini­cia­l­me­n­te sin cambios y no en un esquema pre­de­fi­ni­do. Solo durante una consulta Hive se adaptan los datos a un esquema según sea necesario. La ventaja radica sobre todo en el cloud computing en una mayor es­ca­la­bi­li­dad, más fle­xi­bi­li­dad y tiempos de carga más rápidos de las bases de datos di­s­tri­bui­das en clusters.

Cómo trabajar con datos en Hive

Para consultar y analizar datos con Hive, se utilizan tablas Apache Hive según un esquema de acceso de lectura. Con Hive, los datos se organizan y cla­si­fi­can en estas tablas en unidades de­ta­lla­das más pequeñas o en grandes unidades globales. Las tablas Hive se dividen en los llamados “buckets”, es decir, bloques de datos. Para acceder a los datos, se utiliza el lenguaje de base de datos HiveQL, que es similar a SQL. Entre otras cosas, las tablas Hive se pueden so­bre­s­cri­bir y anexar, así como se­ria­li­zar en bases de datos. Además, cada tabla Hive tiene su propio di­re­c­to­rio HDFS.

Consejo

Mantén tu base de datos bajo control con un alo­ja­mie­n­to web Linux de IONOS. Ofrece un re­n­di­mie­n­to escalable, SSL, pro­te­c­ción DDoS y se­r­vi­do­res alemanes seguros.

Las funciones más im­po­r­ta­n­tes de Hive

Las funciones básicas de Hive incluyen la consulta y el análisis de grandes conjuntos de datos al­ma­ce­na­dos como archivos Hadoop en un framework Hadoop. Una segunda tarea im­po­r­ta­n­te de Hive es la tra­du­c­ción de consultas en HiveQL a tareas MapReduce, Sparks y Tez.

Otras ca­ra­c­te­rí­s­ti­cas de­s­ta­ca­bles de Hive son:

  • al­ma­ce­na­mie­n­to de metadatos en sistemas de gestión de bases de datos re­la­cio­na­les
  • uso de datos co­m­pri­mi­dos en sistemas Hadoop
  • UDF (User Defined Functions) para la ma­ni­pu­la­ción de datos pe­r­so­na­li­za­dos y la minería de datos
  • co­m­pa­ti­bi­li­dad con tipos de al­ma­ce­na­mie­n­to como RCFile, Text o HBase
  • uso de MapReduce y co­m­pa­ti­bi­li­dad con ETL

¿Qué es HiveQL?

En relación con Hive, se suele hacer mención a su similitud a SQL. El lenguaje HiveQL de la base de datos Hive se basa en SQL, pero no se co­rre­s­po­n­de al cien por cien con es­tá­n­da­res como SQL-92. Por tanto, HiveQL también puede en­te­n­de­r­se en cierto modo como una especie de dialecto SQL o MySQL. A pesar de todas las si­mi­li­tu­des, ambos lenguajes difieren 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 co­m­pi­la­dor Apache Hive traduce las consultas HiveQL a MapReduce, Tez y Spark.

Seguridad de los datos y Apache Hive

Al integrar Apache Hive en sistemas Hadoop, también te be­ne­fi­cias del servicio de au­te­n­ti­ca­ción Kerberos. Esto permite una au­te­n­ti­ca­ción y ve­ri­fi­ca­ción mutua fiable entre el servidor y los usuarios. Dado que HDFS también establece permisos para los nuevos archivos Hive, la au­to­ri­za­ción de usuarios y grupos dependerá de ti. Otro aspecto im­po­r­ta­n­te de la seguridad: Hive pro­po­r­cio­na una eficaz re­cu­pe­ra­ción ante desastres de cargas de trabajo críticas.

¿Qué ventajas ofrece Apache Hive?

Hive ofrece numerosas funciones útiles, es­pe­cia­l­me­n­te para trabajar con grandes ca­n­ti­da­des de datos en la co­mpu­tación en nube o en el caso de Big Data as a Service, tales como:

  • consultas ad hoc
  • análisis de datos
  • creación de tablas y pa­r­ti­cio­nes
  • co­m­pa­ti­bi­li­dad con enlaces lógicos, re­la­cio­na­les y ari­t­mé­ti­cos
  • se­gui­mie­n­to y revisión de tra­n­sac­cio­nes
  • informes al final del día
  • carga de re­su­l­ta­dos de consultas en di­re­c­to­rios HDFS
  • tra­n­s­fe­re­n­cia de datos de tablas a di­re­c­to­rios locales

Así, entre las pri­n­ci­pa­les ventajas figuran:

  • permite obtener in­fo­r­ma­ción cua­li­ta­ti­va de grandes ca­n­ti­da­des de datos, por ejemplo para data mining y machine learning
  • optimiza la es­ca­la­bi­li­dad, la re­n­ta­bi­li­dad y la ex­te­n­si­bi­li­dad de los grandes fra­me­wo­r­ks Hadoop
  • segmenta grupos de usuarios mediante análisis de clics
  • no requiere un co­no­ci­mie­n­to profundo de los pro­ce­di­mie­n­tos de pro­gra­ma­ción Java gracias a HiveQL
  • ventajas co­m­pe­ti­ti­vas gracias a una capacidad de respuesta y un re­n­di­mie­n­to más rápidos y es­ca­la­bles
  • permite almacenar hasta cientos de petabytes de datos y realizar hasta 100 000 consultas de datos por hora, incluso en una in­frae­s­tru­c­tu­ra de gama alta
  • mejor apro­ve­cha­mie­n­to de los recursos gracias a la capacidad de vi­r­tua­li­za­ción y, por tanto, tiempos de co­mpu­tación y carga más rápidos en función de las cargas de trabajo
  • seguridad de datos buena y tolerante a fallos gracias a mejores opciones de re­cu­pe­ra­ción ante desastres y al servicio de au­te­n­ti­ca­ción Kerberos
  • acelera la inserción de datos al eliminar la necesidad de adaptar los datos a los formatos internos de la base de datos (Hive lee y analiza los datos incluso sin un cambio de formato manual)
  • funciona según el principio del código abierto

¿Qué de­s­ve­n­ta­jas tiene Apache Hive?

Entre las de­s­ve­n­ta­jas de Apache Hive destaca pri­n­ci­pa­l­me­n­te el hecho de que ya existen muchos sistemas sucesores que ofrecen pre­s­ta­cio­nes similares y mejores. Los expertos co­n­si­de­ran que la re­le­va­n­cia de Hive en la ad­mi­ni­s­tra­ción y el uso de bases de datos es cada vez menor.

Otras de­s­ve­n­ta­jas de Hive son:

  • no tiene acceso en tiempo real a los datos
  • edición y ac­tua­li­za­ción complejas de conjuntos de datos mediante el framework Hadoop con MapReduce
  • alta latencia y, por tanto, más lento que los sistemas de la co­m­pe­te­n­cia según los es­tá­n­da­res actuales

Un vistazo a la 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
Imagen: Diagrama de la arquitectura de Hive
Para procesar y consultar grandes ca­n­ti­da­des de datos, Hive ofrece a tu empresa muchas ventajas.

¿Cómo se creó Apache?

Apache Hive se diseñó para facilitar el trabajo con conjuntos de datos de petabytes a usuarios sin co­no­ci­mie­n­tos de SQL profundos. El de­sa­rro­llo se remonta a los fu­n­da­do­res Joydeep Sen Sharma y Ashish Thusoo, que de­sa­rro­lla­ron Hive durante su etapa en Facebook en 2007 para el framework Hadoop de Facebook, uno de los mayores del mundo con varios cientos de petabytes. En 2008, Facebook cedió el proyecto Hive a la comunidad de código abierto. La versión 1.0 se publicó en febrero de 2015.

Ir al menú principal