Diferencia entre colmena y HBase

Apache Hive y HBase son tecnologías de big data basadas en Hadoop. Ambos solían consultar datos. Hive y HBase se ejecutan sobre Hadoop y difieren en su funcionalidad. Hive es un dialecto SQL basado en reducción de mapas, mientras que HBase solo admite MapReduce. HBase almacena datos en forma de pares clave / valor o familia de columnas, mientras que Hive no almacena datos.

Head to Head diferencias entre Hive vs HBase (Infografía)

A continuación se muestra la diferencia de los 8 principales entre Hive y HBase

Diferencias clave entre Hive y HBase

  • Hbase es compatible con ACID, mientras que Hive no.
  • Hive admite particiones y criterios de filtro basados ​​en el formato de fecha, mientras que HBase admite particiones automáticas.
  • Hive no admite declaraciones de actualización, mientras que HBase las admite.
  • Hbase es más rápido en comparación con Hive en la obtención de datos.
  • Hive se utiliza para procesar datos estructurados, mientras que HBase, dado que no tiene esquemas, puede procesar cualquier tipo de datos.
  • Hbase es altamente (horizontalmente) escalable en comparación con Hive.
  • Hive analiza los datos en el HDFS con el soporte de consultas SQL y luego los convierte en un mapa y reduce los trabajos, mientras que en Hbase, ya que es una transmisión en tiempo real, realiza directamente sus operaciones en la base de datos al particionar en tablas y familias de columnas.
  • Cuando se realiza la consulta de datos, Hive utiliza un shell conocido como Hive Shell para emitir los comandos, mientras que HBase, dado que es una base de datos, usaremos un comando para procesar los datos en HBase.
  • Para ir al shell de Hive usaremos el comando hive. Después de dar esto, aparecerá como colmena>. En HBase, simplemente damos como Usar HBase.

Tabla de comparación de colmena vs HBase

Bases para la comparación

ColmenaHbase
Tipo de base de datosNo es una base de datosEs compatible con la base de datos NoSQL
Tipo de procesamientoEs compatible con el procesamiento por lotes, es decir, OLAPEs compatible con la transmisión de datos en tiempo real, es decir, OLTP
Modelo de base de datosLa colmena admite tener un modelo de esquemaHbase no tiene esquema
LatenciaLa colmena tiene baja latenciaHbase tiene alta latencia
CostoEs más costoso en comparación con HBaseEs rentable
cuándo usarHive se puede usar cuando no queremos escribir código MapReduce complejoHBase se puede usar cuando queremos tener acceso aleatorio para leer y escribir una gran cantidad de datos
Casos de usoDebe usarse para analizar datos almacenados durante un período de tiempoDebe usarse para analizar el procesamiento de datos en tiempo real.
EjemplosHubspot es un ejemplo para HiveFacebook es el mejor ejemplo para Hbase

Diferencias en la codificación entre Hive vs HBase

Discutamos ahora las diferencias básicas entre Hive y HBase en la codificación.

Bases para la comparación

ColmenaHbase
Para crear una base de datosCREAR BASE DE DATOS (SI NO EXISTE) NOMBRE DE BASE DE DATOS;Como Hbase es una base de datos, no necesitamos crear una base de datos específica
Para soltar una base de datosDROP DATABASE (SI EXISTE) NOMBRE DE LA BASE DE DATOS (RESTRICCIÓN O CASCADA);N / A
Para crear una tablaCREAR TABLA (TEMPORAL O EXTERNA) (SI NO EXISTE) NOMBRE-TABLA

((nombre-columna tipo_datos (comentario columna-comentario), ….)) (comentario tabla_comentario) (FORMATO DE FILA formato de fila) (Almacenado como formato de archivo)
CREAR '', ''
Para alterar una mesaALTER TABLE name RENAME TO new-name

ALTER TABLE name DROP (COLUMN) nombre-columna

ALTER TABLE name ADD COLUMNS (col-spec (, col-spec ..))

ALTER TABLE name CHANGE column-name new-name new-type

ALTER TABLE name REPLACE COLUMNS (col-spec (, col-spec ..))

