Mongo DB

613 views
529 views

Published on

Apresentação sobre mondo DB
Apresentada dia 09/05

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

  • Be the first to like this

No Downloads
Views
Total views
613
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mongo DB

  1. 1. Sobre MongoDB...tenho umsite bacana WWW.GOOGLE.COM.BR
  2. 2. Instalação...na raiz crie o caminho /data/dbDownload >> http://www.mongodb.org/downloadsDescompacte o .zip..Na pasta bin...- execute mongod.exe- e mongo.exeCHAPLOU!!MongoDB Instalado e Rodando!
  3. 3. O que é o que em MongoDBfazendo uma analogia com que usamos atualmente...MongoDB MySQLDB schemaCollection tabelaDocument 1 registro na baseIndex Index
  4. 4. DB- Não precisa ser criado explicitamente- comandos:show dbsuse nome_dbCollections- Tb Não precisa ser criado explicitamente- comando:show collections
  5. 5. Tipos suportados...nullbooleanMongoBinDatestring(UTF-8)MongoId(4cb4ab6d7addf98506010000)integer(32/64 bit)doubleMongoDatearrayassociative array("object" for java script)
  6. 6. Documents- Armazenados como BSON (Binary JSON)- Pode ter documentos embutidos- DEVE TER um unico ID (_id){"_id" : "4cb4ab6d7addf98506010000","name" : "Rodrigo Monteiro","idade" : 29,"redessocial" : [ { "rede" : "facebook","url" : "facebook.com/rodrigoma" },{ "rede" : "twitter","url" : "twitter.com/rodrigoma" } ]}MongoId
  7. 7. Documentsmais alguns exemplos de documentos....{ "_id" : 1, "tipo" : "circulo", "area" : 3.14, "radius" : 1 }{ "_id" : 2, "tipo" : "quadrado", "area" : 4, "d" : 2 }{ _id : 3, tipo : "retangulo", area : 10, length : 5, width : 2 }{"_id" : 4,"name" : "Fulano","likes" : ["videogame", "filmes", "programacao", "tecnologia" ]}
  8. 8. Index{"v" : 1,"key" : { "_id" : 1 },"ns" : "test.ppt","name" : "_id_"}{"v" : 1,"key" : { "_id" : 1 },"ns" : "test.posts","name" : "_id_"},{"v" : 1,"key" : { "author" : -1 },"ns" : "test.posts","name" : "author_-1"}
  9. 9. Comandos - insertdb.ppt.help()db.ppt.count()db.ppt.drop()db.ppt.dropIndex()db.ppt.ensureIndex()db.ppt.getIndexes()db.ppt.insert( { _id : 1, tipo : "circulo", area : 3.14, radius : 1 } )db.ppt.insert( { _id : 2, tipo : "retangulo", area : 10, len : 5, w : 2 })db.ppt.insert( { _id : 3, tipo : "quadrado", area : 4, d : 2 } )
  10. 10. Comandos - find - findOneoperadores de comparação$all $in $nin$gte $gt$lt $lte$nedb.ppt.findOne([query])db.ppt.find() [count(), limit(), skip(), sort(), pretty()]db.ppt.find( { "tipo" : "quadrado" } )db.ppt.find( { "tipo" : "quadrado" }, { tipo : 1, _id : 0 } )
  11. 11. Comandos - updatedb.ppt.update( { _id : 1 }, { tipo : "circulo2" } )db.ppt.update( { _id : 1 }, { $set : { tipo : "circulo" } } )db.ppt.update( { _id : 1 }, { $set : { cor : "amarelo" } } )db.ppt.update( { _id : 1 }, { $unset : { cor : "amarelo" } } )db.ppt.update( { _id : 1 }, { $push : { onde : "ventilador" } } )db.ppt.update( { _id : 1 }, { $addToSet : { onde : "ventilador" } } )db.ppt.update( { _id : 1 }, { $pull : { onde : "ventilador" } } )db.ppt.update( { _id : 1 }, { $set : { onde.0 : "roda" } } )db.ppt.update( { _id : 1 }, { $inc : { radius : 1 } } )db.ppt.update( { area : { $gt : 2 } }, { $set : { cor : "azul" } }, {multi: true } )
  12. 12. Comandos - Aggregate$project$match$limit$skip$unwind$group$sort$geoNearNÃO ESQUECER DE RODAR O SCRIPT
  13. 13. Comandos - Aggregatedb.posts.aggregate( [{ $project : { _id : 0, comments : 1 } },{ $limit : 1 },{ $unwind : "$comments" },{ $project : { "comments.author" : 1 } },{ $group : { "_id" : "$comments.author", "count" : { $sum : 1 } } },{ $sort : { "count" : -1 } }] )
  14. 14. E NO JAVA<!-- Mongo Java Driver --><dependency><groupId>org.mongodb</groupId><artifactId>mongo-java-driver</artifactId><version>2.10.1</version></dependency>http://docs.mongodb.org/ecosystem/drivers/
  15. 15. Sharding - é a abordagem da MongoDB paradimensionamento.- Particiona uma collection earmazena diferentes partes emdiferentes máquinas.Quando uma collection tornar-semuito grande para oarmazenamento existente,é só precisa adicionar uma novamáquina.- distribui automaticamente acollection para o novo servidor.- equilibra automaticamente osdados e carga entre máquinas.
  16. 16. Replica SetÉ um conjunto de instâncias do mongodque replicam entre si contra falha. Amaioria dos ReplicaSet é constituido de 2ou mais instâncias de mongod, com nomáximo um deles designado comoprimário e o resto como membrossecundários. Escritas são feitas naprimária, enquanto os membros dasecundária replicam a partir da primáriade forma assincrona. Com isso temosredundância, ajuda a garantir altadisponibilidade, simplifica algumas tarefasadministrativas, tais como backups, epode aumentar a capacidade de leitura. Amaioria das implantações usamreplicação.
  17. 17. MongoDB (2.2)Best used: If you need dynamic queries. If you prefer todefine indexes, not map/reduce functions. If you need goodperformance on a big DB. If you wanted CouchDB, but yourdata changes too much, filling up disks.For example: For most things that you would do withMySQL or PostgreSQL, but having predefined columnsreally holds you back.Redis (V2.4)Best used: For rapidly changing data with a foreseeabledatabase size (should fit mostly in memory).For example: Stock prices. Analytics. Real-time datacollection. Real-time communication. And wherever youused memcached before.PARA MAIS INFORMAÇÕES: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redisCouchDB (V1.2)Best used: For accumulating, occasionally changing data,on which pre-defined queries are to be run. Places whereversioning is important.For example: CRM, CMS systems. Master-masterreplication is an especially interesting feature, allowingeasy multi-site deployments.Cassandra (1.2)Best used: When you write more than you read (logging).If every component of the system must be in Java. ("Noone gets fired for choosing Apaches stuff.")For example: Banking, financial industry (though notnecessarily for financial transactions, but these industriesare much bigger than that.) Writes are faster than reads, soone natural niche is data analysis.
  18. 18. Onde podemos usar?????
  19. 19. substituir o proprio mysql que usamos hojeos arquivos de logs (click, action, impressão),para tirar relatorios usando o aggregationEXEMPLO >>>>>
  20. 20. LOG DE CLICK{date : "2013-05-07 16:01:00",referrer : "http://ads.lomadee.com/as/iframeContent.html?mdsrc=23177319&dim=728_90&c=BR",requestUrl : "http://compare.buscape.com.br/tr/rd?a=a2VrFQ0oZQcwahFpOQgSMBxtLWo",cookies : "xb=Xbox+360+250GB&Huawei+E5&simpsons+temporada; idloc=1891254215420130507093908675",extralog : {mdsrc : 23177319, mddtn : 167353925, mdsit : 33385672, mdpub : 22242753,mdadv : 1, mdcountry : "BR", mdapp : 134, mdidprof : 0, mdidbehav : 0,dtn_url : "http%3A%2F%2Fwww.mobly.com.br%2Fcabideiro-cubo-5-ganchos-imbuia-3384.html",elxx : "1891254215420130507160056081", elst : 0, versionlk : 5,mdgenericadid : 1228403, mdcreationlkdate : "2013-05-07+15%3A40%3A25",mdoff : 117701143, mdidcateg : 1487, mdidofr : 117701143,mdpos : 4, pr : 322, invalidsource : 23177319},ip : "189.125.42.154",useragent : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1496.0Safari/537.36"}
  21. 21. perguntas ?thanks

×