MongoDB Arquitectura y modelo de datos

0

¿Qué es MongoDB?

MongoDB es la base de datos para las aplicaciones actuales, que le permite:

  • Aprovechar los datos y la tecnología para maximizar la ventaja competitiva
  • Reducir el riesgo de implementaciones de misión crítica
  • Acelerar el tiempo de valor drásticamente, menor costo total de propiedad

Con MongoDB, puede crear aplicaciones que nunca fueron posibles con las bases de datos relacionales tradicionales. Así es cómo.

Desarrollo rápido e iterativo

El alcance y los requisitos comerciales cambiantes ya no se interponen entre usted y la entrega exitosa del proyecto.

Un modelo de datos flexible junto con un esquema dinámico y controladores idiomáticos, con una poderosa GUI y herramientas de línea de comandos hacen que sea rápido para los desarrolladores construir y desarrollar aplicaciones.

El aprovisionamiento y la gestión automatizados permiten una integración y entrega continuas para operaciones altamente productivas. Compare esto con los esquemas relacionales estáticos y las operaciones complejas que lo han obstaculizado en el pasado.

Modelo de datos flexible

MongoDB almacena datos en documentos flexibles, similares a JSON, lo que facilita la persistencia y la combinación de datos de cualquier estructura.

El modelo de documento se asigna a los objetos en el código de su aplicación, lo que facilita el trabajo de los datos, sin renunciar a los controles de gobierno de esquema, acceso a datos, agregaciones complejas y una rica funcionalidad de indexación.

Puede modificar dinámicamente el esquema sin tiempo de inactividad. Dedica menos tiempo a preparar sus datos para la base de datos y más tiempo a poner sus datos a trabajar.

Plataforma de datos distribuidos

MongoDB puede ejecutarse dentro y a través de centros de datos distribuidos geográficamente y regiones en la nube, proporcionando nuevos niveles de disponibilidad y escalabilidad.

A medida que sus implementaciones crecen en términos de volumen de datos y rendimiento, MongoDB escala elásticamente sin tiempo de inactividad y sin cambiar su aplicación.

Y a medida que sus objetivos de rendimiento y disponibilidad evolucionan, MongoDB le permite adaptarse con flexibilidad, en todos los centros de datos, con una coherencia ajustable.

Conjunto de funciones integradas

La visualización analítica y de datos, la búsqueda de texto y geoespacial, el procesamiento de gráficos, las canalizaciones de datos de transmisión controladas por eventos, el rendimiento en memoria y la replicación global le permiten ofrecer una amplia variedad de aplicaciones en tiempo real en una sola tecnología, de manera confiable y segura.

Los sistemas RDBMS requieren tecnologías adicionales y complejas que exigen gastos generales y gastos de integración por separado para hacerlo bien.

TCO más bajo

Los equipos de desarrollo de aplicaciones son 2 veces más productivos cuando usan MongoDB. El servicio en la nube Atlas totalmente administrado significa que el equipo de operaciones también lo es.

MongoDB se ejecuta en hardware básico, reduciendo drásticamente los costos. MongoDB ofrece a pedido, precios de pago por uso y suscripciones anuales asequibles, incluido soporte global 24x7x365.

Sus aplicaciones pueden costar una décima parte del costo en comparación con el uso de una base de datos relacional.

Compromiso a largo plazo. MongoDB Inc. y el ecosistema MongoDB respaldan la base de datos de más rápido crecimiento del mundo: más de 30 millones de descargas, más de 4,900 clientes y más de 1,000 socios. Puede estar seguro de que su inversión está protegida.

La arquitectura Nexus

La filosofía de diseño de MongoDB se centra en combinar las capacidades críticas de las bases de datos relacionales con las innovaciones de las tecnologías NoSQL.

Nuestra visión es aprovechar el trabajo que Oracle y otros han realizado en los últimos 40 años para hacer que las bases de datos relacionales sean lo que son hoy.

En lugar de descartar décadas de madurez probada de la base de datos, MongoDB está retomando donde lo dejaron al combinar las capacidades clave de la base de datos relacional con el trabajo que los pioneros de Internet han hecho para abordar los requisitos de las aplicaciones modernas.

Nexus Architecture

 

Las bases de datos relacionales han servido aplicaciones de manera confiable durante muchos años y ofrecen características que siguen siendo críticas hoy en día a medida que los desarrolladores crean la próxima generación de aplicaciones:

Lenguaje de consulta expresivo e índices secundarios

Los usuarios deben poder acceder y manipular sus datos de formas sofisticadas para soportar aplicaciones tanto operativas como analíticas. Los índices desempeñan un papel fundamental para proporcionar un acceso eficiente a los datos, respaldados de forma nativa por la base de datos en lugar de mantenerse en el código de la aplicación.

  • Fuerte consistencia

Las aplicaciones deberían poder leer inmediatamente lo que se ha escrito en la base de datos. Es mucho más complejo crear aplicaciones alrededor de un modelo eventualmente consistente, imponiendo un trabajo significativo en el desarrollador, incluso para los equipos de ingeniería más sofisticados.

  • Gestión e integraciones empresariales

Las bases de datos son solo una pieza de infraestructura de aplicaciones y deben adaptarse perfectamente a la pila de TI de la empresa.

Las organizaciones necesitan una base de datos que se pueda asegurar, monitorear, automatizar e integrar con su infraestructura tecnológica, procesos y personal existentes, incluidos los equipos de operaciones, los DBA y los analistas de datos.

Sin embargo, las aplicaciones modernas imponen requisitos que las bases de datos relacionales no abordan, y esto ha impulsado el desarrollo de bases de datos NoSQL que ofrecen:

  • Modelo de datos flexible

