home Sem categoria NoSQL: Um comparativo de ferramentas para a administração do MongoDb (parte 3)

NoSQL: Um comparativo de ferramentas para a administração do MongoDb (parte 3)

Esse post é a continuação do artigo NoSQL: Um comparativo de ferramentas para a administração do MongoDb. O objetivo é apresentar os principais conceitos relacionados ao nosql, em especial o mongodb, e mostrar as principais ferramentas para gestão de dados. Você pode conferir as partes anteriores do artigo clicando aqui: Parte 1 e Parte 2.

Um Comparativo de Ferramentas para uso na Gestão do MongoDB

Desde o seu nascimento, onde possuía apenas uma interface texto de trabalho, o mongodb vem passando por evoluções, como o surgimento de novas ferramentas que propiciam facilidades para seu gerenciamento e uso. Se compararmos à época de seu lançamento, realmente não existiam ferramentas de gestão parecidas com as que hoje existem para o gerenciamento de bancos relacionais como o ‘sql server management studio’ da ‘microsoft’ usado no gerenciamento do ‘sql server’. As famosas ferramentas de gestão vão propiciar facilitadores que vão servir para auxiliar no desenvolvimento e criação de bancos e objetos relacionados.

O principal objetivo deste pequeno estudo seria mostrar as ferramentas pesquisadas, com uma breve descrição sobre suas principais características, que foram separadas em tópicos para facilitar a compreensão:

NoSql Manager Para MongoDB

O nosql manager para mongodb, é uma ferramenta ‘freeware’, criada especificamente para a administração (gestão e desenvolvimento) de bases de dados criadas em mongodb. Esta ferramenta proporciona um conjunto de recursos para auxílio tanto aos desenvolvedores de banco de dados quanto aos administradores de banco de dados. Incluem recursos, como:

  • permissões ‘DDL’,
  • gestão integrada dos objetos do banco,
  • indexação,
  • gridfs’ que é editor para a ferramenta, possuindo fácil utilização,
  • gerenciamento de usuários e seus papéis,
  • é incorporado ao shell do mongodb e
  • além disto, possui facilitadores no uso e criação de ‘map-reduce’.

Figura 2: Tela principal mostrando o sql manager para o mongodb.

Shell do mongodb

O shell do mongodb, é ferramenta ‘open souce’, portanto sem custos adicionais, possuindo funcionamento nas plataformas, Windows, OS X e Linux, sendo distribuída junto com a instalação do mongodb, fazendo parte portanto de sua distribuição.

É uma ferramenta completa, com a restrição de que aceita somente linha de comando, e por isto pode não ser a ferramenta favorita para muitos usuários, sendo necessariamente poderosa.

O MongoVue

O mongo vue, na sua versão inicial tem custo zero, sendo que para versão com todos os recursos pode custar aproximadamente 35 dólares. Funciona apenas em plataforma Windows e possui uma interface elegante e altamente utilizável para se trabalhar com mongodb, porém não é tão eficiente no quesito gestão de segurança dos dados na web.

Possui uma interface que possibilita uma visão rápida dos objetos do banco do banco de dados (tamanho, uso, etc), suporte a construção de índices com facilitadores pela interface visual e a facilidade no uso e execução de map-reduce.

Mostra os objetos do mongodb como uma árvore hierárquica que consiste em bancos de dados, coleções, índices e usuários. Possui ferramentas para importação de dados relacionais de bancos como mysql ou sql server automaticamente para o mongodb, o que facilita na construção de aplicações de forma dinâmica e rápida. Possui um gerenciamento eficiente de usuários, além de contar com interfaces ‘gridfs’ especiais e apoia na interface shell mas de forma limitada.

GridFS

Imagine uma aplicação onde o usuário pode fazer upload de uma foto de perfil. A prática corrente é a de armazenar o caminho para o arquivo no banco de dados, armazenar o arquivo no filesystem (sistema de arquivos compartilhado).

