No sql e as vantagens na utilização do mongodb

4.654 visualizações

Publicada em

Palestra que fiz na Univem em Marilia na VI Semana de Tecnologia da Informação. Falei sobre NoSql, vantagens e desvantagens na utilização do MongoDB

Publicada em: Tecnologia
2 comentários
8 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
4.654
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
83
Comentários
2
Gostaram
8
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

No sql e as vantagens na utilização do mongodb

  1. 1. NoSQL e as vantagens na utilização do MongoDB Fabio Perrella - Locaweb
  2. 2. Fabio Luiz Perrella Engenheiro de Computação - Poli USP 2004 Lider Técnico de Desenvolvimento SaaS - Locaweb
  3. 3. Agenda - Definição NoSql - Diferenças entre Sql e NoSql - Exemplo de uso - Vantagens do MongoDB - Desvantagens
  4. 4. NoSql - Definição - Not only Sql - Próxima geração de Banco de Dados fonte: http://nosql-database.org
  5. 5. NoSql Características: - não relacional - distribuído - open-source - escalável horizontalmente fonte: http://nosql-database.org
  6. 6. NoSql Mais algumas características: - schema-free - replicação simples - API simples - suporta grande quantidade de dados - eventualmente consistente fonte: http://nosql-database.org
  7. 7. NoSql Eventualmente consistente. Teorema CAP: - Consistência - Disponibilidade - Tolerância a Partição Só conseguimos escolher 2 destes! http://www.julianbrowne.com/article/viewer/brewers-cap-theorem
  8. 8. NoSql fonte: http://smist08.wordpress.com/tag/cap-theorem
  9. 9. Principais diferenças
  10. 10. SQL Exemplos: - Mysql - Oracle - Postgres - SqlServer
  11. 11. NoSql Exemplos: - Orientados a documentos: - MongoDB, CouchDB, Cassandra - Chave valor: - Redis, Memcache, etc… - Outros tipos..
  12. 12. SQL Tabelas, linhas e colunas:
  13. 13. NoSQL (MongoDB) Documentos: ( BSON binary Json )
  14. 14. Sql Relacionamentos: Fonte: http://www.codeproject.com/Articles/396822/Basic-Handling-and-Tips-of-Database-Relationships
  15. 15. NoSql Embedded documents
  16. 16. NoSql .. e também “relacionamentos”
  17. 17. Sql Queries: SELECT * table_x WHERE y=1 ORDER BY...
  18. 18. NoSql - Object Based (MongoDB) - RESTful APIs (ElasticSearch) - Map-reduce / JS functions (CouchDB) …. - NoSQL!
  19. 19. Sql Transações ACID (Atomic Consistent Isolated Durable) ⇒ Consistência! ⇒ Table locks ⇒ Peformance prejudicada ⇒ Exemplo de uso: ERP
  20. 20. NoSql Transações BASE (Basically Available, Soft State, Eventually Consistent) ⇒ Disponibilidade! ⇒ Performance! ⇒ Consistência eventual ⇒ Exemplo de uso: Google search
  21. 21. Exemplo de uso Blog: - Posts - Comentários - Usuários
  22. 22. Exemplo de uso Modelo relacional SELECT * FROM posts p INNER JOIN comments c ON p.id = c.post_id INER JOIN users u on c.user_id = u.id
  23. 23. Exemplo de uso Modelo orientado a documento db.posts.find({ _id: 12 })
  24. 24. Vantagens do MongoDB
  25. 25. Vantagens do MongoDB - Fácil instalação apt-get install mongodb-10gen
  26. 26. Vantagens do MongoDB - Open Source - Atualizações constantes - Suporte enterprise (caso necessário) - Comunidade ativa
  27. 27. Vantagens do MongoDB - Drivers e ODM (object document mapper) para várias linguagens Exemplo: Mongoid e Mongomapper para Ruby
  28. 28. Vantagens do MongoDB - Sharding automático e de fácil configuração fonte: http://3.bp.blogspot.com/-aa2XhG7okKo/TzzjKOtPd_I/AAAAAAAAI0g/okMlHXFqitc/s1600/mongo_shard.png
  29. 29. Vantagens do MongoDB - Replicação simples (Replica set)
  30. 30. Vantagens do MongoDB - Orientado a documentos - Schema Free ⇒ Facilidades para os desenvolvedores!
  31. 31. Vantagens do MongoDB - Performance - Escrita assíncrona configurável (write concern levels) - Leitura de dados dos secundários (configurável)
  32. 32. Vantagens do MongoDB - Operações de update atômicas - inc - set - push - pop
  33. 33. Vantagens do MongoDB - Agregation framework - Map-Reduce - group by - sum() - etc...
  34. 34. Vantagens do MongoDB - MMS (MongoDB Management Service)
  35. 35. Vantagens do MongoDB - Treinamento online grátis oferecido pela 10gen! http://education.mongodb.com
  36. 36. Desvantagens do MongoDB :(
  37. 37. Desvantagens do MongoDB - Alto uso de espaço em disco - Para cada linha precisa guardar o nome das “colunas” - Tamanho do nome das “coluna” influencia
  38. 38. Desvantagens do MongoDB - Alto uso de memória RAM - Índices devem caber na memória RAM - Working-set preferencialmente deve caber na memória RAM ⇒ Alternativa: SSD (ou $$D)
  39. 39. Desvantagens do MongoDB - Custo alto com “parque” de servidores - Cada shard requer no mínimo 3 servidores para replica set (as máquinas devem ter o mesmo perfil de preferência) - Alternativa: Replica set Arbiter - No mínimo 3 config servers
  40. 40. Desvantagens do MongoDB - Custo alto com “parque” de servidores
  41. 41. Desvantagens do MongoDB - Global write lock (agora por database) - Solução da 10gen: sharding!... e em alguns casos, habilitar leitura dos secundários
  42. 42. Desvantagens do MongoDB - Falta de transações ⇒ Inconsistências!
  43. 43. Desvantagens do MongoDB - Manutenção e operação difícil - Compactação dos dados - Re-index dos índices - Replica sets que caem - Queries pesadas que travam o banco
  44. 44. Desvantagens do MongoDB - Manutenção e operação difícil - Não tem backup diferencial. Em alguns casos o Replica Set acaba sendo mais fácil - Adicionar shardings pode degradar performance temporiariamente
  45. 45. Desvantagens do MongoDB - Não tem queries! As vezes uma simples consulta requer um código para executá-la
  46. 46. Desvantagens do MongoDB - Pouca documentação*
  47. 47. Desvantagens do MongoDB - Necessita de DBAs / Sysadmins especialistas em MongoDB, o que é raro no mercado. ⇒ 10gen oferece cursos para developers e sysadmins
  48. 48. Duvidas? fabio.perrella@gmail.com http://fabioperrella.blogspot.com.br http://www.slideshare.net/fabioperrella56

×