Las bases de datos NoSQL surgieron para abordar los requisitos de los datos que vemos dominando las aplicaciones modernas. Ya sea documento, gráfico, valor clave o columna ancha, todos ofrecen un modelo de datos flexible, lo que facilita el almacenamiento y la combinación de datos de cualquier estructura y permite la modificación dinámica del esquema sin tiempo de inactividad o impacto en el rendimiento.

  • Escalabilidad y rendimiento

Todas las bases de datos NoSQL se crearon con un enfoque en la escalabilidad, por lo que todas incluyen alguna forma de particionamiento o particionamiento.

Esto permite que la base de datos se escale en hardware comercial implementado en las instalaciones o en la nube, lo que permite un crecimiento casi ilimitado con un mayor rendimiento y una menor latencia que las bases de datos relacionales.

  • Implementaciones globales siempre activas

Las bases de datos NoSQL están diseñadas para sistemas de alta disponibilidad que proporcionan una experiencia consistente y de alta calidad para usuarios de todo el mundo.

Están diseñados para ejecutarse en muchos nodos, incluida la replicación para sincronizar automáticamente los datos en servidores, bastidores y centros de datos.

Al ofrecer estas innovaciones, los sistemas NoSQL han sacrificado las capacidades críticas que las personas esperan y dependen de las bases de datos relacionales. MongoDB ofrece un enfoque diferente.

Con su arquitectura Nexus, MongoDB es la única base de datos que aprovecha las innovaciones de NoSQL mientras mantiene la base de las bases de datos relacionales.

¿Que sigue?

¿Quieres profundizar en la tecnología de MongoDB? Luego, siga leyendo para conocer los aspectos más destacados o descargue nuestra Guía de Arquitectura detallada.

  • Modelo de datos MongoDB
  • Modelo de consulta MongoDB
  • Gestión de datos MongoDB
  • MongoDB Consistencia y Disponibilidad
  • Ejecutando MongoDB
  • Atlas MongoDB: base de datos como servicio
  • Ahorro de costes

Modelo de datos MongoDB

Arquitectura multimodelo MongoDB

MongoDB permite únicamente a los usuarios mezclar y combinar múltiples motores de almacenamiento dentro de una sola implementación.

Esta flexibilidad proporciona un enfoque más simple y confiable para satisfacer las diversas necesidades de aplicación de datos.

Tradicionalmente, las tecnologías de bases de datos múltiples tendrían que gestionarse para satisfacer estas necesidades, con un código de integración complejo y personalizado para mover los datos entre las tecnologías y garantizar un acceso seguro y consistente.

Con la arquitectura de almacenamiento flexible de MongoDB, la base de datos administra automáticamente el movimiento de datos entre las tecnologías del motor de almacenamiento mediante la replicación nativa.

  • El modelo de datos de documentos flexibles de MongoDB presenta un superconjunto de otros modelos de bases de datos. Permite que los datos se representen como pares clave-valor simples y estructuras planas, como tablas, a través de documentos y objetos ricos con matrices y subdocumentos profundamente anidados.
  • Con un lenguaje de consulta expresivo, los documentos pueden consultarse de muchas maneras, desde búsquedas simples hasta la creación de canales de procesamiento sofisticados para análisis de datos y transformaciones, pasando por búsquedas facetadas, uniones y recorridos de gráficos.
  • Con una arquitectura de almacenamiento flexible, los propietarios de aplicaciones pueden implementar motores de almacenamiento optimizados para diferentes cargas de trabajo y requisitos operativos.

El diseño multimodelo de MongoDB reduce significativamente la complejidad operativa y del desarrollador en comparación con la ejecución de múltiples tecnologías de bases de datos distintas para satisfacer las diferentes necesidades de las aplicaciones.

Los usuarios pueden aprovechar el mismo lenguaje de consulta MongoDB, modelo de datos, escalado, seguridad y herramientas operativas en diferentes partes de su aplicación, cada una con el motor de almacenamiento óptimo.

Data as Documents

MongoDB almacena datos en una representación binaria llamada BSON (Binary JSON). La codificación BSON extiende la popular representación JSON (JavaScript Object Notation) para incluir tipos adicionales como int, long, date, coma flotante y decimal128.

Los documentos BSON contienen uno o más campos, y cada campo contiene un valor de un tipo de datos específico, que incluye matrices, datos binarios y subdocumentos.

Los documentos MongoDB BSON están estrechamente alineados con la estructura de los objetos en el lenguaje de programación. Esto hace que sea más simple y rápido para los desarrolladores modelar cómo los datos en la aplicación se asignarán a los datos almacenados en la base de datos.

Los documentos de MongoDB tienden a tener todos los datos para un registro dado en un solo documento, mientras que en una base de datos relacional la información para un registro dado generalmente se extiende a través de muchas tablas.

Por ejemplo, considere el modelo de datos para una aplicación de blogs. Usando una base de datos relacional, el modelo de datos comprendería múltiples tablas como Categorías, Etiquetas, Usuarios, Comentarios y Artículos.

En MongoDB, los datos pueden modelarse como dos colecciones, una para usuarios y otra para artículos. Cada documento del blog puede haber múltiples comentarios, múltiples etiquetas y múltiples categorías, cada una expresada como una matriz incrustada.

Datos como documentos: más simple para desarrolladores, más rápido para usuarios.

Single Document Example

Como resultado del modelo de documento, los datos en MongoDB están más localizados, lo que reduce drásticamente la necesidad de UNIRSE a tablas separadas.

El resultado es un rendimiento y escalabilidad dramáticamente más altos en todo el hardware básico, ya que una sola lectura de la base de datos puede recuperar todo el documento.