O gridfs possibilita o armazenamento de arquivos direto no banco de dados do mongodb. Quando os arquivos são armazenados no mongodb, recebem toda a capacidade de replicação e ‘sharding’ gratuitamente de forma que se forem necessários backups dos arquivos do usuário, basta uma replicação das coleções gridfs.

 

O mongovue é um produto que já existe a algum tempo sendo sólido e acessível, possuindo recursos realmente interessantes para uso, como espaço utilizado, possibilitando uma visão eficiente do crescimento dos dados no banco.

A seguir, apresentamos a visualização da interface principal da ferramente, onde é possível verificar à direita os bancos e informações de crescimento.

Figura 3: Mongovue, com painel de visão geral mostrando um banco de dados exemplo.

Na figura seguinte, é possível visualizar as ‘collections’, que são as tabelas (Relacional) no modelo ‘nosql’. Na figura é detalhada a forma de visualização em árvore, porém é possível a visualização em formato tabela ‘table view’ e texto ‘text view’, conforme as abas à direita de ‘tree view’.

Figura 4: ‘collection view’ – Informações de 3 formas diferentes: árvore, tabela e texto.

LinqPad

O linkpad é limitado na versão gratuita do produto, podendo chegar a aproximadamente 39 dólares em versão completa, funciona bem em plataforma Windows, possuindo uma linguagem moderna de consulta, o que permite ações interativas e consultas a bases nosql.

O linkpad também possui suporte a uma ampla quantidade de banco de dados relacionais. Suas principais características envolvem um ‘shell’ escrito em C# no lugar de javascript (como na maioria das ferramentas), com suporte a objetos e classes da aplicação que estão sendo desenvolvidas, no qual pode trabalhar diretamente através de funções de sua biblioteca, sendo este um de seus principais diferenciais.

Essa ferramenta é interessante para quem está desenvolvendo aplicativos ‘.net’, onde é possível validar consultas diretamente da aplicação, verificando os resultados na ferramenta.

A imagem a seguir mostra parte da ferramenta linqpad, acessando banco em mongodb, com destaque para código escrito para uso com esta ferramenta. Na seguinte, a figura apresenta um exemplo de listagem de ‘collection’ em mongodb.

Figura 5: linkpad com código escrito para mongodb.

Rest View

O rest view é aplicativo gratuito (open-source), que funciona tanto em plataforma Windows, quanto OS X e Linux.

Traz a vantagem de usar o navegador, para verificação do status do servidor e conteúdo, onde, além disto, traz a possibilidade de conferência tanto do desempenho, estatísticas como também da visualização do arquivo de log, o que ajuda na resolução de problemas diversos no banco.

Embora seja apenas uma API REST básica do mongodb, auxilia em monitoramentos diversos em arquivo log, na execução de comandos usando ‘API’ e a fazer check-in no servidor. Possui limitações no seu desenvolvimento, que exigem o uso de linha de comando para execução de comandos que não existem na ferramenta.

Genghis

O genghis é projeto de ferramenta ‘open-source’, com suporte em plataforma WIndows, Mac OS X e Linux. Trabalha bem o ‘CRUD’, operações básicas em Banco de Dados nosql. Com o uso do ‘ruby’ ou php funciona muito bem na ‘web’, o que possibilita ver conteúdo e status do Servidor com o seu navegador. É uma ferramenta interessante desde que em execução com ruby ou php, o que possibilita extensão de recursos.

Na figura a seguir são apresentados o formulário de conexão com o genghis, com a lista de bancos acessíveis, a quantidade de ‘collections’ e o tamanho delas. A imagem seguinte é a tela do app.

Figura 7: Um formulário genghis mostrando conexões existentes.

Figura 8: Genghis App para administração mongodb.

MongoDB Monitoring Service

