• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
MongoDB
 

MongoDB

on

  • 801 views

 

Statistics

Views

Total Views
801
Views on SlideShare
801
Embed Views
0

Actions

Likes
2
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \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 MongoDB Presentation Transcript

  • hu•mon•gous
  • 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)
  • MongoDB na QuatixVideoADXEu Atleta
  • 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
  • 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
  • ColeçõesArmazenam os documentosEquivalente a tabelas num banco RDBMSOs documentos armazenados não precisam ser idênticosCriadas no primeiro insertCaso especial: capped collections
  • DocumentosArmazenados nas coleçõesEquivalem a uma linha (ou registro)Formato BSON (Binary JSON)Normalmente identificados pelo _idLimitados em 16Mb cada
  • _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
  • 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})
  • 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 odocumento “filho” sempre aparecevinculado ao documento “pai”
  • Escalalabilidade & Failover
  • 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
  • Escalando: ShardingSharding feito por collectionShard feito com base em umashard keyShard key é imutável - escolhacom cuidado!A query é enviada para todosos servidores!
  • 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
  • Obrigado! Dúvidas? Rodrigo Machado rcmachado@gmail.com @rcmachado