A diferencia de muchas bases de datos NoSQL, los usuarios no necesitan renunciar por completo a JOIN.

Para una flexibilidad adicional, MongoDB proporciona la capacidad de realizar uniones equi y no equi que combinan datos de múltiples colecciones, generalmente al ejecutar consultas analíticas contra datos operativos en vivo.

Esquema Dinámico MongoDB con Control de Gobierno de Datos

Los documentos de MongoDB pueden variar en estructura. Por ejemplo, todos los documentos que describen a los clientes pueden contener la identificación del cliente y la última fecha en que nos compraron productos o servicios.

Pero solo algunos de estos documentos pueden contener el identificador de redes sociales del usuario o los datos de ubicación de nuestra aplicación móvil.

Los campos pueden variar de un documento a otro; no es necesario declarar la estructura de los documentos al sistema; los documentos se describen por sí mismos.

Si se necesita agregar un nuevo campo a un documento, entonces el campo se puede crear sin afectar a todos los demás documentos del sistema, sin actualizar un catálogo central del sistema y sin desconectar el sistema.

MongoDB permite a los desarrolladores diseñar y evolucionar el esquema a través de un enfoque iterativo y ágil, mientras se aplica la gobernanza de datos.

Los desarrolladores pueden comenzar a escribir código y conservar los objetos a medida que se crean. Y cuando los desarrolladores agregan más funciones, MongoDB continúa almacenando los objetos actualizados sin la necesidad de realizar costosas operaciones ALTER_TABLE, o peor aún, tener que rediseñar el esquema desde cero.

Si bien el esquema flexible de MongoDB es una característica poderosa para muchos usuarios, hay situaciones en las que se requieren garantías estrictas sobre la estructura de datos y el contenido del esquema.

A diferencia de las bases de datos NoSQL que empujan la aplicación de estos controles de nuevo al código de la aplicación, MongoDB proporciona validación de esquema dentro de la base de datos a través de la sintaxis derivada del estándar IETF JSON Schema.

Mediante la validación de esquema, los equipos de DevOps y DBA pueden definir una estructura de documento prescrita para cada colección, que puede rechazar cualquier documento que no se ajuste a ella.

Los administradores tienen la flexibilidad de ajustar la validación del esquema de acuerdo con el caso de uso. Por ejemplo, si un documento no cumple con la estructura definida, puede ser rechazado o aún escrito en la colección mientras se registra un mensaje de advertencia.

La estructura puede imponerse solo en un subconjunto de campos, por ejemplo, exigir a un cliente válido un nombre y una dirección, mientras que otros campos pueden ser de forma libre, como el identificador de redes sociales y el número de teléfono celular.

Y, por supuesto, la validación se puede desactivar por completo, lo que permite una flexibilidad de esquema completa, que es especialmente útil durante la fase de desarrollo de la aplicación.

Mediante la validación de esquema, los DBA pueden aplicar estándares de gobierno de datos a su esquema, mientras que los desarrolladores mantienen los beneficios de un modelo de documento flexible.

¿Cómo se compara el modelo de datos MongoDB con bases de datos relacionales y almacenes de valores clave?

Eche un vistazo a la tabla a continuación:

  MongoDB Relational Key-value
Rich Data Model Yes No No
Dynamic Schema Yes No Yes
Schema Validation Yes Yes No
Typed Data Yes Yes No
Data Locality Yes No Yes
Field Updates Yes Yes No
Easy for Programmers Yes No Not when modeling complex data structures
MongoDB Compass Query Builder

 

Modelo de consulta MongoDB y visualización de datos

Esta sección cubre 6 temas: controladores idiomáticos, herramientas, tipos de consulta, visualización de datos, indexación y flujos de cambios

Conductores idiomáticos

MongoDB proporciona controladores nativos para todos los lenguajes y marcos de programación populares para que el desarrollo sea natural.
Los controladores compatibles incluyen Java, Javascript, .NET, Python, Perl, PHP, Scala y otros, además de más de 30 controladores desarrollados por la comunidad.
Los controladores MongoDB están diseñados para ser idiomáticos para el idioma dado.

Con el modelo de datos de documentos intuitivo, el esquema dinámico y los controladores idiomáticos, puede crear aplicaciones y llegar al mercado más rápido con MongoDB.

Herramientas para interactuar con la base de datos

MongoDB ofrece a los desarrolladores y administradores una gama de herramientas para interactuar con la base de datos, independientemente de los controladores.

El shell mongo es un shell JavaScript rico e interactivo que se incluye con todas las distribuciones MongoDB. Además, MongoDB Compass es una GUI sofisticada e intuitiva para MongoDB.

Al ofrecer una rica exploración y administración de esquemas, Compass permite que los DBA modifiquen documentos, creen reglas de validación de datos y optimicen eficientemente el rendimiento de las consultas visualizando planes explicativos y el uso de índices.

Se pueden construir y ejecutar consultas sofisticadas simplemente seleccionando elementos del documento desde la interfaz de usuario, con los resultados vistos como un conjunto de documentos JSON o en una vista de tabla.

Todas estas tareas pueden llevarse a cabo desde una interfaz de apuntar y hacer clic, y todas con cero conocimiento del lenguaje de consulta de MongoDB.

Tipos de Querys

A diferencia de las bases de datos NoSQL, MongoDB no se limita a operaciones simples de valor-clave. Los desarrolladores pueden crear aplicaciones ricas utilizando consultas complejas, agregaciones e índices secundarios que desbloquean el valor en datos polimórficos y multiestructurados.

Un elemento clave de esta flexibilidad es el soporte de MongoDB para muchos tipos de consultas.

