sql >> Base de Datos >  >> NoSQL >> MongoDB

Herramientas MongoDB de la comunidad que complementan ClusterControl

Dado que MongoDB es la base de datos favorita de muchos desarrolladores, no sorprende que el soporte de la comunidad sea excelente. Puede encontrar rápidamente respuestas a la mayoría de sus problemas en sitios de conocimiento como Stack Overflow, pero la comunidad también crea muchas herramientas, scripts y marcos alrededor de MongoDB.

ClusterControl es parte de las herramientas de la comunidad que le permiten implementar, monitorear, administrar y escalar cualquier topología de MongoDB. ClusterControl está diseñado en torno al ciclo de vida de la base de datos, pero naturalmente no puede cubrir todos los aspectos de un ciclo de desarrollo. Esta publicación de blog cubrirá una selección de herramientas comunitarias que se pueden usar para complementar ClusterControl en la gestión de un ciclo de desarrollo.

Gestión de esquemas

El dolor de los cambios de esquema en RDBMS convencional fue uno de los impulsores detrás de la creación de MongoDB:todos sufrimos de migraciones de esquema dolorosamente lentas o fallidas. Por lo tanto, MongoDB se ha desarrollado con un diseño de documento sin esquema. Esto le permite cambiar su esquema cuando lo desee, sin que la base de datos lo detenga.

Los cambios de esquema generalmente se realizan cada vez que hay un desarrollo de aplicaciones. Agregar nuevas funciones a los módulos existentes o crear nuevos módulos puede implicar la creación de otra versión de su esquema. Además, las optimizaciones de esquema y rendimiento pueden crear nuevas versiones de sus esquemas.

Aunque muchas personas dirán que es genial no ser retenido por la base de datos, también trae un par de problemas:dado que los datos antiguos no se migran al nuevo diseño de esquema, su aplicación debería poder hacer frente a cada versión de esquema que tiene en su base de datos. Como alternativa, puede actualizar todos los datos (antiguos) con el esquema más nuevo justo después de implementar la aplicación.

Las herramientas discutidas en esta sección serán muy útiles para resolver estos problemas de esquema.

Colección Meteor2

El módulo de recopilación de Meteor2 garantizará que, tanto del lado del cliente como del servidor, el esquema sea validado. Esto asegurará que todos los datos se escriban de acuerdo con el esquema definido. El módulo solo será reactivo, por lo que siempre que los datos no se escriban de acuerdo con el esquema, se devolverá una advertencia.

Mangosta

Mongoose es el middleware de Node.js para el modelado y la validación de esquemas. La definición del esquema se coloca dentro de su aplicación Node.js y esto permitirá que Mongoose actúe como un ORM. Mongoose no migrará los datos existentes a la nueva definición de esquema.

Esquema MongoDB

Hasta ahora solo hemos hablado de cambios de esquema, por lo que es hora de presentar MongoDB Schema. MongoDB Schema es un analizador de esquemas que tomará una muestra (aleatoria) de sus datos y generará el esquema para los datos muestreados. Sin embargo, esto no significa necesariamente que será 100 % preciso en la estimación de su esquema.

Con esta herramienta, puede comparar regularmente sus datos con su esquema y detectar cambios importantes o no intencionales en su esquema.

Varios nueves Conviértase en un administrador de bases de datos de MongoDB - Llevando MongoDB a la producción Obtenga información sobre lo que necesita saber para implementar, monitorear, administrar y escalar MongoDBDescargar gratis

Copias de seguridad

ClusterControl admite dos implementaciones para realizar copias de seguridad de MongoDB:mongodump y Percona Cosistent Backup. Aún así, algunas funcionalidades utilizadas con menos frecuencia, como copias de seguridad parciales/incrementales y copias de seguridad de transmisión a otros clústeres, no estarán disponibles de forma predeterminada.

Copia de seguridad de MongoDB

MongoDB Backup es una solución de copia de seguridad lógica de NodeJS que ofrece una funcionalidad similar a la de mongodump. Además de esto, también puede transmitir copias de seguridad a través de la red, lo que lo hace útil para transportar una colección de una instancia de MongoDB a otra.

