mongodb couchdb nosql

couchdb vs mongodb



NoSQL-MongoDB frente a CouchDB (5)

Ahora hay muchas más bases de datos NoSQL en el mercado que nunca antes. Sugiero incluso echar un vistazo al Magic Quadrant de Gartner si está buscando una base de datos que también sea ideal para aplicaciones empresariales basadas en soporte, capacidad de expansión, administración y costo.

http://www.gartner.com/technology/reprints.do?id=1-23A415Q&ct=141020&st=sb

Me gustaría sugerir Couchbase a cualquiera que no lo haya probado aún, pero no basado en la versión que se muestra en el informe (2.5.1) porque hay casi 2 revisiones detrás de donde CB Server está hoy, cerca del lanzamiento de 4.0 en 2H15 .

http://www.couchbase.com/coming-in-couchbase-server-4-0

La otra parte sobre Couchbase como proveedor / producto es que es un tipo de DB de usos múltiples. Puede actuar como una tienda de K / V pura, una base de datos orientada a documentos con escalado multidimensional, Memcached, caché a un lado con persistencia y admite SQL compatible con ANSI 92 con uniones automáticas, replicación en clústeres de DR con solo presionar un botón y incluso tiene un componente móvil incorporado en el ecosistema.

Si nada más, vale la pena revisar los últimos puntos de referencia:

http://info.couchbase.com/Benchmark_MongoDB_VS_CouchbaseServer_HPW_BM.html http://info.couchbase.com/NoSQL-Technical-Comparison-Report.html

Soy un novato completo cuando se trata del movimiento NoSQL. He escuchado mucho sobre MongoDB y CouchDB. Sé que hay diferencias entre los dos. ¿Qué recomiendan aprender como primer paso en el mundo NoSQL?



Los videos de Edureka en youtube con respecto a NoSQL son algunos de los mejores videos tutoriales. Empecé en MongoDb y Cassandra después de ver estos videos.

https://www.youtube.com/watch?v=gJFG04Sy6NY https://www.youtube.com/watch?v=KSq6tMMXZ8s https://www.youtube.com/watch?v=3z1KFA2qcSo

Buenas presentaciones están disponibles en slideshare.net

http://www.slideshare.net/quipo/nosql-databases-why-what-and-when?qid=3bb9f7f6-a53d-41b1-8403-cd6f181d0ca7&v=qf1&b=&from_search=1 http://www.slideshare.net/EdurekaIN/no-sql-databases-35591065?qid=f1b9c095-6d70-4d0a-91da-1df664c4f389&v=qf1&b=&from_search=3

La presentación de Edureka en slideshare es la extensión del video en youtube. Puede tratar esta presentación como un resumen del video de youtube.


Ver los siguientes enlaces

Actualización : encontré una gran comparación de bases de datos NoSQL .

MongoDB (3.2)

  • Escrito en: C ++
  • Punto principal: tienda de documentos JSON
  • Licencia: AGPL (Controladores: Apache)
  • Protocolo: personalizado, binario (BSON)
  • Replicación maestro / esclavo (conmutación por error automática con conjuntos de réplicas)
  • Sharding incorporado
  • Las consultas son expresiones javascript
  • Ejecutar funciones javascript arbitrarias en el lado del servidor
  • Tiene indexación geoespacial y consultas
  • Múltiples motores de almacenamiento con diferentes características de rendimiento
  • Rendimiento sobre las características
  • Validación de documentos
  • Diario
  • Poderoso marco de agregación
  • En sistemas de 32 bits, limitado a ~ 2.5Gb
  • Búsqueda de texto integrada
  • GridFS para almacenar metadatos de big data + (no realmente un FS)
  • Centro de datos consciente

Mejor utilizado : si necesita consultas dinámicas. Si prefiere definir índices, no asignar / reducir funciones. Si necesita un buen rendimiento en una gran base de datos. Si quería CouchDB, pero sus datos cambian demasiado, llenando los discos.

Por ejemplo : para la mayoría de las cosas que haría con MySQL o PostgreSQL, pero tener columnas predefinidas realmente lo detiene.