Una consulta puede devolver un documento, un subconjunto de campos específicos dentro del documento o agregaciones complejas y transformación de muchos documentos:
  • Key-value queries devuelven resultados basados ​​en cualquier campo del documento, a menudo la clave principal.
  • Range queries devuelven resultados basados ​​en valores definidos como desigualdades (por ejemplo, mayor que, menor o igual que, entre).
  • Geospatial queries devuelven resultados basados ​​en criterios de proximidad, intersección e inclusión según lo especificado por un punto, línea, círculo o polígono.
  • Search queries devuelven los resultados en orden de relevancia y en grupos facetados, basados ​​en argumentos de texto que utilizan operadores booleanos (por ejemplo, `AND`,` OR`, `NOT`), y a través del agrupamiento, agrupamiento y conteo de los resultados de la consulta. Con soporte para intercalaciones, la comparación de datos y el orden de clasificación se pueden definir para más de 100 idiomas y configuraciones regionales diferentes.
  • Aggregation Pipeline, las consultas de canalización de agregación devuelven agregaciones y transformaciones de documentos y valores devueltos por la consulta (por ejemplo, conteo, mínimo, máximo, promedio, desviación estándar, similar a una instrucción SQL GROUP BY).
  • JOINs and graph traversals A través de la etapa de búsqueda $ de la canalización de agregación, los documentos de colecciones separadas se pueden combinar mediante operaciones JOIN. $ GraphLookup trae procesamiento gráfico nativo dentro de MongoDB, permitiendo recorridos eficientes a través de árboles, gráficos y datos jerárquicos para descubrir patrones y superficies de conexiones previamente no identificadas.
Además, el conector MongoDB para Apache Spark expone las bibliotecas Scala, Java, Python y R de Spark.
Los datos de MongoDB se materializan como DataFrames y Datasets para el análisis a través de aprendizaje automático, gráficos, transmisión y API de SQL.

Data Visualization

Al usar el Conector MongoDB para BI, incluido con MongoDB Enterprise Advanced, los datos de aplicaciones modernas se pueden analizar fácilmente con plataformas de análisis y BI basadas en SQL estándar de la industria.
Los analistas de negocios y los científicos de datos pueden analizar sin problemas los datos semi y no estructurados administrados en MongoDB. Junto con los datos tradicionales en sus bases de datos SQL utilizando las mismas herramientas de BI implementadas en millones de empresas.
MongoDB Connector for BI

Indexing

Los índices son un mecanismo crucial para optimizar el rendimiento y la escalabilidad del sistema al tiempo que proporcionan un acceso flexible a sus datos. MongoDB incluye soporte para muchos tipos de índices secundarios que se pueden declarar en cualquier campo del documento, incluidos los campos dentro de las matrices:

  • Puede definir índices compuestos, únicos, de matriz, parciales, TTL, geoespaciales, dispersos, hash y de texto para optimizar para múltiples patrones de consulta, tipos de datos multiestructurados y restricciones.
  • La intersección de índice permite a MongoDB usar más de un índice para optimizar una consulta ad-hoc en tiempo de ejecución.

Crear canalizaciones de datos reactivos con flujos de cambios

Las transmisiones de cambios permiten a los desarrolladores crear aplicaciones reactivas, en tiempo real, web, móviles e IoT que pueden ver, filtrar y actuar sobre los cambios de datos a medida que ocurren en la base de datos.

Las transmisiones de cambios permiten el movimiento continuo de datos a través de bases de datos distribuidas y estados de aplicaciones. Lo que simplifica la transmisión de cambios de datos y desencadena acciones donde sea necesario, utilizando un estilo de programación totalmente reactivo.

Los casos de uso habilitados por las corrientes de cambio de MongoDB incluyen:
  • Impulsando las aplicaciones comerciales que deben actualizarse en tiempo real a medida que los precios de las acciones suben y bajan.
  • Marcadores refrescantes en juegos multijugador.
  • Actualización de paneles, sistemas analíticos y motores de búsqueda a medida que cambian los datos operativos.
  • Crear potentes canales de datos de IoT que pueden reaccionar cada vez que cambia el estado de los objetos físicos.
  • Sincronizar actualizaciones en arquitecturas de microservicios y sin servidor activando una llamada API cuando se inserta o modifica un documento.
Las transmisiones de cambios ofrecen una serie de propiedades clave:
  • Flexible: los usuarios pueden registrarse para recibir solo los deltas individuales de los cambios en un documento, o recibir una copia del documento completo.
  • Consistente: Las secuencias de cambios constantes aseguran un orden total de las notificaciones entre fragmentos, garantizando que se mantendrá el orden de los cambios.
  • Seguro: Los usuarios seguros pueden crear flujos de cambios solo en colecciones a las que se les ha otorgado acceso de lectura.
    Las notificaciones confiables solo se envían en operaciones de escritura comprometidas mayoritarias y son duraderas cuando los nodos o la red fallan.
  • Reanudable: cuando los nodos se recuperan después de una falla, las secuencias de cambio se pueden reanudar automáticamente.
  • Familiar: la sintaxis de API aprovecha los controladores MongoDB establecidos y el lenguaje de consulta.
  • Altamente concurrente: se pueden abrir hasta 1,000 flujos de cambio en cada instancia de MongoDB con una degradación mínima del rendimiento.

¿Cómo se compara el modelo de indexación y consulta de MongoDB con bases de datos relacionales y almacenes de valores clave?

