Impressões sobre CouchDB

Fazia tempo que uma determinada tecnologia não me deixava tão empolgado quanto CouchDB. Já estava na minha ToDo list a bastante tempo, mas sempre passava alguma outra coisa na frente e assim fui adiando o momento de colocar a mão na massa e conhecer melhor este banco de dados não relacional, também conhecido como NoSQL.

Encontrei o Fernando Ike na I Conferência W3C que aconteceu aqui em São Paulo, entre as nossas conversas, um dos assuntos foi banco de dados onde o Fike me perguntou se eu já tinha testado o CouchDB nos meus projetos web. O assunto rendeu bastante e alterei minha ToDo list, passando o CouchDB como próximo assunto a ser estudado.

Não precisei de muito tempo para gostar do CouchDB e ficar com uma boa expectativa para realizar testes e aplicar em alguns projetos da Trianguli. O banco de dados é orientado a documentos, diferente dos mais conhecidos, como MySQL, Postgres, etc, que são bancos de dados relacionais. O CouchDB não possui tabelas, cada banco de dados possui um conjunto de documentos no formato JSON e o aplicativo fornece uma maneira bastante eficiente de fazer consultas via Http utilizando um modelo REST. Parece bastante estranho, mas pode ser muito prático para web, principalmente se utiliza Ajax onde a consulta pode ser feita diretamente no banco, sem passar por uma aplicação.

Navegando um pouco encontrei o post 10 Must-Know Topics For Software Architects In 2009, onde o CouchDB é citado como tecnologia promissora e que não deve ser negligenciada. Tem muita gente apostando nesta tecnologia, inclusive eu, que tenho passado por alguns apertos em projetos web que dependem de bancos relacionais e exigem uma manutenção constante em busca de performance, otimização de queries e demais problemas que eventualmente acontecem.

As consultas em um banco CouchDB são realizadas através de views, o retorno é sempre em formato JSON, mas possui diversas bibliotecas para trabalhar com sua linguagem de programação favorita. Em poucos minutos trabalhando com o CouchDB utilizando a sua biblioteca python-couchdb, montei um sistema de inclusão e consultas sem muita dificuldade.

Ainda não avaliei sua performance, mas tenho projetos com um grande volume de informações e vou tentar converter a base para CouchDB e realizar consultas, simulando as mesmas operações que são feitas no MySQL. Não tem muita documentação a respeito, mas consegui informações através de muitas consultas no Google. Em todos os casos, fiquei bastante animado com essa tecnologia e acredito que tenha um grande potencial em aplicações web.

E como aparece no logotipo do CouchDB: relax! :-)

