A Southbank Software lançou recentemente, em oferta inicial, o dbKoda na versão 0.6.0: uma ferramenta de desenvolvimento em código aberto MongoDB desenvolvida em JavaScript, React e Electron. Conforme a imagem abaixo, a interface gráfica do dbKoda possui um gerenciador de conexão e um editor de código rico em recursos para trabalhar com bancos de dados MongoDB.
Gerenciamento de conexão
O gerenciador de conexões mantém vários perfis de conexão de banco de dados. Para cada conexão ativa, uma lista de bancos de dados e coleções correspondentes é exibida na metade inferior da janela do gerenciador. Uma variedade de opções de menu estão disponíveis para construção de consultas, execução de operações CRUD, indexação e importação/exportação de dados por meio de um clique com o botão direito do mouse (como mostrado abaixo à esquerda). O editor de perfil de conexão suporta todas as formas de sintaxe de conexão de banco de dados para criar novas conexões (como mostrado abaixo à direita).
Editor de código
O editor de código contém janelas de entrada/saída de consulta para escrever e executar comandos de shell MongoDB. O editor possui formatação de código, conclusão de código, cruzamento de código e destaque de sintaxe. Enquanto as consultas podem ser escritas à mão no editor de código, elas também podem ser criadas com o construtor de consultas, conforme ilustrado abaixo. Uma característica útil do construtor de consultas é que ele gera dinamicamente os comandos de shell MongoDB correspondentes no editor de código. Isso elimina o tedioso esforço na formatação correta das chaves e dos parênteses envolvidos na escrita de comandos complexos do shell MongoDB.
A Southbank Software lançou mais recentemente a versão 0.7.0 do dbKoda com novos recursos, incluindo:
- Construtor de agregação;
- Storage Drilldown;
- Tunneling de conexões SSH;
- Visualizador JSON aprimorado;
- Exportar/Importar.
Semelhante ao construtor de consultas, o construtor de agregação permite a construção de consultas mais complexas que exigem uma função agregada. Considere o exemplo a seguir em que uma coleção de publicações usa o operador $lookup para realizar uma junção interna com a coleção de autores:
db.publications.aggregate({"$lookup": {
"localField" : "author_id",
"from" : "authors",
"foreignField" : "_id",
"as" : "authorinfo"
}})
Conforme mostrado abaixo, o construtor de agregação gera dinamicamente a junção interna simplesmente inserindo os valores necessários para as chaves localField, from, foreignField e as.
Guy Harrison, CTO no Southbank Software, falou com o InfoQ sobre o dbKoda.
InfoQ:Qual foi a inspiração para o desenvolvimento do dbKoda?
Guy Harrison: Ao escrever o livro "Next Generation Databases", eu estava plenamente consciente de que chegamos a uma terceira revolução nos sistemas de banco de dados. Uma nova geração de profissionais precisava de uma nova geração de ferramentas de banco de dados e, com minha experiência prévia nessa área e desenvolvimento de software, pensei em tentar criar uma empresa para criar ferramentas de bancos de dados de próxima geração.
InfoQ: Por que o MongoDB foi escolhido como banco de dados inicial?
Harrison: O ecossistema "NoSQL" inclui várias tecnologias significativas: Cassandra, Couchbase, Hadoop, Spark e Neo4J, são todos que me vêm à mente. Mas o mongoDB está muito adiante em termos de adoção completa, com cerca de 30 milhões de downloads.
InfoQ: Outros bancos de dados serão suportados? Em caso afirmativo, quando e quais bancos de dados?
Harrison: Nós já definimos que planejamos apoiar outros bancos de dados, tanto relacionais quanto não relacionais, no próximo ano.
InfoQ: o que está no horizonte para o dbKoda, especialmente em termos da versão 1.0?
Harrison: Atualmente estamos trabalhando em um suporte mais profundo para aqueles que usam o MongoDB dentro de frameworks de aplicativos como o NodeJS, fornecendo recursos de consulta SQL (via Apache Drill) e aprimorando a construção de consultas e processamento de saída.
Na versão 1.0, planejamos versões hospedadas e orientadas para servidor do produto, análises de desempenho mais profundas, recursos de colaboração e suporte contínuo para programação de desenvolvedores utilizando o MongoDB em frameworks.
InfoQ: Há quanto tempo você está com o Southbank Software e quais são suas responsabilidades atuais?
Harrison: Eu sou CTO e fundador da Southbank Software, além de ser sócio da Toba Capital, que é a empresa da VC que financia dbKoda. Eu faço um pouco de tudo: admin, design de recursos, redação de testes automatizados e um pouco de programação de recursos. Temos uma equipe de seis desenvolvedores que trabalham em tempo integral no dbKoda.
Se você quiser saber mais sobre o dbKoda, pode assistir um vídeo de 5 minutos disponível no YouTube, onde Harrisson demonstra como começar a utilizar a solução.