Eche un vistazo a la tabla a continuación:
MongoDB Relational Key-value
Key-value Queries Yes Yes Yes
Secondary Indexes Yes Yes No
Index Intersection Yes Yes No
Range Queries Yes Yes No
Geospatial Yes Expensive Add-on No
Faceted Search Yes No No
Aggregation and Transformation Yes Yes No
Idiomatic Drivers Yes No No
Equi and Nonequi JOINs ($Lookup) Yes Yes No
Graph Processing ($graphLookup) Yes No No
Change Streams Yes Rarely Rarely

 

Para obtener más información sobre las diferencias en los modelos de datos, descargue nuestra Base de datos relacional a la Guía de migración de MongoDB.

 

Gestión de datos MongoDB

Fragmentación automática (auto sharding) para escalabilidad lineal

MongoDB proporciona escalado horizontal para bases de datos en hardware básico de bajo costo utilizando una técnica llamada fragmentación, que es transparente para las aplicaciones.

Sharding distribuye datos a través de múltiples particiones físicas llamadas fragmentos. Sharding permite que las implementaciones de MongoDB aborden las limitaciones de hardware de un solo servidor. Como los cuellos de botella en RAM o E / S de disco, sin agregar complejidad a la aplicación.

MongoDB equilibra automáticamente los datos en el clúster a medida que los datos crecen o el tamaño del clúster aumenta o disminuye.

Sharding es transparente para las aplicaciones; si hay uno o cien fragmentos, el código de la aplicación para consultar MongoDB es el mismo.

Horizontal Scalability Illustration

A diferencia de las bases de datos relacionales, el fragmentación es automático y está integrado en la base de datos.

Los desarrolladores no enfrentan la complejidad de construir lógica de fragmentación en su código de aplicación, que luego debe actualizarse a medida que se migran los fragmentos.

Los equipos de operaciones no necesitan implementar software de agrupamiento adicional para administrar la distribución de datos y procesos.

A diferencia de otras bases de datos distribuidas, existen múltiples políticas de particionamiento que permiten a los desarrolladores y administradores distribuir datos a través de un clúster de acuerdo con patrones de consulta o localidad de datos.

Como resultado, MongoDB ofrece una escalabilidad mucho mayor en un conjunto diverso de cargas de trabajo:
  • Fragmentación de rango. Los documentos se dividen en fragmentos de acuerdo con el valor de la clave de fragmento. Es probable que los documentos con valores de clave de fragmento cercanos entre sí se ubiquen en el mismo fragmento. Este enfoque es muy adecuado para aplicaciones que necesitan optimizar consultas basadas en rango.
  • Hash Sharding. Los documentos se distribuyen de acuerdo con un hash MD5 del valor de la clave de fragmento. Este enfoque garantiza una distribución uniforme de escrituras entre fragmentos, pero es menos óptimo para consultas basadas en rango.
  • Sharding de zona. Proporciona la capacidad para que los DBA y los equipos de operaciones definan reglas específicas que rigen la colocación de datos en un clúster fragmentado. Las zonas se adaptan a una variedad de escenarios de implementación, por ejemplo, ubicar datos por región geográfica. Por configuración de hardware para arquitecturas de almacenamiento en niveles o por función de aplicación. Los administradores pueden refinar continuamente las reglas de ubicación de datos modificando los rangos de clave de fragmento, y MongoDB migrará automáticamente los datos a su nueva zona.
¿Cómo se comparan las capacidades de escalado de MongoDB con las bases de datos relacionales y los almacenes de valores clave?
Eche un vistazo a la tabla a continuación:
MongoDB Relational Key-value
Scale-out Commodity Hardware Yes No Yes
Automatic Sharding Yes No Yes
Shard by Hash Yes Manual Yes
Shard by Range Yes Manual No
Shard by Zone Yes Manual No
Automatic Data Rebalancing Yes Manual Limited

 

MongoDB escala increiblemente. Ya sea que esté fragmentando para escalar el volumen de datos, el rendimiento o las operaciones del centro de datos cruzados, puede hacerlo con MongoDB.

Arquitectura de almacenamiento enchufable para flexibilidad de aplicaciones

Con MongoDB, las organizaciones pueden abordar diversas necesidades de aplicaciones, recursos de hardware y diseños de implementación con una sola tecnología de base de datos.

Mediante el uso de una arquitectura de almacenamiento conectable, MongoDB puede ampliarse con nuevas capacidades y configurarse para un uso óptimo de arquitecturas de hardware específicas.

Este enfoque reduce significativamente la complejidad operativa y del desarrollador en comparación con la ejecución de múltiples bases de datos para impulsar aplicaciones con requisitos únicos.

Los usuarios pueden aprovechar el mismo lenguaje de consulta MongoDB, modelo de datos, escalado, seguridad y herramientas operativas en diferentes aplicaciones, cada una impulsada por diferentes motores de almacenamiento MongoDB conectables.

Application Architecture Illustration

MongoDB se entrega con cuatro motores de almacenamiento compatibles, todos los cuales pueden coexistir dentro de un solo conjunto de réplicas MongoDB.

Esto facilita la evaluación y la migración entre ellos, y la optimización para los requisitos específicos de la aplicación.

Por ejemplo, combinando el motor en memoria para operaciones de latencia ultra baja con un motor basado en disco para la persistencia. Los motores de almacenamiento compatibles incluyen:

  • El motor de almacenamiento predeterminado de WiredTiger. Para muchas aplicaciones, el control granular de concurrencia de WiredTiger y la compresión nativa proporcionarán el mejor rendimiento general y la eficiencia de almacenamiento para la gama más amplia de aplicaciones.
  • El motor de almacenamiento cifrado que protege los datos altamente confidenciales, sin el rendimiento o la sobrecarga de administración del cifrado del sistema de archivos separado. (Requiere MongoDB Enterprise Advanced)
  • El motor de almacenamiento en memoria que ofrece un rendimiento extremo junto con análisis en tiempo real para las aplicaciones más exigentes y sensibles a la latencia. (Requiere MongoDB Enterprise Advanced)
  • El motor MMAPv1, una versión mejorada del motor de almacenamiento original utilizado en versiones anteriores a 3.x MongoDB.