O ‘MMS’ ou mongodb monitoring service, é conhecido como um serviço que permite o monitoramento da infra-estrutura para o servidor mongodb. Criado pela ‘10gen’ é fornecido de forma gratuita a todos os usuários do mongodb. Projetado para fornecer segurança e facilidade de uso aos usuários, funciona coletando estatísticas de uso de indicadores-chave de Servidores e hardware, armazenando estes, para em seguida apresentá-los em um poderoso console Web. Estas informações são o grande trunfo da ferramenta e podem ser utilizados até na otimização de aplicações durante o desenvolvimento com o mongodb.

As informações produzidas pelo ‘MMS’ possuem um valor inestimável no diagnóstico e nas tratativas de problemas diversos em produção. Tem capacidade de monitoramento de máquinas em Cluster, com dezenas de nós, fornecendo uma visão holística das implantações mongodb para que os administradores de sistemas e banco possam tratar anomalias diversas.

Suas características permitem acesso seguro a estatísticas e erros, através de ‘dashboards’ diversos com painéis gráficos criados a partir das estatísticas armazenadas, logs e principalmente alertas sobre problemas diversos relacionados à infraestrutura do servidor mongodb.

Possui instalação fácil e a ferramenta é rápida para configurar. Além disto, possui custo zero, e funciona em plataformas Windows, Mac OS X e Linux.

O dashboard mostrado na imagem a seguir, exibe vários itens de monitoramento (memória, locks , índices e outros) proporcionados pelo ‘MMS’, software criado pela ‘10Gen’ e que busca unificar vários indicadores de performance do servidor mongodb em um único formulário.

Figura 9: Formulário/dashboard de monitoramento proporcionada pelo ‘MMS’.

STUDIO 3T

Figura 10: Formulário inicial do studio 3t em versão ‘trial’.

O studio 3 t, pode ser utilizado na construção de consultas no mongodb de forma facilitada por meio de arrastar e soltar inclusive, além de possui recursos como o de ‘autocompletar’ consultas abrangendo até nomes de campos.

Além disto, o software pode ser utilizado na tradução de consultas do mongodb e sql para até cinco idiomas, sendo possível a divisão de consultas de agregação em estágios, edição de dados no local, comparação entre ‘collections’. Existem versões para 3 plataformas principais funcionando em Windows, Mac e Linux.

RoboMongo

O robomongo é uma ferramenta de gestão “open-source”, que funciona em plataformas, Windows, mac OS X e Linux, portanto tem por característica principal ser multi-plataforma, incorporando o mesmo motor de javascript que o mongodb. Tudo que é possível escrever em shell no mongodb também é possível escrever usando o robomongo, o que faz dele uma ferramenta bem completa.

São suas características, além das já citadas, os múltiplos ‘shells’, resultados e a possibilidade na visualização do banco mongodb como uma árvore hierárquica com os bancos de dados, coleções, índices e usuários, função ‘autocompletion’ que auxilia na criação de scripts e uma gestão centralizada para os utilizadores da ferramenta.

Para muitos seria a melhor ferramenta para gestão do mongodb, que combina o poder do shell mongo a API java script com uma interface bem intuitiva. Pela sua praticidade, foi justamente a ferramenta escolhida para mostrar algumas tarefas básicas que podem ser executadas no mongodb via robomongo.

Usando o RoboMongo com o MongoDB

A instalação mongodb pode ser conferida em link web disponibilizada na seção links, lembrando que a instalação é bem trivial, sendo bem fácil e rápida. Na prática foi usado o instalador Windows.

No exemplo de uso do robomongo com mongodb, a intenção seria mostrar a criação de processos básicos, como a criação de um banco e a manipulação de alguns registros neste banco.

A figura a seguir mostra o ‘start’ do servidor mongodb, o processo de criação de uma base de dados, a inserção e deleção de registros nesta base, caracterizando a manipulação de registros. Os facilitadores da ferramenta são muitos, e principalmente aparecem na fase inicial, sendo este caracterizado pela criação do banco de dados.

A imagem a seguir mostra o ‘start’ do servidor mongodb, o processo de criação de uma base de dados, a inserção e deleção de registros nesta base, caracterizando a manipulação de registros. Os facilitadores da ferramenta são muitos, e principalmente aparecem na fase inicial, sendo este caracterizado pela criação do banco de dados.

