¿Cuándo utilizar MongoDB y cuándo utilizar HBase?

Verónica de Miguel
Hacer Marketing
Published in
3 min readFeb 18, 2016

De una buena decisión dependerá el éxito de nuestro proyecto Big Data.

Nuestra decisión de utilizar una u otra base de datos para nuestros proyectos empresariales dependerá de las características de nuestro negocio. Lo primero que tenemos que tener claro es que MongoDB y HBase son bases de datos muy diferentes y se utilizan para fines muy distintos.

HBase es una base de datos clave-valor, en la que cada elemento está identificado por una llave única y es muy eficiente tanto para lectura como para escritura.

Por otro lado, MongoDB, como vimos en el anterior post, es una base de datos orientada a objetos que utiliza una estructura simple como JSON o XML con índices y una clave única para cada registro, lo que permite, además de realizar búsquedas por clave-valor, realizar consultas más avanzadas sobre el contenido.

Si lo que busca nuestra empresa es el análisis en tiempo real y los cuadros de mando, MongoDB será una buena opción. Por el contrario si lo que buscamos es una plataforma software de código abierto con amplia experiencia en el trabajo con Big Data en proyectos de procesamiento, almacenamiento y análisis de grandes volúmenes de datos, deberemos utilizar HBase.

MongoDB es más sencillo de utilizar, porque emplea una esructura de datos JSON muy difundida, mientras que Hadoop emplea su propia estructura Java. La primera se suele elegir para trabajar con sistemas de gran volumen y sets de datos de tamaño moderado, y la segunda ofrece mejores resultados en MapReduce sobre Big Data y también en el reporting de la analítica de datos.

La elección de uno u otro dependerá de las características del proyecto. Sin embargo, a veces, no es necesario elegir. Podemos utilizar, simultáneamente, MongoDB como almacén de datos operativos en tiempo real y HBase para el procesamiento y análisis de índices y datos.

Cuando se requiere una compleja agregación de datos, la funcionalidad de agregación de datos de MongoDB no es suficiente para analizar toda la información. En este caso se extraerían los datos de MongoDB y se procesarían a través de MapReduce dentro de Hadoop, enviando de nuevo los resultados a MongoDB para que estén disponibles en futuras consultas.

En ocasiones, en producción se toman datos procedentes de varios almacenes de datos, cada uno con su propio lenguaje. Este es otro escenario en el que es bueno que convivan MongoDB y Hadoop. Para facilitar el trabajo en estos casos, Hadoop se puede utilizar como único almacén de datos centralizado usando el sistema de ficheros HFS. Se llevarían a cabo trabajos periódicos de MapReduce con HBASE para cargar datos de MongoDB y de otras fuentes en Hadoop.

Gracias a sus opciones de replicación y sharding, MongoDB es especialmente útil y eficaz en entornos que requieran escalabilidad. Se puede utilizar para cualquier aplicación que almacene datos semi-estructurados. Es importante que diseñemos nuestra aplicación para seguir un esquema, que definiremos en base a las consultas que vayamos a realizar más a menudo.

Según el Arquitecto de Software Kristof Kovacs, MongoDB se debe utilizar en los casos en los que se necesita hacer consultas dinámicas o si se prefiere definir índices. Está pensado para los casos en los que se necesita un buen rendimiento en una gran base de datos.

--

--

Verónica de Miguel
Hacer Marketing

Maestra de vocación y Comunicadora, especializada en Account Management, PR y eventos.