Otra característica útil es que se ha escrito en NodeJS. Esto significa que será muy fácil de integrar en un chatbot de Hubot y automatizar las transferencias de cobro. No tenga miedo si su empresa no está utilizando Hubot como chatbot:también puede funcionar como un webhook o controlarse a través de la CLI.

Mongob

Mongob es otra solución de copia de seguridad lógica, pero en este caso se ha escrito en Python y solo está disponible como una herramienta CLI. Al igual que MongoDB Backup, puede transferir bases de datos y colecciones entre instancias de MongoDB, pero además de eso, también puede limitar la tasa de transferencia.

Otra característica útil de Mongob es que podrá crear copias de seguridad incrementales. Esto es bueno si desea tener copias de seguridad más compactas, pero también si necesita realizar una recuperación de un punto en el tiempo.

Estratos de MongoRocks

MongoRocks Strata es la herramienta de respaldo para el motor de almacenamiento MongoRocks. Percona Server para MongoDB incluye el motor de almacenamiento MongoRocks, sin embargo, carece de la herramienta de copia de seguridad Strata para realizar copias de seguridad a nivel de archivo. En principio, mongodump y Percona Consistent Backup pueden realizar copias de seguridad fiables, pero como son volcados lógicos, el tiempo de recuperación será largo.

MongoRocks es un motor de almacenamiento que se basa en una arquitectura de árbol LSM. Básicamente, esto significa que es un almacenamiento solo para agregar. Para poder hacer esto, opera con cubos de datos:los datos más antiguos se almacenarán en cubos más grandes (de archivo), los datos recientes se almacenarán en cubos más pequeños (recientes) y todos los nuevos datos entrantes se escribirán en un cubo de memoria especial. . Cada vez que se realiza una compactación, los datos bajarán del depósito de memoria a los depósitos recientes y los datos modificados recientemente volverán al depósito de archivo.

Para hacer una copia de seguridad de todos los depósitos, Strata le indica a MongoDB que vacíe el depósito de memoria en el disco y luego copia todos los depósitos de datos a nivel de archivo. Esto creará una copia de seguridad consistente de todos los datos disponibles. También será posible indicarle a Strata que solo copie los cubos recientes y realice efectivamente una copia de seguridad incremental.

Otro buen punto de Strata es que proporciona el binario mongoq, que le permite consultar las copias de seguridad directamente. Esto significa que no es necesario restaurar la copia de seguridad en una instancia de MongoDB antes de poder consultarla. ¡Podría aprovechar esta funcionalidad para enviar sus datos de producción fuera de línea a su sistema de análisis!

GUI de MongoDB

Dentro de ClusterControl permitimos consultar las bases de datos y colecciones de MongoDB a través de asesores. Estos asesores se pueden desarrollar en la interfaz de ClusterControl Developer Studio. No contamos con una interfaz directa con las bases de datos, por lo que para realizar cambios en sus datos, deberá iniciar sesión en el shell de MongoDB o tener una herramienta que le permita realizar estos cambios.

PHPMoAdmin

PHPMoAdmin es el equivalente MongoDB de PHPMyAdmin. Cuenta con una funcionalidad similar a PHPMyAdmin:administración de datos y administración. La herramienta le permitirá realizar operaciones CRUD en sintaxis JSON y PHP en todas las bases de datos y colecciones. Además de todo eso, también cuenta con una funcionalidad de importación/exportación de su selección de datos actual.

Mongo-Express

Si busca un navegador de datos versátil, Mongo-Express es una herramienta que definitivamente debe consultar. No solo permite operaciones similares a PHPMoAdmin, sino que también puede mostrar imágenes y videos en línea. Incluso admite la obtención de objetos grandes de cubos de GridFS.

Robomongo

La herramienta que va un paso más allá es Robomongo. Al ser una herramienta de financiación colectiva, la lista de características es enorme. Es capaz de realizar todas las mismas operaciones que Mongo-Express, pero además de esto también permite la gestión de usuarios, roles y colecciones. Para las conexiones, admite conexiones directas de MongoDB, pero también admite topologías de replicaSet e instancias de MongoDB Atlas.

Conclusión

Con esta selección de herramientas comunitarias gratuitas, esperamos haberle brindado una buena descripción general sobre cómo administrar los datos de MongoDB junto con ClusterControl.

¡Feliz agrupamiento!