You are on page 1of 7

TABLA COMPARATIVA ENTRE LAS BASES DE DATOS NOSQL: AMAZON DYNAMODB, CASSANDRA Y MONGODB

CARACTERÍSTICAS
Características específicas Amazon DynamoDB es Apache Cassandra es MongoDB es la base de datos de
un servicio de base de el líder NoSQL, próxima generación que ayuda a las
datos NoSQL rápido y sistema de empresas a transformar sus industrias
flexible para todas las administración de
aplicaciones bases de datos
distribuidas

Nombre Amazon DynamoDB Cassandra MongoDB


Descripción Servicio de base de datos Almacén de gran Una de las tiendas de documentos más
alojado y escalable de columna basado en populares
Amazon con los datos ideas de BigTable y
almacenados en la nube de DynamoDB
Amazonas
Modelo de base de datos primaria Document store: Las tiendas Wide column store: Document store: Las tiendas de
de documentos, también documentos, también llamadas
Las tiendas de
llamadas sistemas de bases sistemas de bases de datos orientadas a
columnas anchas,
de datos orientadas a documentos, se caracterizan por su
también llamadas
documentos, se caracterizan organización de datos sin esquema.
tiendas de discos
por su organización de datos
extensibles,
sin esquema.
almacenan datos en
Key-value store: Las tiendas registros con la
de valores clave son capacidad de
probablemente la forma más mantener un gran
simple de sistemas de
administración de bases de
datos. Solo pueden número de columnas
almacenar pares de claves y dinámicas.
valores, así como también
recuperar valores cuando se
conoce una clave.

Modelos de bases de datos secundarias Key-value store

Sitio web aws.amazon.com/dynamodb cassandra.apache.or www.mongodb.com


g
Documentación técnica aws.amazon.com/document cassandra.apache.or docs.mongodb.com/manual
ation/dynamodb g/doc/latest
Versión inicial 2012 2008 2009
Basado en la nube sí no no
Lenguaje de implementación Java C ++
Esquema de datos sin esquema sin esquema sin esquema
Índices secundarios sí restringido sí
SQL no Sentencias DML y no
DDL similares a SQL
(CQL)
API y otros métodos de acceso API RESTful HTTP Protocolo protocolo propietario usando JSON
propietario
Ahorro
Lenguajes de programación admitidos .Net C# Actionscript info
ColdFusion C++ C
Erlang Clojure C#
Groovy Erlang C++
Java Go Clojure info
JavaScript Haskell ColdFusion info
Perl Java D info
PHP JavaScript info Dart info
Python Perl Delphi info
Ruby PHP Erlang
Python Go info
Ruby Groovy info
Scala Haskell
Java
JavaScript
Lisp info
Lua info
MatLab info
Perl
PHP
PowerShell info
Prolog info
Python
R info
Ruby
Scala
Smalltalk info
Scripts del lado del servidor no no JavaScript
Disparadores sí sí no
Métodos de particionamiento Sharding Sharding Sharding
Métodos de replicación sí factor de replicación Replicación maestro-esclavo
seleccionable
Conceptos de consistencia Consistencia eventual Consistencia Consistencia eventual
Consistencia Inmediata eventual Consistencia Inmediata
Consistencia
Inmediata
Llaves extranjeras no no no
Conceptos de transacción no no no
Concurrencia sí sí sí
Durabilidad sí sí sí
Escenarios típicos de aplicación Amazon DynamoDB es un Internet de las cosas Internet de las cosas (Bosch, Silver
servicio de base de datos (IOT), aplicaciones Spring Networks)
NoSQL que ofrece una de detección de Móvil (The Weather Channel, ADP, O2)
latencia consistente de un fraude, motores de Vista única (MetLife)
dígito en milisegundos a recomendación, Análisis en tiempo real (Buzzfeed,
cualquier escala. catálogos de Ciudad de Chicago, Crittercism)
productos y listas de Personalización (Expedia, eHarmony,
reproducción y Gilt)
aplicaciones de Catálogos (Under Armour, Otto)
mensajería. Gestión de contenido (eBay, Forbes)