Figura 11. Start do serviço do servidor mongodb.

A figura seguinte apresenta uma conexão (localhost) com o servidor mongodb, usado para os testes na ferramenta robomongo. O processo possui facilitadores para o processo de conexão da ferramenta de gestão (robomongo) e o servidor de banco de dados mongodb.

Figura 12: Conectando ao servidor mongodb com o robomongo.

A próxima imagem mostra a conexão inicial feita com o servidor mongodb, onde no detalhe o banco local é criado automaticamente na instalação de uma instância. Pode-se notar que este banco ainda não possui ‘collections’ (tabelas) criadas e, portanto ainda não existe a possibilidade de inserção de registros e sua consequente manipulação.

Figura 13: Conecção inicial ao servidor mongodb.

A figura a seguir mostra a criação de um Banco de Dados no mongodb usando o robomongo. O detalhe é que o banco foi criado apenas com poucos cliques, usando o botão direito do mouse posicionado em localhost.

 

Figura 14: Criando um banco de dados no robomongo.

Já a próxima tela apresenta a inserção de um registro que é validada inicialmente em ‘json’. Para a inserção novamente o botão contrário do mouse (direito) foi clicado e estava posicionado na ‘tb_collection01’, criada também com poucos cliques e botão do mouse (direito) posicionado no nome do banco.

Figura 15: Inserção de registros na collection ‘tb_collection01’, com validação ‘json’.

 

JSON (Java Script Object Notation)

Notação de Objetos em javascript, sendo uma formatação leve de troca de dados, sendo que para seres humanos é de fácil leitura e escrita, para máquina, é fácil de gerar e interpretar. Baseado no subconjunto da linguagem de programação Javascript. Possui propriedades tais que o fazem o formato ideal para troca de dados.

As imagens a seguir mostram detalhes de uma deleção de um registro que pode ser feita apenas com o clique no registro (botão direito do mouse), escolhendo ‘delete documento’ e, em seguida, a solicitação para confirmar a exclusão.

Figura 16: Deleção de um registro na collection ‘tb_collection01’.

 

Figura 17: Confirmação de deleção de registro selecionado (1).

Por fim, a última figura trata da edição de registros que pode ser feita diretamente no código ‘json’ de inserção da ‘tb_collection01’.

Figura 18: Edição de documento na ‘collection’ ‘tb_collection01’.

Conclusão

Foi apresentado neste artigo um pequeno histórico com definições e conceitos nosql mostrando um dos principais bancos criados nesta estrutura: o mongodb que desde 2009, vem ganhando novas ferramentas para sua administração. Aliás, o foco principal do artigo foi mostrar as principais ferramentas existentes hoje para administração do mongodb, mostrando as características principais destas ferramentas.

Ferramentas como nosql manager, shell mongodb, mongovue, linqpad, rest view, genghis, mongodb monitoring servissestudio 3 t e robomongo, foram mostradas em suas características principais, onde o destaque ficou com o robomongo, que além de gratuito apresenta uma interface amigável e de fácil manipulação de objetos no mongodb.

Portanto, além dos conceitos principais relacionados ao nosql e mongodb o comparativo das ferramentas possibilita uma visão geral do que existe de mais novo para o mongodb, no intuito de provocar um uso cada vez mais frequente da ferramenta.

Gostou? Compartilhe:

Adriano Geraldo Dias Ferreira

Adriano Geraldo Dias Ferreira

Atua no ramo de tecnologia da informação há mais de 20 anos, sendo mais de 10 anos dedicados profissionalmente a Análise e Administração de Banco de Dados (Oracle, Sql Server, Sybase, MySql e PostGreSql) em ambientes de alta Criticidade (24x7). Atualmente trabalha como analista de dados e Dba na Cedro Technologies e como Professor em Cursos de Graduação e Pós Graduação.