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
Upcoming SlideShare
Loading in …5
×

MongoDB

736 views
645 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
736
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • \n
  • 10gen - startup dos fundadores da DoubleClick\n
  • \n
  • \n
  • ACID (atomicity, consistency, isolation, durability)\n
  • capped collections são coleções de tamanho fixo, útil para casos de log, por exemplo.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • o árbitro não precisa ser uma máquina dedicada, ele serve apenas para a eleição do nó primário\n\ncomo o mapreduce precisa escrever no banco, ele só pode utilizar o primário\n
  • \n
  • mostrar o try.mongodb.org\n
  • \n
  • 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

    ×