hu•mon•gous
História Criado pela 10gen em 2007 Liberado como open-source em 2008 Foco: flexibilidade, velocidade/escalabilidade e facil...
MongoDB na QuatixVideoADXEu Atleta
Características Orientado a documentos (JSON-like) Schema-free Não relacional Escalável com Replica Sets e/ou Auto-shardin...
Não se pode ter tudo... Não suporta transações Não existe JOIN Foreign Keys devem ser resolvidas pelo client Não é ACID Pa...
ColeçõesArmazenam os documentosEquivalente a tabelas num banco RDBMSOs documentos armazenados não precisam ser idênticosCr...
DocumentosArmazenados nas coleçõesEquivalem a uma linha (ou registro)Formato BSON (Binary JSON)Normalmente identificados pe...
_id: ObjectId! Equivalente ao id INT NOT NULL PRIMARY KEY AUTO_INCREMENT 12-byte value (4-byte timestamp, 3-byte machine i...
Operações básicas db.posts.find({“autor”: “Rodrigo Machado”}) db.posts.insert({“autor”: “Rodrigo”, “titulo”: “o post”}) db....
Como relacionar os dados?
Normalizados?Mais parecido com bancos de dadostradicionaisEvita o limite de 16Mb pordocumento
Incorporados?Mais fácil para recuperar os dadosPode esbarrar no limite de 16Mb pordocumentoMelhor para casos em que odocum...
Escalalabilidade & Failover
Failover: Replica Sets Duas ou mais réplicas Costuma ser utilizado junto com o sharding (particionamento) O servidor primá...
Escalando: ShardingSharding feito por collectionShard feito com base em umashard keyShard key é imutável - escolhacom cuid...
Referências http://mongotips.com http://shvetsgroup.com/blog/mongodb http://www.slideshare.net/kbanker/mongodb-schema-desi...
Obrigado!  Dúvidas?                 Rodrigo Machado             rcmachado@gmail.com                      @rcmachado
Próximos SlideShares
Carregando em…5
×

MongoDB

768 visualizações

Publicada em

Publicada em: Tecnologia
  • Seja o primeiro a comentar

MongoDB

  1. 1. hu•mon•gous
  2. 2. História Criado pela 10gen em 2007 Liberado como open-source em 2008 Foco: flexibilidade, velocidade/escalabilidade e facilidade de uso O nome na verdade vem do filme Blazing Saddles (1974)
  3. 3. MongoDB na QuatixVideoADXEu Atleta
  4. 4. Características Orientado a documentos (JSON-like) Schema-free Não relacional Escalável com Replica Sets e/ou Auto-sharding Suporte a dados geoespaciais Journaling
  5. 5. Não se pode ter tudo... Não suporta transações Não existe JOIN Foreign Keys devem ser resolvidas pelo client Não é ACID Para consultas complexas, use MapReduce
  6. 6. ColeçõesArmazenam os documentosEquivalente a tabelas num banco RDBMSOs documentos armazenados não precisam ser idênticosCriadas no primeiro insertCaso especial: capped collections
  7. 7. DocumentosArmazenados nas coleçõesEquivalem a uma linha (ou registro)Formato BSON (Binary JSON)Normalmente identificados pelo _idLimitados em 16Mb cada
  8. 8. _id: ObjectId! Equivalente ao id INT NOT NULL PRIMARY KEY AUTO_INCREMENT 12-byte value (4-byte timestamp, 3-byte machine id, 2-byte pid, 3-byte counter) _id pode ser também um UUID (mas o ObjectId é mais eficiente) Para ordenar por data e inserção, basta ordenar pelo ObjectId
  9. 9. Operações básicas db.posts.find({“autor”: “Rodrigo Machado”}) db.posts.insert({“autor”: “Rodrigo”, “titulo”: “o post”}) db.posts.update({“_id”: ObjectId(...)}, {“autor”: “Rodrigo”, “titulo”:“Novo título”}) db.posts.remove({“_id”: ObjectId(...)}) db.cidades.ensureIndex({“loc”: “2d”}, {“background”: true})
  10. 10. Como relacionar os dados?
  11. 11. Normalizados?Mais parecido com bancos de dadostradicionaisEvita o limite de 16Mb pordocumento
  12. 12. Incorporados?Mais fácil para recuperar os dadosPode esbarrar no limite de 16Mb pordocumentoMelhor para casos em que odocumento “filho” sempre aparecevinculado ao documento “pai”
  13. 13. Escalalabilidade & Failover
  14. 14. Failover: Replica Sets Duas ou mais réplicas Costuma ser utilizado junto com o sharding (particionamento) O servidor primário é eleito e identificado automaticamente MapReduce só pode ser executado no primário
  15. 15. Escalando: ShardingSharding feito por collectionShard feito com base em umashard keyShard key é imutável - escolhacom cuidado!A query é enviada para todosos servidores!
  16. 16. Referências http://mongotips.com http://shvetsgroup.com/blog/mongodb http://www.slideshare.net/kbanker/mongodb-schema-design http://www.mongodb.org/display/DOCS/Replica+Sets http://alexzeng.wordpress.com/2011/09/02/mongodb-features-replicat-sets-sharding/ http://www.slideshare.net/mongodb/cool-features-presentation-at-mongo-seattle http://www.mongodb.org/display/DOCS/Use+Cases http://www.slideshare.net/jnunemaker/why-mongodb-is-awesome
  17. 17. Obrigado! Dúvidas? Rodrigo Machado rcmachado@gmail.com @rcmachado

×