Introducción a MongoDB: Documentos y NoSQL | AprenderBigData.com
En esta entrada aprenderás sobre MongoDB, una base de datos documental NoSQL muy popular en la actualidad. Será un pequeño tutorial en el que repasaremos sus características más importantes, sus ventajas y también analizaremos algunas alternativas comunes a esta base de datos.
¿Qué es MongoDB?
MongoDB es una base de datos NoSQL open source orientada a almacenar documentos en formato JSON en colecciones. Debido a su arquitectura, permite escalar el sistema para almacenar grandes cantidades de datos.
En esta base de datos el esquema de los datos no es fijo y es posible modificar y añadir las propiedades de los documentos. Esto hace que sea muy flexible al almacenar diferentes tipos de documentos en las colecciones.
Esta imagen nos muestra la gráfica de Google Trends con las búsquedas o popularidad de MongoDB y de Elasticsearch en el tiempo. Como vemos, tiene una gran popularidad en la actualidad y su uso se está extendiendo.
Las bases de datos en MongoDB almacenan colecciones, que son agrupaciones de documentos (las colecciones son equivalentes a las tablas en un modelo relacional). Cada documento puede ser único e independiente, con su propia estructura y campos. A cada documento se le asigna un identificador único en la colección llamado “_id”. Los documentos a su vez contienen campos, que serían equivalentes a las columnas en un modelo relacional.
A continuación, un ejemplo de documento sencillo:
{ Nombre: Oscar, Ciudad: Madrid, Edad: 25 }
Arquitectura y Componentes
Como sabemos, MongoDB es una base de datos fácilmente escalable. Se pueden tener clústeres de cientos de nodos con millones de documentos almacenados.
Además incorpora una utilidad de consola que usa lenguaje Javascript. También, podemos usar alguna de las herramientas de gestión o clientes MongoDB GUI con interfaz gráfica para aumentar la productividad como MongoDB Compass.
MongoDB Atlas
MongoDB Atlas es el servicio cloud que proporciona esta base de datos gestionada en diferentes proveedores cloud, como AWS, Azure o Google Cloud (GCP). Incluye mecanismos de automatización y simplifica la gestión de la escalabilidad y seguridad de los datos.
Se trata de una solución multicloud, con la posibilidad de desplegar entre diferentes servicios y regiones para aumentar la disponibilidad de los datos. Podríamos compararla con soluciones como CosmosDB o Amazon DocumentDB.
Ventajas de MongoDB
En esta sección, veremos algunas de las razones por las que usar esta base de datos NoSQL:
- Orientación a Documentos. La capacidad de almacenar directamente documentos en formato JSON convierte a MongoDB en una base de datos muy flexible y que reduce el tiempo de implementación de nuestras aplicaciones.
- MongoDB usa expresiones regulares para hacer las consultas, que son más potentes y flexibles que el lenguaje SQL. Además, existen numerosos drivers para lenguajes de programación como PyMongo para Python, Jongo para Java, mgo para Go o Mongoose para Node.js.
- Alta disponibilidad. MongoDB puede implementar replicación de los datos, manteniendo copias en varios nodos, que permiten mantener una alta disponibilidad y tolerancia a errores.
- Escalabilidad. Al repartir los datos en múltiples nodos con el mecanismo de sharding, el sistema puede escalar horizontalmente y balancear la carga en varios servidores.
Alternativas a MongoDB
Tanto MongoDB como MySQL o PostgreSQL son bases de datos con un buen rendimiento. Debemos comprender sus diferencias para poder elegir la más adecuada en nuestro caso. MySQL y PostgreSQL son bases de datos relacionales (RDBMS) que nos permiten almacenar los datos en tablas y establecer relaciones para consultarlos con el lenguaje SQL.
La ventaja de MongoDB sobre estas bases de datos son las menores limitaciones en cuanto a esquemas y estructuras predefinidas para almacenar los datos. Editar un esquema en MySQL o PostgreSQL es mucho más complejo que en una base de datos documental. Por otro lado, las bases de datos relacionales como MySQL son superiores en consistencia de los datos, transacciones y seguridad.
Entre las alternativas NoSQL que podríamos evaluar se encuentran las siguientes opciones:
¡Echa un ojo a mis listas de reproducción de Big Data y suscríbete al canal de Youtube para no perderte ningún vídeo nuevo!
Si te ayuda el contenido del blog, considera unirte a la lista de correo para estar al día de Big Data y cupones de formación
Originally published at https://aprenderbigdata.com on April 19, 2021.