25 Responses to Impressões sobre CouchDB

  1. Fábio Morbec 26/11/2009 em 2:27 pm #

    Interessante! Já tinha ouvido falar sobre o CouchDB mas bem superficial, achei interessante seu post e vou dar uma pesquisada por aí. Seria interessante se você colocasse os links mais interessantes …

    • Christiano Anderson 26/11/2009 em 2:47 pm #

      Oi Fábio,

      Estou com uma ótima expectativa quanto ao CouchDB. Assim que finalizar mais alguns testes, vou publicar mais informações a respeito.

      Abraços!

  2. Fábio Morbec 26/11/2009 em 12:27 pm #

    Interessante! Já tinha ouvido falar sobre o CouchDB mas bem superficial, achei interessante seu post e vou dar uma pesquisada por aí. Seria interessante se você colocasse os links mais interessantes …

    • Christiano Anderson 26/11/2009 em 12:47 pm #

      Oi Fábio,

      Estou com uma ótima expectativa quanto ao CouchDB. Assim que finalizar mais alguns testes, vou publicar mais informações a respeito.

      Abraços!

  3. tiagoprn 26/11/2009 em 2:32 pm #

    Estou traduzindo uma série de tutoriais sobre o CouchDB de um blog chamado “Till’s Blog”, exatamente sobre o uso do CouchDB em PHP como alternativa sobre o MySQL. Esta semana estarei postando a tradução em meu blog, e tomei a liberdade de linkar este seu post lá para ir introduzindo o assunto. Quando puder dê uma visitada para conferir ou adicione meu RSS em seus feeds. Obrigado!

    • Christiano Anderson 26/11/2009 em 2:47 pm #

      Tiago,

      Que ótima notícia! Será uma grande contribuição. Vou assinar o feed, mas tendo novidades, nos mantenha informado.

      Abraços!

  4. tiagoprn 26/11/2009 em 12:32 pm #

    Estou traduzindo uma série de tutoriais sobre o CouchDB de um blog chamado “Till’s Blog”, exatamente sobre o uso do CouchDB em PHP como alternativa sobre o MySQL. Esta semana estarei postando a tradução em meu blog, e tomei a liberdade de linkar este seu post lá para ir introduzindo o assunto. Quando puder dê uma visitada para conferir ou adicione meu RSS em seus feeds. Obrigado!

    • Christiano Anderson 26/11/2009 em 12:47 pm #

      Tiago,

      Que ótima notícia! Será uma grande contribuição. Vou assinar o feed, mas tendo novidades, nos mantenha informado.

      Abraços!

  5. Dirceu Pereira Tiegs 26/11/2009 em 6:04 pm #

    Oi Christiano,

    Essa apresentação mostra várias coisas legais sobre o CouchDB: http://www.youtube.com/watch?v=ESDBM9-U804. Umas das coisas interessantes é o uso de CouchApps (http://benoitc.github.com/couchapp/getting_started.html), aplicações feitas com Javascript, armazenadas como documentos e servidas diretamente a partir do CouchDB.

    Sobre documentação em geral, tem esse livro: http://books.couchdb.org/relax/.

    Abraço,
    Dirceu

  6. Dirceu Pereira Tiegs 26/11/2009 em 4:04 pm #

    Oi Christiano,

    Essa apresentação mostra várias coisas legais sobre o CouchDB: http://www.youtube.com/watch?v=ESDBM9-U804. Umas das coisas interessantes é o uso de CouchApps (http://benoitc.github.com/couchapp/getting_started.html), aplicações feitas com Javascript, armazenadas como documentos e servidas diretamente a partir do CouchDB.

    Sobre documentação em geral, tem esse livro: http://books.couchdb.org/relax/.

    Abraço,
    Dirceu

  7. Igor Sobreira 26/11/2009 em 8:13 pm #

    CouchDB está na minha lista ToLearn a um tempo. Só li superficialmente mas pretendo usar no meu próximo projeto.

    Porém estou na dúvida entre o CouchDB e o MongoDB. Chegou a testar o segundo? Ainda não pesquisei muito sobre comparações, mas o MongoDB também merece atenção.

    Abraço.

  8. Igor Sobreira 26/11/2009 em 6:13 pm #

    CouchDB está na minha lista ToLearn a um tempo. Só li superficialmente mas pretendo usar no meu próximo projeto.

    Porém estou na dúvida entre o CouchDB e o MongoDB. Chegou a testar o segundo? Ainda não pesquisei muito sobre comparações, mas o MongoDB também merece atenção.

    Abraço.

  9. Felipe Rodrigues 28/11/2009 em 12:45 am #

    Eu não tenho propriedade pra falar do assunto, mas o que tenho ouvido falar é que esse modelo não tende a vingar devido a quantidade de bancos de dados relacionais que existem. Além disso, os bancos de dados relacionais suprem as necessidades.

    Então, não sei dizer até que ponto seria válido tentar mudar algo que funciona bem.

  10. Felipe Rodrigues 27/11/2009 em 10:45 pm #

    Eu não tenho propriedade pra falar do assunto, mas o que tenho ouvido falar é que esse modelo não tende a vingar devido a quantidade de bancos de dados relacionais que existem. Além disso, os bancos de dados relacionais suprem as necessidades.

    Então, não sei dizer até que ponto seria válido tentar mudar algo que funciona bem.

  11. tiagoprn 30/11/2009 em 4:21 pm #

    Como comentei acima, aqui está o link para a tradução da primeira parte do tutorial:

    http://tgplima.net84.net/?p=23

    Logo estarei publicando a segunda, que é bem mais prática.

  12. tiagoprn 30/11/2009 em 2:21 pm #

    Como comentei acima, aqui está o link para a tradução da primeira parte do tutorial:

    http://tgplima.net84.net/?p=23

    Logo estarei publicando a segunda, que é bem mais prática.

  13. Tiago Natel de Moura 10/02/2010 em 5:09 pm #

    Ótimo post!

    Eu também estou super empolgado com o couchdb. Estou fazendo meus primeiros testes.

    Lista de discussão sobre o couchdb:
    http://groups.google.com/group/couchdb-br-group?hl=en
    Lista sobre MRNN (NoSQL)
    http://groups.google.com/group/MRNN-Brasil?hl=pt-BR

    Abraços

  14. Tiago Natel de Moura 10/02/2010 em 3:09 pm #

    Ótimo post!

    Eu também estou super empolgado com o couchdb. Estou fazendo meus primeiros testes.

    Lista de discussão sobre o couchdb:
    http://groups.google.com/group/couchdb-br-group?hl=en
    Lista sobre MRNN (NoSQL)
    http://groups.google.com/group/MRNN-Brasil?hl=pt-BR

    Abraços

  15. Cleber Martins 23/06/2010 em 12:32 am #

    Olá pessoal,

    Estou buscando todo o tipo de informação sobre o CouchDB, pois estou fazendo o projeto final da faculdade justamente sobre este assunto.
    Quanto ao comentário do Felipe vale lembrar que o BDOD não veio para substituir nenhum BD e sim para ser mais uma opção pois na informática tudo “depende” da aplicação.
    No momento estou testando o CouchAPP em python e verifiquei que este já facilita muita coisa, pois preciso desenvolver um BD para armazenar as monografias da faculdade e acho que o CouchDB é ideal. Mas estou engatinhando.
    Christiano você tem alguma sugestão?

    Abraços
    Cleber

  16. Cleber Martins 22/06/2010 em 10:32 pm #

    Olá pessoal,

    Estou buscando todo o tipo de informação sobre o CouchDB, pois estou fazendo o projeto final da faculdade justamente sobre este assunto.
    Quanto ao comentário do Felipe vale lembrar que o BDOD não veio para substituir nenhum BD e sim para ser mais uma opção pois na informática tudo “depende” da aplicação.
    No momento estou testando o CouchAPP em python e verifiquei que este já facilita muita coisa, pois preciso desenvolver um BD para armazenar as monografias da faculdade e acho que o CouchDB é ideal. Mas estou engatinhando.
    Christiano você tem alguma sugestão?

    Abraços
    Cleber

  17. Suissa 01/07/2010 em 5:07 pm #

    CouchDB tb é mto bom, criei um tutorial sobre ele no nosqlbr .
    Porém ainda sou mais o MongoDB ;D

  18. Suissa 01/07/2010 em 3:07 pm #

    CouchDB tb é mto bom, criei um tutorial sobre ele no nosqlbr .
    Porém ainda sou mais o MongoDB ;D

Trackbacs/Pingbacks

  1. kinnetikGeek(); » Blog Archive » CouchDB - Aquecimento… - 26/11/2009

    [...] http://christiano.blog.br/2009/11/26/impressoes-sobre-couchdb/ [...]

  2. MongoDB e Python - Christiano Anderson - 20/02/2010

    [...] em Desenvolvimento, python 20/02/2010 | sem respostas Em novembro de 2009 publiquei minhas impressões sobre o CouchDB, já que estou desde então estudando banco de dados NoSQL para aplicações bem específicas. [...]

  3. Riak – Um NoSQL que me surpreendeu | Christiano Anderson - 11/04/2012

    [...] e busca de informações, resolvi dar uma espiada em outros bancos além do MongoDB. Passei pelo CouchDB e atualmente estou me divertindo com DynamoDB e Riak. Esse último me despertou um interesse muito [...]

Leave a Reply