Elegir una base de datos NoSQL es mucho más complicado que seleccionar un RDBMS, el mundo de las bases de datos NoSQL viene en múltiples sabores, cada uno tiene un diseño específico enfocado a resolver un conjunto diferente de problemas.
Una comparación común y recientemente también una de las más populares es la de Couchbase y DynamoDB, por eso me gustaría recopilar aquí una comparación basada en mi experiencia con ambos, la documentación disponible y algunas opiniones en StackOverflow y otros sitios.
¡Prepárense para rugir!
Una comparación de manzanas y naranjas
En primer lugar, estamos comparando manzanas con naranjas: DynamoDB es un almacén de valores clave altamente escalable que, por defecto, es coherente con el tiempo. Couchbase, por otro lado, es un almacén de valores clave, una base de datos de documentos y una caché gestionada coherente, rápida y altamente escalable.
Por supuesto, la diferencia entre un almacén de valores clave y las bases de datos de documentos es difícil de definir al principio, ya que la mayoría de los almacenes de valores clave también admiten una estructura de datos como JSON y las bases de datos de documentos pueden utilizarse naturalmente como almacén de valores clave. Las diferencias entre ellos sólo surgirán cuando empieces a comparar característica por característica.
Una rápida comparación de tablas
Vamos a profundizar en cada tema en futuros posts, pero por ahora vamos a ver cómo se ve una tabla simple y rápida comparando DynamoDB y Couchbase Server:
| Característica | DynamoDB | Servidor Couchbase |
| Licencias | Propietario | Ediciones Community y Enterprise de código abierto |
| Tipo |
|
|
| Modelo |
|
|
| Buscar en |
|
|
| Indexación |
|
|
| Integridad de los datos |
|
|
| Escalabilidad | Alta escalabilidad | Alta escalabilidad |
| Despliegue | Sólo AWS, totalmente gestionado |
|
| Bloqueo | Bloqueo optimista | |
| Copia de seguridad y restauración |
|
|
| Consulta de | Consultas clave-valor y rango limitadas | |
| Replicación de centros de datos |
|
|
| Estrangulamiento |
|
|
| Interfaz de administración |
|
|
| Fragmentación | La fragmentación se realiza automáticamente de forma encubierta | La fragmentación se realiza automáticamente de forma encubierta |
| Seguridad | Proporcionado por las medidas de seguridad normales de AWS | |
| Arquitectura | Desconocido | |
| Integraciones |
|
Conclusión
Comparar Couchbase con DynamoDB es como comparar manzanas y naranjas, está claro que están hechos para necesidades diferentes:
DynamoDB es esencialmente un almacén de valores clave, lo que significa que será una buena opción cuando su aplicación ejecute consultas muy sencillas y almacene una pequeña cantidad de datos. Para cualquier otra cosa, debería considerar otra opción.
Si no le importa mucho la dependencia de un proveedor, DynamoDB también puede evitarle algunos dolores de cabeza a corto y medio plazo, ya que es una base de datos totalmente gestionada".
Como ya se ha mencionado, en términos de asequibilidad, el modelo de precios de DynamoDB de AWS es bastante atractivo al principio, pero también puede descontrolarse. He aquí algunos ejemplos:
- Una instancia con 30Kb de Avg. Document Size, 500 Item Read/sec y 50 Item Write/sec le costará U$ 919 al mes.
- Una instancia con 100Kb de Avg. Document Size, 400 Item Read/sec and 50 Item Write/sec le costará más de U$ 3.300 al mes, y si sus documentos tienen un tamaño medio de 200kb le costará más de U$ 6.700 sin contar copias de seguridad, etc.
DynamoDB parece ser una buena solución para aplicaciones pequeñas y sencillas, como las habilidades de Alexa o el trabajo conjunto con funciones Lambda; también puede respaldar su crecimiento como base de datos altamente escalable, solo tiene que estar preparado para abrir la cartera en ese caso".
Couchbase, en cambio, es una opción mucho mejor para aplicaciones que exigen alto rendimiento, consistencia y flexibilidad en las consultas. Por defecto, existe un totalmente capa de caché gestionada integrada bajo las cubiertas para que tus lecturas y escrituras sean realmente rápidas, y los datos pueden consultarse fácilmente mediante un lenguaje similar a SQL llamado N1QL.
Apenas comparé Couchbase Lite/Sync Gateway con AWS IoT Rules, ya que este tema en sí merece un artículo completamente nuevo, pero como ya sabrás, Couchbase Lite tiene un montón de casos de uso famosos y es ampliamente utilizado en muchas industrias como juegos, transporte, ventas, etc.
Couchbase CE es totalmente gratuito y todas las versiones principales se lanzan el mismo día para las ediciones Community y Enterprise. Couchbase EE tiene un licenciamiento mucho más flexible y barato, ya que solo pagas por tus servidores EE funcionando en producción y además te proporcionamos soporte 24/7, formación y otros beneficios.
La comunidad es una gran ventaja y puedes obtener ayuda fácilmente en StackOverflow o en Foros de Couchbase. Además, nos hemos esforzado mucho por crear un entorno de desarrollo agradable, SDK bien diseñados y un montón de aplicaciones de demostración, de las que hay más de 500 en couchbaselabs en GitHub.
Si tienes alguna pregunta, envíame un tweet a @deniswsrosa.