Compresión end to end

Los motores de almacenamiento WiredTiger y Encrypted admiten compresión nativa, reduciendo la huella de almacenamiento físico hasta en un 80%.

Además del espacio de almacenamiento reducido, la compresión permite una escalabilidad de E / S de almacenamiento mucho mayor ya que se leen menos bits del disco.

Como una base de datos distribuida, MongoDB se basa en un transporte de red eficiente durante el enrutamiento de consultas y la replicación entre nodos.

Además del almacenamiento, MongoDB también ofrece compresión del protocolo de conexión de los clientes a la base de datos y del tráfico dentro del clúster.

El tráfico de red se puede comprimir hasta en un 80%, lo que brinda importantes ganancias de rendimiento a los entornos de red ocupados y reduce los costos de conectividad. Especialmente en entornos de nube pública, o al conectar activos remotos como dispositivos IoT y puertas de enlace.

 

MongoDB Consistencia y Disponibilidad

Modelo de transacción

MongoDB proporciona propiedades ACID a nivel de documento. Se pueden escribir uno o más campos en una sola operación, incluidas las actualizaciones de múltiples subdocumentos y elementos de una matriz.

Las garantías ACID proporcionadas por MongoDB aseguran un aislamiento completo a medida que se actualiza un documento. Cualquier error hace que la operación retroceda para que los clientes reciban una vista coherente del documento.

Los desarrolladores pueden usar las preocupaciones de escritura de MongoDB para configurar operaciones para comprometerse con la aplicación solo después de que se hayan vaciado al archivo de diario en el disco. Este es el mismo modelo utilizado por muchas bases de datos relacionales tradicionales para proporcionar garantías de durabilidad.

Como sistema distribuido, MongoDB presenta una flexibilidad adicional que ayuda a los usuarios a lograr sus SLA de disponibilidad deseados. Cada consulta puede especificar la preocupación de escritura apropiada, como escribir en al menos dos réplicas en un centro de datos y una réplica en un segundo centro de datos.

Para una disponibilidad de escritura siempre activa, los controladores MongoDB reintentan automáticamente las operaciones de escritura en caso de fallas transitorias de la red o una elección primaria, mientras que el servidor MongoDB aplica la semántica de procesamiento exactamente una vez.

Las escrituras recuperables reducen la necesidad de que los desarrolladores implementen código personalizado del lado del cliente, en lugar de que la base de datos maneje excepciones comunes para ellos.

Conjuntos de réplica

MongoDB mantiene múltiples copias de datos llamados conjuntos de réplicas utilizando replicación nativa. Un conjunto de réplicas es un fragmento de recuperación automática que ayuda a prevenir el tiempo de inactividad de la base de datos.

La conmutación por error de réplica está totalmente automatizada, lo que elimina la necesidad de que los administradores intervengan manualmente.

El número de réplicas en un conjunto de réplicas MongoDB es configurable: un mayor número de réplicas proporciona una mayor disponibilidad de datos y protección contra el tiempo de inactividad de la base de datos (por ejemplo, en caso de fallas múltiples de la máquina, fallas del bastidor, fallas del centro de datos o particiones de red).

Opcionalmente, las operaciones se pueden configurar para escribir en múltiples réplicas antes de regresar a la aplicación, proporcionando así una funcionalidad similar a la replicación sincrónica.

 

Replica Sets Illustration
Los conjuntos de réplicas MongoDB ofrecen tolerancia a fallas y recuperación ante desastres. La conciencia del centro de datos múltiples permite la distribución de datos global y la separación entre cargas de trabajo operativas y analíticas.
Los conjuntos de réplicas también brindan flexibilidad operativa al proporcionar una forma de actualizar el hardware y el software sin requerir que la base de datos se desconecte.

Rendimiento en memoria con capacidad en disco

Con el motor de almacenamiento en memoria, los usuarios de MongoDB pueden darse cuenta de las ventajas de rendimiento de la computación en memoria para cargas de trabajo de análisis operacionales y en tiempo real.
El motor de almacenamiento en memoria ofrece el rendimiento extremo y la latencia predecible exigida por las aplicaciones con mayor rendimiento en AdTech, finanzas, telecomunicaciones, IoT, comercio electrónico y más, eliminando la necesidad de capas de almacenamiento en caché separadas.

Los conjuntos de réplicas MongoDB permiten implementaciones de bases de datos híbridas en memoria y en disco. Los datos administrados por el motor In-Memory pueden procesarse y analizarse en tiempo real. Antes de replicarse automáticamente en instancias de MongoDB configuradas con uno de los motores de almacenamiento persistentes basados en disco.
Los largos ciclos ETL son típicos cuando se evitan mover datos entre diferentes bases de datos, y los usuarios ya no tienen que cambiar la capacidad escalable o las garantías de durabilidad que ofrece el almacenamiento en disco.
Para obtener más información, descargue nuestro detallado Architecture Guide.

Seguridad

La frecuencia y la gravedad de las violaciones de datos continúan aumentando. Los analistas de la industria predicen que el cibercrimen le costará a la economía global $ 6 billones anuales para 2021.

Las organizaciones enfrentan una avalancha de nuevas clases de amenazas y actores de amenazas con phishing, ransomware y robo de propiedad intelectual que crecen más del 50% año tras año, y la infraestructura clave está sujeta a una mayor interrupción.