CouchDB (1.2)

  • Escrito en: Erlang
  • Punto principal: consistencia DB, facilidad de uso
  • Licencia: Apache
  • Protocolo: HTTP / REST
  • Replicación bidireccional (!),
  • continuo o ad-hoc,
  • con la detección de conflictos,
  • por lo tanto, la replicación maestro-maestro. (!)
  • MVCC: las operaciones de escritura no bloquean las lecturas
  • Las versiones anteriores de documentos están disponibles
  • Diseño de solo colisión (confiable)
  • Necesita compactación de vez en cuando
  • Vistas: mapa integrado / reducir
  • Formateo de vistas: listas y espectáculos
  • Validación del documento del lado del servidor posible
  • Autenticación posible
  • Actualizaciones en tiempo real a través de ''_changes'' (!)
  • Manejo de archivos adjuntos
  • por lo tanto, CouchApps (aplicaciones js independientes)

Mejor utilizado : para acumular, de vez en cuando, datos cambiantes, en los que se deben ejecutar consultas predefinidas. Lugares donde el control de versiones es importante.

Por ejemplo : CRM, sistemas CMS. La replicación maestro-maestra es una característica especialmente interesante, que permite implementaciones sencillas en varios sitios.


Si vienes del mundo de MySQL, MongoDB se va a "sentir" mucho más natural por su compatibilidad con el lenguaje de consulta.

Creo que eso es lo que lo hace tan amigable para mucha gente.

CouchDB es fantástico si desea utilizar el excelente soporte de replicación maestro-maestro con una configuración multinodo, posiblemente en diferentes centros de datos o algo así.

La replicación de MongoDB (conjuntos de réplicas) es una configuración de maestro-esclavo-esclavo-esclavo *, solo puede escribir en el maestro en un conjunto de réplicas y leer de cualquiera de ellos.

Para una configuración de sitio estándar, eso está bien. Se asigna muy bien al uso de MySQL.

Pero si está tratando de crear un servicio global como un CDN que necesita mantener todos los nodos globales sincronizados aunque lean / escriban a todos ellos, algo como la replicación en CouchDB será una gran ayuda para usted.

Mientras que MongoDB tiene un lenguaje parecido a una consulta que puede usar y se siente muy intuitivo, CouchDB adopta un enfoque de "reducir mapas" y este concepto de vistas. Se siente extraño al principio, pero a medida que lo dominas, realmente comienza a sentirse intuitivo.

Aquí hay una descripción rápida para que tenga sentido:

  • CouchDB almacena todos tus datos en un b-tree
  • No se puede "consultar" dinámicamente con algo como "SELECCIONAR * DE usuario DONDE ..."
  • En su lugar, define "vistas" discretas de sus datos ... "aquí hay una vista de todos mis usuarios", "aquí hay una vista de todos los usuarios mayores de 10" "aquí hay una vista de todos los usuarios mayores de 30" y pronto.
  • Estas vistas se definen usando el enfoque map-reduce y se definen como funciones de JavaScript.
  • Cuando define una vista, la base de datos comienza a alimentar todos los documentos de la base de datos a la que asignó la vista, a través de ella y registrando los resultados de sus funciones como el "índice" de esa información.
  • Hay algunas consultas básicas que puede hacer en las vistas, como solicitar una clave específica (ID) o rango de ID, independientemente de lo que haga su función de mapa / reducir.
  • Lea estas diapositivas , es la mejor aclaración del mapa / reducción en el sofá que he visto.

Por lo tanto, ambas fuentes utilizan documentos JSON, pero CouchDB sigue este enfoque más "todo servidor es un maestro y puede sincronizarse con el mundo", que es fantástico si lo necesita, mientras que MongoDB es realmente el MySQL del mundo NoSQL.

Entonces, si eso suena más como lo que necesitas / quieres, ve por eso.

Pequeñas diferencias como el protocolo binario de Mongo frente a la interfaz RESTful de CouchDB son detalles menores.

Si quieres velocidad sin procesar y al diablo con la seguridad de los datos, puedes hacer que Mongo corra más rápido que CouchDB ya que puedes decir que funcione sin memoria y no enviar cosas al disco, excepto por intervalos dispersos.

Puedes hacer lo mismo con Couch, pero el protocolo de comunicación basado en HTTP va a ser 2-4 veces más lento que la comunicación binaria en bruto con Mongo en esta "velocidad sobre todo". guión.

Tenga en cuenta que la velocidad de locura enloquecida es inútil si un fallo del servidor o un disco daña y deja su DB en el olvido, por lo que el punto de datos no es tan sorprendente como podría parecer (a menos que esté haciendo sistemas de comercio en tiempo real en Wall Street, en cuyo caso mira a Redis).

Espero que todo ayude!