Al comparar MongoDB y Cassandra se descubren muchas si­mi­li­tu­des, aunque los dos enfoques destacan en aspectos di­fe­re­n­tes: MongoDB se ca­ra­c­te­ri­za por su es­ca­la­bi­li­dad óptima, mientras que la principal ventaja de Cassandra es su mayor di­s­po­ni­bi­li­dad.

MongoDB vs. Cassandra: dos de las bases de datos NoSQL más exitosas

MongoDB y Cassandra son dos de las bases de datos NoSQL más im­po­r­ta­n­tes. Son muchas las empresas de éxito que hacen uso de alguna de las dos bases de datos, pues ofrecen servicios de calidad tanto para usuarios con ne­ce­si­da­des básicas como para aquellos con re­qui­si­tos más complejos.

Nota

En un entorno con volúmenes de datos cada vez más grandes y diversos, los sistemas de gestión de bases de datos di­s­tri­bui­das y las bases de datos NoSQL han adquirido mayor im­po­r­ta­n­cia. Las bases de datos NoSQL son so­lu­cio­nes no re­la­cio­na­les que destacan por su gran es­ca­la­bi­li­dad y fia­bi­li­dad. A medida que el volumen de datos crece, estos sistemas se expanden y mantienen una es­tru­c­tu­ra or­ga­ni­za­da.

MongoDB se centra en co­le­c­cio­nes y do­cu­me­n­tos

Antes de pro­fu­n­di­zar en la co­m­pa­ra­ti­va MongoDB vs. Cassandra, conviene destacar las ca­ra­c­te­rí­s­ti­cas di­s­ti­n­ti­vas de MongoDB: su nombre proviene de la palabra inglesa “huMONGOus” (que significa gi­ga­n­te­s­co), fue de­sa­rro­lla­da en 2009 por la empresa 10gen (ac­tua­l­me­n­te conocida como MongoDB, Inc.), se sigue di­s­tri­bu­ye­n­do en la ac­tua­li­dad bajo una Server Side Public Licence, está escrito en C++ y almacena datos en co­le­c­cio­nes y do­cu­me­n­tos. Además, MongoDB es una de las bases de datos más exitosas a nivel mundial, cuenta con una versión gratuita para la comunidad y una versión pro­pie­ta­ria para empresas.

Cassandra: la solución orientada a columnas

Aunque la co­m­pa­ra­ción MongoDB vs. Cassandra revela muchas di­fe­re­n­cias, sus primeras versiones eran muy similares: Cassandra surgió en 2008, pero en aquel momento fue de­sa­rro­lla­da ex­clu­si­va­me­n­te para Facebook. Hoy en día es un sistema de gestión de bases de datos NoSQL mu­l­ti­pla­ta­fo­r­ma pro­gra­ma­do en Java y orientado a columnas. En 2009, la Apache Software Fou­n­da­tion se hizo cargo del de­sa­rro­llo de este sistema de gestión de bases de datos NoSQL.

Además de los autores de Cassandra (Avinash Lakshman y Prashant Malik), en su de­sa­rro­llo co­la­bo­ra­ron empresas como DataStax, IBM y X (Twitter en aquel entonces). En la ac­tua­li­dad, Cassandra es una de las bases de datos orie­n­ta­das a columnas más populares a nivel mundial, se di­s­tri­bu­ye bajo la licencia de Apache y está di­s­po­ni­ble en una versión gratuita y varias versiones de pago.

Finalidad y es­ca­la­bi­li­dad

Las dos opciones utilizan el enfoque NoSQL, lo que las hace ideales para procesar grandes conjuntos de datos. Al no depender de tablas y utilizar nodos en su lugar, ambas pueden gestionar volúmenes de datos no es­tru­c­tu­ra­dos, au­me­n­ta­n­do su es­ca­la­bi­li­dad. En co­m­pa­ra­ción con sistemas SQL, MongoDb y Cassandra son ideales para empresas que anticipen grandes volúmenes de datos o cuyas ne­ce­si­da­des aumentan con el tiempo.

MongoDB es la mejor opción para volúmenes de datos pre­do­mi­na­n­te­me­n­te no es­tru­c­tu­ra­dos. Aunque ambos sistemas son adecuados para este tipo de trabajo, la fle­xi­bi­li­dad de MongoDB facilita la es­ca­la­bi­li­dad. Cassandra es menos flexible, pero, al tener una es­tru­c­tu­ra similar al estilo SQL, es más fácil para quienes migran a NoSQL. En una co­m­pa­ra­ción directa MongoDB vs. Cassandra, MongoDB pierde en cuanto a funciones de consulta. Cassandra utiliza CQL, un lenguaje de consulta similar al de las bases de datos tra­di­cio­na­les, mientras que MongoDB utiliza su propio diseño, el cual hay que aprender primero.

Enfoques de MongoDB vs. Cassandra

Aunque MongoDB y Cassandra persiguen objetivos similares, sus enfoques son fu­n­da­me­n­ta­l­me­n­te di­fe­re­n­tes. MongoDB almacena sus datos en do­cu­me­n­tos agrupados dentro de co­le­c­cio­nes, uti­li­za­n­do pares clave-valor. Las claves son pri­n­ci­pa­l­me­n­te cadenas de ca­ra­c­te­res y los valores pueden ser, entre otras cosas, valores booleanos, fechas, otros do­cu­me­n­tos, números o cadenas de ca­ra­c­te­res. Mientras tanto, Cassandra está orientada a columnas (en Sorted String Tables) y realiza pa­r­ti­cio­nes por filas. Una SSTable de este tipo contiene un conjunto ordenado de los re­s­pe­c­ti­vos pares clave-valor y no se puede modificar a po­s­te­rio­ri. Aunque Cassandra se considera una base de datos NoSQL, su enfoque es más “Not only SQL”. Sin embargo, el lenguaje de consulta de Cassandra es mucho más flexible.

Modelos de datos

Al comparar los modelos de datos de MongoDB y Cassandra, es evidente que MongoDB ofrece una mayor fle­xi­bi­li­dad. MongoDB no requiere un esquema definido y utiliza el formato BSON, similar a JSON. Un registro de empleados podría tener el siguiente aspecto:

Empleados: [
{
ID_empleado: “1”,
Nombre: “María López”,
Ciudad: “Madrid”
},
{
ID_empleado: “2”
Departamento: “IT”
Correo electrónico: pgomez@ejemplo.es
}]
bson

Cassandra, en cambio, utiliza tablas que se pueden dividir de forma co­n­ve­n­cio­nal en filas y columnas. Los datos se almacenan como pares clave-valor. El registro de empleados co­rre­s­po­n­die­n­te sería el siguiente:

ID_empleado 1 Columna - Nombre	Columna - Ciudad
		Valor - María López	Valor - Madrid
ID_empleado 2 Columna - Nombre	Columna - Departamento	Columna – Correo electrónico
		Valor – Pedro Gómez	Valor - IT			Valor - pgomez@ejemplo.es
text

Di­s­po­ni­bi­li­dad

La co­m­pa­ra­ción MongoDB vs. Cassandra también muestra si­mi­li­tu­des y di­fe­re­n­cias en cuanto a la di­s­po­ni­bi­li­dad de los datos al­ma­ce­na­dos. Ambos sistemas protegen los datos di­s­tri­bu­ye­n­do la carga entre di­fe­re­n­tes nodos del servidor. Sin embargo, MongoDB se basa en un único nodo primario, que se replica para estar protegido contra posibles fallos. Todas las ope­ra­cio­nes de escritura se dirigen primero al nodo maestro y, desde allí, se tra­n­s­mi­ten a sus réplicas. De forma que, si el nodo maestro falla, otro ocupa su lugar. Por otro lado, Cassandra permite co­n­fi­gu­rar varios nodos maestros, ga­ra­n­ti­za­n­do un reemplazo inmediato en caso de fallo.

Co­m­pa­ti­bi­li­dad y lenguajes de pro­gra­ma­ción

Tanto Cassandra como MongoDB son co­m­pa­ti­bles con varios sistemas ope­ra­ti­vos de servidor; funcionan con Linux, macOS y Windows. Además, Cassandra es co­m­pa­ti­ble con BSD, mientras que MongoDB es co­m­pa­ti­ble con Solaris.

Las dos so­lu­cio­nes de gestión de bases de datos son co­m­pa­ti­bles con varios lenguajes de pro­gra­ma­ción, como se muestra en la tabla resumen:

Lenguaje de pro­gra­ma­ción Co­m­pa­ti­ble con Mongo DB Co­m­pa­ti­ble con Cassandra
Ac­tio­n­s­cri­pt ✓ ✗
C ✓ ✗
C# ✓ ✓
C++ ✓ ✓
Clojure ✓ ✓
Co­l­d­Fu­sion ✓ ✗
D ✓ ✗
Dart ✓ ✗
Delphi ✓ ✗
Erlang ✓ ✓
Go ✓ ✓
Groovy ✓ ✗
Haskell ✓ ✓
Java ✓ ✓
Ja­va­S­cri­pt ✓ ✓
Kotlin ✓ ✗
Lisp ✓ ✗
Lua ✓ ✗
MatLab ✓ ✗
Perl ✓ ✓
PHP ✓ ✓
Po­we­r­She­ll ✓ ✗
Prolog ✓ ✗
Python ✓ ✓
R ✓ ✗
Ruby ✓ ✓
Scala ✓ ✓
Smalltalk ✓ ✗
Swift ✓ ✗

Seguridad

En las versiones base, la seguridad de MongoDB y Cassandra recae pri­n­ci­pa­l­me­n­te en los usuarios. Además de SSL o TLS para co­ne­xio­nes de los clientes y au­te­n­ti­ca­ción de los usuarios, requieren medidas adi­cio­na­les como un firewall adecuado. Por otra parte, las so­lu­cio­nes co­me­r­cia­les como MongoDB Atlas ofrecen amplias funciones de seguridad como X.509, cifrado en el lado del cliente y del servidor, así como in­te­gra­ción con Kerberos y LDAP.

Uso en di­s­po­si­ti­vos móviles

Cassandra no cuenta con versiones es­pe­cí­fi­cas para di­s­po­si­ti­vos móviles ni he­rra­mie­n­tas de de­sa­rro­llo en sma­r­t­pho­nes. En la co­m­pa­ra­ti­va MongoDB vs. Cassandra, MongoDB tiene mayor capacidad de uso en di­s­po­si­ti­vos móviles: Realm es un sistema de gestión de bases de datos de MongoDB diseñado es­pe­cí­fi­ca­me­n­te para sistemas ope­ra­ti­vos móviles. Incluso la versión de pago Atlas ofrece so­lu­cio­nes para el uso en sma­r­t­pho­nes.

¿Qué empresas utilizan MongoDB o Cassandra?

¿MongoDB o Cassandra? Hay empresas conocidas que optan por una u otra. Estas son algunas de las empresas más conocidas que utilizan MongoDB:

  • Adobe
  • Amadeus
  • AppScale
  • Craftbase
  • Disney
  • Etsy
  • Fou­r­s­qua­re
  • Lyft
  • MTV
  • The New York Times
  • Via Varejo

También hay muchas empresas pro­mi­ne­n­tes que utilizan Cassandra. Aunque Meta ya no hace uso de Cassandra, sí lo hacen las si­guie­n­tes empresas:

  • Apple
  • Discord
  • Digg
  • Hulu
  • Intuit
  • Instagram
  • Netflix
  • Reddit
  • Spotify
  • X (an­ti­gua­me­n­te Twitter)
Consejo

Descubre más artículos sobre bases de datos en nuestra Digital Guide. Co­m­pa­ra­mos MariaDB vs. MySQL, resumimos las mejores bases de datos open source y te ayudamos a dar tus primeros pasos con MongoDB.

Ir al menú principal