Conceptos de usuario Los derechos de acceso para Los derechos de Derechos de acceso para usuarios y
usuarios y roles se pueden acceso para los roles
definir a través de AWS usuarios se pueden
Identity and Access definir por objeto
Management (IAM)
ENTORNOS DE OPERACIÓN
HOSTING DE AMAZON BSD Linux
Linux OS X
OS X Solaris
Windows Windows
EMPRESAS QUE UTILIZAN ESTE MOTOR
Amazon Apache Software Foundation MongoDB, Inc
VENTAJAS
Totalmente administrado Ningún punto único de falla garantiza el 100% de MongoDB mantiene las características
disponibilidad. más valiosas de las bases de datos
Amazon DynamoDB es un servicio de base de relacionales: coherencia fuerte,
datos NoSQL en la nube totalmente Simplicidad operativa para el menor costo total de lenguaje de consulta expresivo e índices
administrado; usted simplemente crea una tabla propiedad. secundarios. Como resultado, los
de base de datos, establece su rendimiento y deja desarrolladores pueden construir
que el servicio se encargue del resto. La mejor escalabilidad de las plataformas NoSQL. aplicaciones altamente funcionales más
rápido que las bases de datos NoSQL.

MongoDB proporciona flexibilidad de


modelo de datos, escalabilidad elástica
y alto rendimiento y disponibilidad de
bases de datos NoSQL. Como resultado,
los ingenieros pueden mejorar
continuamente las aplicaciones y
entregarlas a escala casi ilimitada en
hardware básico.

DESVENTAJAS
- DynamoDB es una base de datos NoSQL. Eso La desventaja más grande para Cassandra es que no No utiliza joins. Se diseña como si nunca
significa que no puede hacer consultas es compatible con los índices B-Tree y, por lo tanto, hubieran sido una opción.
complejas o de unión en dynamoDB. Además, no no admite consultas de rango.
ACID, ya que no es un RDBMS
-Los CounterColumns no son un sustituto del Se escala bien en un rango estrecho,
- No se pueden escribir objetos grandes (BLOB) autoincrement de las bases relacionales. Los pero otras soluciones NoSQL son
en dynamo DB. Definitivamente puede contadores no son muy confiables. Si está haciendo mejores para escalar.
almacenar metadatos para BLOBS en decrementos, este puede no ser el resultado deseado.
dynamoDB, pero objetos reales que puede Sin transacciones, excepto en el nivel de
almacenar en S3. La recuperación del ajuste S3 registro. Si desea una transacción, debe
es otra cosa que debe tener en cuenta para ajustar toda la transacción en un solo
obtener un mejor rendimiento, como el uso de registro.
orden lexicográfico, el uso aleatorio y la
paralelización de los GET. Difícil de asegurar correctamente sin
contar con una licencia Enterprise.

No hay parches, tiene que hacer


actualizaciones completas y las
actualizaciones completas se emiten
varias veces al año. Entonces tienes que
construir un programa de parches
alrededor de ellos. No hay garantía de
que su actualización funcione con su
controlador dado, por lo que las
pruebas deben programarse antes de la
actualización.

Conclusiones:

- Las empresas generalmente prefieren utilizar bases de datos que se integren con otros servicios para facilitar el intercambio de datos y
aprovechamiento de herramientas para la minería de datos, servicios web y procesos de ETL.
- Ante todo, el tiempo de respuesta para el uso entre la aplicación y el motor de base de datos debe ser mínimo sin “importar” el tamaño del
almacenamiento de los datos.
- Entre las funcionalidades que debe tener un motor de base de datos en las empresas en cuanto a procedimientos, funciones, vistas, triggers y eventos
programados, casi ninguna de tipo NoSQL lo cumple como frecuentemente se utiliza en los sistemas SQL, sino que presentan acercamiento y versiones
análogas, por lo que habría que tener en cuenta los cambios e implementaciones de cada motor.
- Entre los sistemas operativos más comunes para instalar los sistemas NoSQL se encuentran Windows y Linux. Aquellos que lo deseen instalar en otros
tipos deben considerar la compatibilidad entre sistema operativo – base de datos.
- Casi todas las bases de datos NoSQL están orientadas inicialmente a grandes segmentos del mercado de los sistemas operativos: generalmente están
disponibles para sistemas Windows, Linux y Mac OS y poca o nula compatibilidad con otros Unix.