ALTERE 'TABLE-NAME', NAME => 'COLUMN-NAME', VERSIONS =>
Deshabilitar una mesaN / Adeshabilite 'TABLE-NAME' -> para deshabilitar el nombre de tabla especificado

disable_all 'r *' -> para deshabilitar todas las tablas que coinciden con la expresión regular

Habilitar una mesaN / Ahabilitar 'TABLE-NAME'
Para soltar una mesaDROP TABLE IF EXISTS nombre-tablaSi queremos soltar una tabla, primero debemos deshabilitarla

deshabilitar 'nombre-tabla'

soltar 'nombre-tabla'

Del mismo modo, podemos usar disable_all y drop_all para eliminar las tablas que coinciden con la expresión regular especificada.

Para enumerar bases de datosmostrar bases de datos;N / A
Para enumerar tablas en la base de datosmostrar tablas;lista
Describir el esquema de una tabla.describe el nombre de la tabla;describe 'table-name'

Integración de Hive vs HBase

  • Instalar y configurar Hive.
  • Instalar y configurar HBase.
  • Para la integración de Hive y HBase, utilizamos MANIPULADORES DE ALMACENAMIENTO en Hive.
  • Storage Handlers es una combinación de SERDE, InputFormat, OutputFormat que acepta cualquier entidad externa como una tabla en Hive.
  • Entonces, esta característica ayuda al usuario a emitir consultas SQL, ya sea que la tabla esté presente en Hadoop o en la base de datos basada en NOSQL como HBase, MongoDB, Cassandra, Amazon DynamoDB.
  • Ahora veremos un ejemplo para conectar Hive con HBase usando HiveStorageHandler:
  • Primero, necesitamos crear una tabla Hbase usando el comando.

crear 'Estudiante', 'información personal', 'información del departamento'

-> La información personal y la información del departamento crean dos familias de columnas diferentes en la tabla Estudiante.

  • Necesitamos insertar algunos datos en la tabla de Alumno, por ejemplo, como se menciona a continuación.

poner 'estudiante', 'sid01 ′, ' personalinfo: nombre ', ' Ram '
poner 'estudiante', 'sid01 ′, ' personalinfo: mailid ', ' '
poner 'estudiante', 'sid01 ′, ' deptinfo: deptname ', ' Java '
poner 'Estudiante', 'sid01 ′, ' deptinfo: joinyear ', ' 1994 ′

-> Del mismo modo, podemos crear datos para sid02, sid03 …

  • Ahora necesitamos crear una tabla Hive que apunte a la tabla HBase.
  • Para cada columna en Hbase, crearemos una tabla particular para esa columna en Hive. En este caso, crearemos 2 tablas en Hive

create external table student_hbase(sid String, name String, mailid String)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler with serdeproperties("hbase.columns.mapping"=":key, personalinfo:name, personalinfo:mailid")
tblproperties("hbase.table.name"="student");
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

-> Del mismo modo, necesitamos crear una tabla de detalles de información del departamento en la colmena.

  • Ahora podemos escribir consultas SQL en una colmena como se menciona a continuación.

select * from student_hbase;

De esta manera, podemos integrar Hive con HBase.

Conclusión - Colmena vs HBase

Como se discutió, ambas son tecnologías diferentes que proporcionan diferentes funcionalidades donde Hive funciona mediante el uso de lenguaje SQL y también se puede llamar como HQL y HBase usan pares clave-valor para analizar los datos. Hive y HBase funcionan mejor si se combinan porque Hive tiene baja latencia y puede procesar una gran cantidad de datos, pero no puede mantener datos actualizados y HBase no admite el análisis de datos, pero admite actualizaciones a nivel de fila en una gran cantidad de datos.

Artículo recomendado

Esta ha sido una guía para Hive vs HBase, su significado, comparación directa, diferencias clave, tabla de comparación y conclusión. También puede consultar los siguientes artículos para obtener más información:

  1. Apache Pig vs Apache Hive - Top 12 diferencias útiles
  2. Descubra las 7 mejores diferencias entre Hadoop y HBase
  3. Top 12 Comparación de Apache Hive vs Apache HBase (Infografía)
  4. Hadoop vs Hive - Descubre las mejores diferencias

Categoría: