jueves, 21 de febrero de 2019

Principales manejadores

MongoDB
Es uno de las bases de datos NoSQL más importantes hoy en día. Siendo una base de datos NoSQL, no usa filas y columnas habituales que tanto asociamos con la gestión de bases de datos relacionales. Su arquitectura se basa en colecciones y documentos. La unidad básica de datos en esta base de datos consiste en un conjunto de pares clave-valor.

  • MongoDB nos proporciona una interesante combinación entre tecnología y datos para una obtener una adecuada ventaja competitiva.
  • Es el más idóneo para aplicaciones de misión crítica, ya que hace reducir considerablemente los riesgos.
  • Aumenta progresivamente el tiempo de valuación y disminuye el costo total de propiedad
  • Construye aplicaciones que regularmente no podría ser posible con las bases de datos tradicionales.



Escalabilidad de los datos en MongoDB
Es excepcional la escalabilidad de MongoDB, cuenta con la opción de escalar sus datos a través de múltiples centros de datos distribuidos en ubicaciones geográficamente diversas, de igual manera facilita cada vez más la obtención de datos y la escalabilidad a demanda.

MongoDB tiene un conjunto integrado de funciones que le permite derivar análisis y visualización de datos, realizar procesamiento en memoria, procesamiento de gráficos, búsqueda de texto y replicación global, ofreciendo una amplia variedad de aplicaciones en tiempo real usando solo la aplicación MongoDB.


Ventajas de MongoDB
  • Plataforma de datos distribuidos
  • Desarrollo rápido e iterativo
  • Modelo de datos flexible
  • TCO reducido (costo total de propiedad)
  • Conjunto de características integrado


Características de MongoDB
  • Cualquier campo en el documento puede ser indexado.
  • Compatibilidad con la replicación del esclavo maestro.
  • La base de datos puede ejecutarse en varios servidores. Los datos se duplican para proteger el sistema en caso de falla del hardware.
  • Admisión de MapReduce y herramientas de agregación.
  • Fácil administración en caso de fallas.
  • Está sin esquema escrito en C ++
  • La combinación de MongoDB y JavaScript funciona bien ya que la base de datos usa el lenguaje en lugar de los procedimientos.

CouchDB
Es una base de datos no relacional “NoSQL” y cuyo propósito principal es el de hacer la replicación de los datos en múltiples dispositivos de la forma más sencilla posible. Es algo así como una fuente de almacenamiento KVS para guardar blobs de JSON (documents), con agregados como validaciones de datos, querying y autenticación integrada de usuarios.

De esta forma, tenemos una API muy completa para el manejo de nuestros datos y con autenticación incorporada, todo corriendo en una misma instancia, y con capacidad para replicarse y sincronizarse con otras instancias o con otros entornos compatibles de una forma rápida, sencilla y automatizada.




  • Una de sus interesantes características es que los datos son accesibles a través de una API Rest. Este sistema es utilizado por compañías como Credit Suisse y la BBC.
  • CouchDB proporciona una ventaja interesante (consecuencia de su posición en el teorema anterior) y es que permite que bases de datos se sincronicen de un modo automático y simple. Si tenemos un dispositivo móvil y se queda sin conexión, al recuperarse se resincroniza la información de la base de datos.

Redis
Redis es una base de datos NoSQL, de tipo clave-valor. Los valores pueden ser de varios tipos: cadenas, hashes, listas, conjuntos o conjuntos ordenados. Tiene sistemas get/set, incrementos/decrementos de números, operaciones de listas, de conjuntos, etc. también dispone de mecanismos publicación/subscripción (para uso como si fuese un sistema MQ), expiración de datos (para uso como sistema de caché), replicación maestro-esclavo y evaluación de código escrito en Lua.


Además de todo esto, Redis se destaca por ser una base de datos con un rendimiento muy elevado, esto es porque se define como una base de datos en memoria con persistencia para datos (que puede ser desactivada). Sus creadores indican que la comparación con otros sistemas tiene matices. En su página web oficial, la sección de benchmark, reseñan algunos datos a tener en cuenta en las comparaciones:


  • Redis es un servidor, por lo que la comparación con sistemas de almacenaje de datos integrados como SQLite, Berkeley DB, Tokyo/Kyoto Cabinet, etc. no es posible, ya que Redis tiene comunicación a través de un protocolo y la red.
  • Redis responde siempre a las peticiones, a diferencia de otros sistemas como MongoDB que no notifica o no da conocimiento sobre las operaciones de escritura, o MySQL que permite retrasar las inserciones.
  • Redis es síncrono, por lo que para realizar un benchmark no se puede hacer sobre una sola y misma conexión, hay que habilitar varias conexiones hacia el servidor.
  • Redis es una base de datos en memoria, por lo que sería raro o extraño compararla con sistemas transaccionales como MySQL o PostgreSQL, entre otros. Para estar en igualdad de condiciones habría que emplear AOF en Redis y alguna política de fsync.
  • Redis es un servidor mono-hilo, esto quiere decir que no aprovecha los beneficios de los sistemas con varias CPUs o multi-core, por lo que su comparación con sistemas multi-hilo en los que sí se aprovechan estas características, es igualmente desventajoso para Redis. No obstante, se pueden lanzar varios Redis en modelo maestro-esclavo si se requiere.

Referencia: 
(08 de marzo del 2018). Experto en Big data. Obtenido de Expertos en Big data:  https://expertoenbigdata.com/que-es-mongodb/

Canales R. (27 de Noviembre del 2018). Adictos al trabajo. Obtenido de Adictos al trabajo: https://www.adictosaltrabajo.com/2018/11/27/primeros-pasos-con-couchdb/

Torres S. (19 de Septimebre del 2018). Woopi Obtenido de Woopi: https://woopi.com.ar/blog/2018/09/19/couchdb-exploit-vulnerabilidad-y-ejecucion-remota/

Rubio M. (21 de Junio del 2016). Altenwald Obtenido de Altenwald: https://altenwald.org/2012/06/21/redis-nosql-de-alto-rendimiento/

No hay comentarios:

Publicar un comentario