Como o MongoDB é o banco de dados favorito de muitos desenvolvedores, não é surpresa que o suporte da comunidade seja excelente. Você pode encontrar rapidamente respostas para a maioria dos seus problemas em sites de conhecimento como o Stack Overflow, mas a comunidade também cria muitas ferramentas, scripts e estruturas em torno do MongoDB.
O ClusterControl faz parte das ferramentas da comunidade que permitem implantar, monitorar, gerenciar e dimensionar qualquer topologia do MongoDB. O ClusterControl é projetado em torno do ciclo de vida do banco de dados, mas naturalmente não pode cobrir todos os aspectos de um ciclo de desenvolvimento. Esta postagem de blog cobrirá uma seleção de ferramentas da comunidade que podem ser usadas para complementar o ClusterControl no gerenciamento de um ciclo de desenvolvimento.
Gerenciamento de esquema
A dor das mudanças de esquema no RDBMS convencional foi um dos motivos por trás da criação do MongoDB:todos sofremos com migrações de esquema dolorosamente lentas ou com falha. Portanto, o MongoDB foi desenvolvido com um design de documento sem esquema. Isso permite que você altere seu esquema sempre que quiser, sem que o banco de dados o atrapalhe.
As alterações de esquema geralmente são feitas sempre que há desenvolvimento de aplicativos. Adicionar novos recursos a módulos existentes ou criar novos módulos pode envolver a criação de outra versão do seu esquema. Além disso, as otimizações de esquema e desempenho podem criar novas versões de seus esquemas.
Mesmo que muitas pessoas digam que é brilhante não ser retido pelo banco de dados, isso também traz alguns problemas:como os dados antigos não são migrados para o novo design de esquema, seu aplicativo deve ser capaz de lidar com todas as versões de esquema que você tem em seu banco de dados. Como alternativa, você pode atualizar todos os dados (antigos) com o esquema mais recente logo após implantar o aplicativo.
As ferramentas discutidas nesta seção serão muito úteis para resolver esses problemas de esquema.
Coleção Meteor2
O módulo de coleta Meteor2 garantirá que, tanto do lado do cliente quanto do lado do servidor, o esquema seja validado. Isso garantirá que todos os dados sejam gravados de acordo com o esquema definido. O módulo será apenas reativo, portanto, sempre que os dados não forem gravados de acordo com o esquema, um aviso será retornado.
Mangusto
Mongoose é um middleware Node.js para modelagem e validação de esquema. A definição do esquema é colocada dentro do seu aplicativo Node.js, e isso permitirá que o Mongoose atue como um ORM. O Mongoose não migrará dados existentes para a nova definição de esquema.
Esquema MongoDB
Até agora só falamos sobre mudanças de esquema, então é hora de apresentar o MongoDB Schema. MongoDB Schema é um analisador de esquema que coletará uma amostra (aleatória) de seus dados e produzirá o esquema para os dados amostrados. Isso não significa necessariamente que será 100% preciso em sua estimativa de esquema.
Com essa ferramenta, você pode verificar regularmente seus dados em relação ao seu esquema e detectar alterações importantes ou não intencionais em seu esquema.
Vários noves Torne-se um DBA do MongoDB - Trazendo o MongoDB para a produçãoSaiba mais sobre o que você precisa saber para implantar, monitorar, gerenciar e dimensionar o MongoDBBaixe gratuitamente
Backups
O ClusterControl suporta duas implementações para fazer backup do MongoDB:mongodump e Percona Consistent Backup. Ainda assim, algumas funcionalidades usadas menos regulares, como backups parciais/incrementais e backups de streaming para outros clusters, não estarão disponíveis imediatamente.
Backup do MongoDB
O MongoDB Backup é uma solução de backup lógico NodeJS que oferece funcionalidade semelhante ao mongodump. Além disso, ele também pode transmitir backups pela rede, tornando-o útil para transportar uma coleção de uma instância do MongoDB para outra.
Outro recurso útil é que ele foi escrito em NodeJS. Isso significa que será muito fácil integrar em um chatbot da Hubot e automatizar as transferências de coleta. Não tenha medo se sua empresa não estiver usando o Hubot como chatbot:ele também pode funcionar como um webhook ou ser controlado pela CLI.
Mongob
Mongob é outra solução lógica de backup, mas neste caso foi escrito em Python e está disponível apenas como uma ferramenta CLI. Assim como o MongoDB Backup, ele é capaz de transferir bancos de dados e coleções entre instâncias do MongoDB, mas além disso, também pode limitar a taxa de transferência.
Outro recurso útil do Mongob é que ele poderá criar backups incrementais. Isso é bom se você deseja ter backups mais compactos, mas também se precisar executar uma recuperação pontual.
MongoRocks Strata
MongoRocks Strata é a ferramenta de backup para o mecanismo de armazenamento MongoRocks. O Percona Server for MongoDB inclui o mecanismo de armazenamento MongoRocks, mas não possui a ferramenta de backup Strata para fazer backups em nível de arquivo. Em princípio, o mongodump e o Percona Consistent Backup são capazes de fazer backups confiáveis, mas como são dumps lógicos, o tempo de recuperação será longo.
MongoRocks é um mecanismo de armazenamento que se baseia em uma arquitetura de árvore LSM. Isso basicamente significa que é um armazenamento somente de acréscimo. Para poder fazer isso, ele opera com buckets de dados:dados mais antigos serão armazenados em buckets maiores (arquivos), dados recentes serão armazenados em buckets menores (recentes) e todos os novos dados recebidos serão gravados em um bucket de memória especial . Toda vez que uma compactação é feita, os dados são transferidos do bucket de memória para os buckets recentes e os dados alterados recentemente de volta para o bucket de archive.
Para fazer um backup de todos os buckets, o Strata instrui o MongoDB a liberar o bucket de memória para o disco e, em seguida, copia todos os buckets de dados no nível do arquivo. Isso criará um backup consistente de todos os dados disponíveis. Também será possível instruir o Strata a copiar apenas os buckets recentes e efetivamente fazer um backup incremental.
Outro ponto positivo do Strata é que ele fornece o binário mongoq, que permite consultar os backups diretamente. Isso significa que não há necessidade de restaurar o backup para uma instância do MongoDB antes de poder consultá-lo. Você poderia aproveitar essa funcionalidade para enviar seus dados de produção offline para seu sistema de análise!
GUIs do MongoDB
Dentro do ClusterControl, permitimos consultar os bancos de dados e coleções do MongoDB por meio de conselheiros. Esses orientadores podem ser desenvolvidos na interface do ClusterControl Developer Studio. Não apresentamos uma interface direta com os bancos de dados, portanto, para fazer alterações em seus dados, você precisará fazer login no shell do MongoDB ou ter uma ferramenta que permita fazer essas alterações.
PHPMoAdmin
PHPMoAdmin é o equivalente MongoDB do PHPMyAdmin. Possui funcionalidade semelhante ao PHPMyAdmin:gerenciamento de dados e administração. A ferramenta permitirá que você execute operações CRUD na sintaxe JSON e PHP em todos os bancos de dados e coleções. Além de tudo isso, também possui uma funcionalidade de importação/exportação de sua seleção de dados atual.
Mongo-Express
Se você procura um navegador de dados versátil, o Mongo-Express é uma ferramenta que você definitivamente precisa conferir. Além de permitir operações semelhantes ao PHPMoAdmin, também é capaz de exibir imagens e vídeos inline. Ele ainda suporta a busca de objetos grandes de buckets GridFS.
Robomongo
A ferramenta que vai um passo além é o Robomongo. Sendo uma ferramenta de financiamento coletivo, a lista de recursos é enorme. Ele é capaz de realizar todas as mesmas operações que o Mongo-Express, mas além disso também permite o gerenciamento de usuários, funções e coleções. Para conexões, ele suporta conexões diretas do MongoDB, mas também suporta topologias replicaSet e instâncias do MongoDB Atlas.
Conclusão
Com esta seleção de ferramentas gratuitas da comunidade, esperamos ter dado a você uma boa visão geral de como gerenciar dados do MongoDB ao lado do ClusterControl.
Boa aglomeração!