Con las bases de datos que almacenan los activos de información más importantes de una organización, protegerlos es lo más importante para los administradores.

MongoDB Enterprise Advanced presenta amplias capacidades para defender, detectar y controlar el acceso a los datos.

Autenticación.

Simplificando el control de acceso a la base de datos, MongoDB ofrece integración con mecanismos de seguridad externos que incluyen LDAP, Windows Active Directory, Kerberos y certificados x.509 PKI.

Autorización.

Los roles definidos por el usuario permiten a los administradores configurar permisos granulares para un usuario o una aplicación en función de los privilegios que necesitan para hacer su trabajo.

Estos se pueden definir en MongoDB o centralmente dentro de un servidor LDAP. Además, los administradores pueden definir vistas que expongan solo un subconjunto de datos de una colección subyacente. Es decir, una vista que filtre u oculte campos específicos, como la Información de identificación personal (PII) de los datos del cliente o registros de salud.

Revisión de cuentas.

Para el cumplimiento normativo, los administradores de seguridad pueden usar el registro de auditoría nativo de MongoDB para rastrear el acceso y las operaciones realizadas en la base de datos.

Cifrado

Los datos de MongoDB se pueden cifrar en la red, en el disco y en las copias de seguridad. Con el motor de almacenamiento cifrado, la protección de datos en reposo es una característica integral dentro de la base de datos.

Al encriptar de manera nativa los archivos de la base de datos en el disco, los administradores eliminan la sobrecarga de gestión y rendimiento de los mecanismos de encriptación externos.

Solo el personal que tiene las credenciales de autorización de base de datos adecuadas puede acceder a los datos cifrados, proporcionando niveles adicionales de defensa.

Para obtener más información, descargue nuestra Arquitectura de referencia de seguridad MongoDB.

Running MongoDB

Las organizaciones desean la flexibilidad para ejecutar aplicaciones en cualquier lugar.

MongoDB proporciona una independencia completa de la plataforma: implementaciones locales, híbridas o como un servicio totalmente administrado en la nube. Con la libertad de moverse entre cada plataforma a medida que cambian los requisitos comerciales.

MongoDB Atlas: Database as a Service For MongoDB

MongoDB Atlas es un servicio de base de datos en la nube que facilita la implementación, el funcionamiento y la escala de MongoDB en la nube al automatizar tareas de administración que requieren mucho tiempo. Como la configuración de la base de datos, la implementación de seguridad, el escalado, la aplicación de parches y más.

Está disponible a pedido a través de un modelo de pago por uso y se factura por hora.

Es fácil comenzar: use una GUI simple para seleccionar el proveedor de nube pública, la región, el tamaño de la instancia y las características que necesita. MongoDB Atlas proporciona:

  • Funciones de seguridad para proteger sus datos, con control de acceso preciso y cifrado de extremo a extremo.
  • Replicación integrada para disponibilidad siempre activa. La replicación entre regiones dentro de una nube pública se puede habilitar para ayudar a tolerar el fallo de una región de nube completa
  • Copias de seguridad completamente administradas, continuas y consistentes con recuperación en un punto en el tiempo para proteger contra la corrupción de datos y la capacidad de consultar copias de seguridad en el lugar sin restauraciones completas
  • Monitoreo detallado y alertas personalizables para una visibilidad completa del rendimiento
  • Escala con un clic hacia arriba, hacia afuera o hacia abajo según demanda. MongoDB Atlas puede proporcionar capacidad de almacenamiento adicional según sea necesario sin intervención manual
  • Actualizaciones automatizadas de parches y un solo clic para nuevas versiones principales de la base de datos, lo que le permite aprovechar las últimas y mejores características de MongoDB
  • Migración en vivo para mover sus clústeres MongoDB autogestionados al servicio Atlas con un tiempo de inactividad mínimo

MongoDB Atlas se puede utilizar para todo, desde una prueba de concepto rápida, hasta entornos de prueba / control de calidad, hasta aplicaciones de producción. La experiencia del usuario en MongoDB Atlas, Cloud Manager y Ops Manager es consistente, lo que garantiza que la interrupción sea mínima si decide administrar MongoDB usted mismo y migrar a su propia infraestructura.

Creado y administrado por el mismo equipo que diseña la base de datos, MongoDB Atlas es la mejor manera de ejecutar MongoDB en la nube.

Administrar MongoDB en su propia infraestructura

Ops Manager es la forma más sencilla de ejecutar MongoDB en su propia infraestructura, lo que facilita que los equipos de operaciones implementen, supervisen, respalden y escalen MongoDB.

Muchas de las capacidades de Ops Manager también están disponibles en MongoDB Cloud Manager, una herramienta alojada por MongoDB en la nube.

Ops Manager y Cloud Manager proporcionan un conjunto integrado de aplicaciones que administran el ciclo de vida completo de la base de datos:
  • Implementación y administración automatizadas con un solo clic y actualizaciones de tiempo de inactividad cero
  • Monitoreo proactivo que proporciona visibilidad del rendimiento de MongoDB, historial y alertas automáticas en más de 100 métricas del sistema
  • Recuperación ante desastres con respaldo continuo, incremental y recuperación en un punto en el tiempo, incluida la restauración de grupos completos en ejecución desde sus archivos de respaldo.

Cada uno de estos se explica con más detalle a continuación.

Implementación y actualizaciones

Ops Manager ayuda a los equipos de operaciones a implementar MongoDB a través de un potente portal de autoservicio o invocando la API RESTful de Ops Manager desde las herramientas empresariales existentes.
La implementación puede ser desde una sola instancia hasta un conjunto de réplicas o un clúster fragmentado. Ejecutándose en la nube pública o en su centro de datos privado. Ops Manager permite una implementación rápida en cualquier topología de hosting.
Ops Manager Deployment Illustration

Además de la implementación inicial, Ops Manager permite escalar dinámicamente la capacidad al agregar fragmentos y miembros del conjunto de réplicas a los sistemas en ejecución.

Otras tareas de mantenimiento, como actualizaciones, creación de índices en conjuntos de réplicas o cambio de tamaño del registro de operaciones, se pueden realizar con unos pocos clics y cero tiempo de inactividad.

Monitoring

Ops Manager ofrece a los desarrolladores, administradores y equipos de operaciones visibilidad en el servicio MongoDB.

Con gráficos, paneles personalizados y alertas automáticas, Ops Manager rastrea más de 100 métricas clave de estado de la base de datos y sistemas, incluidos contadores de operaciones, utilización de memoria y CPU, estado de replicación, conexiones abiertas, colas y cualquier estado de nodo.

Las métricas se informan de forma segura a Ops Manager, donde se procesan, agregan, alertan y visualizan en un navegador, lo que permite a los administradores determinar fácilmente el estado de MongoDB en tiempo real.

El rendimiento histórico puede revisarse para crear líneas de base operativas y para apoyar la planificación de la capacidad. El Asesor de rendimiento resalta continuamente las consultas de ejecución lenta y proporciona recomendaciones de índices inteligentes para mejorar el rendimiento.

El Explorador de datos permite a los equipos de operaciones examinar el esquema de la base de datos ejecutando consultas para revisar la estructura del documento, ver los metadatos de la colección e inspeccionar las estadísticas de uso del índice, directamente dentro de la interfaz de usuario de Ops Manager.

La integración con las herramientas de monitoreo existentes también es sencilla a través de la API RESTful de Ops Manager y Cloud Manager, y con integraciones empaquetadas a plataformas líderes de Application Performance Management (APM) como New Relic.

Esta integración permite que el estado de MongoDB se consolide y monitoree junto con el resto de la infraestructura de su aplicación, todo desde un solo panel de vidrio.

Ops Manager proporciona visibilidad en tiempo real e histórica de MongoDB con integración en herramientas operativas

Ops Manager Monitoring Illustration

Las alertas permiten la gestión proactiva de MongoDB

Recuperación de desastres

Es necesaria una estrategia de respaldo y recuperación para proteger los datos críticos de su misión contra fallas catastróficas, como un incendio o inundación en su centro de datos, o un error humano. Como la corrupción involuntaria debido a errores en el código de la aplicación o la eliminación accidental de datos.

Con una estrategia de respaldo y recuperación, los administradores pueden restaurar las operaciones comerciales con una pérdida mínima de datos y la organización puede cumplir con los requisitos reglamentarios y de cumplimiento.

Ops Manager y Cloud Manager proporcionan copias de seguridad incrementales continuas, recuperación en el momento de conjuntos de réplicas e instantáneas consistentes de clústeres fragmentados.

Ops Manager crea instantáneas de los datos de MongoDB y retiene varias copias en función de una política de retención definida por el usuario.

Puede restaurar exactamente el momento que necesita, de forma rápida y segura. Las restauraciones controladas por automatización permiten que un clúster completamente configurado se vuelva a implementar directamente desde las instantáneas de la base de datos con solo unos pocos clics.

Las copias de seguridad consultables permiten restauraciones parciales de datos seleccionados y la capacidad de consultar un archivo de copia de seguridad en el lugar, sin tener que restaurarlo.

Ahora los usuarios pueden consultar el estado histórico de la base de datos para rastrear los datos y las modificaciones del esquema, a menudo una demanda de informes regulatorios.

La consulta directa de copias de seguridad también permite a los administradores identificar el mejor momento para restaurar un sistema comparando datos de múltiples instantáneas, mejorando así tanto RTO como RPO.

¿Cómo se comparan las capacidades operativas de MongoDB con las bases de datos relacionales y los almacenes de valores clave?

Eche un vistazo a la tabla a continuación:
MongoDB Relational Key-value
Self Healing Recovery

with Automatic Failover

Yes Often Requires Additional Clustering Software No: Manual Failover Often Recommended
Separate Caching

Layer Required

No Often Often
Data Center

Awareness

Yes Expensive Add-on No
Automatic

Provisioning

Yes Yes No
Continuous Backup

& Point in Time Recovery

Yes Yes No
Advanced Security Yes Yes No
API Integration with Systems Management Frameworks Yes Yes No

Integrando MongoDB con soluciones de monitoreo externo

La API de Ops Manager proporciona acceso programático a los datos clave de monitoreo y acceso a las funciones de Ops Manager mediante herramientas de administración externas.

Además de Ops Manager, MongoDB Enterprise puede informar la información del sistema a las trampas SNMP. Admitiendo la recopilación y agregación de datos centralizados a través de soluciones de monitoreo externo.

Ahorro de costes

MongoDB can be 1/10th the cost to build and run, compared to a relational database. The cost advantage is driven by:

  • MongoDB’s increased ease of use and developer flexibility, which reduces the cost of developing and evolving an application over its lifecycle
  • MongoDB’s ability to scale on commodity server hardware and storage, and in the cloud
  • MongoDB’s substantially lower prices for on-demand cloud services and commercial subscription packages with 24×7 support

Furthermore, MongoDB’s technical and cost-related benefits translate to topline advantages as well, such as faster time-to-market and time-to-scale.

To learn more, download our TCO comparison of Oracle and MongoDB

Want to go deeper into MongoDB’s technology? Then download our detailed Architecture Guide.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *