open source high performance document oriented database
play

open-source, high-performance, document-oriented database - PowerPoint PPT Presentation

open-source, high-performance, document-oriented database Non-relational Operational Stores (NoSQL) New Gen. OLAP RDBMS (vertica, aster, greenplum) (Oracle, MySQL) NoSQL Really Means:


  1. open-­‑source, ¡high-­‑performance, ¡ document-­‑oriented ¡database

  2. Non-relational Operational Stores (“NoSQL”) New Gen. OLAP RDBMS (vertica, ¡aster, ¡greenplum) (Oracle, ¡MySQL)

  3. NoSQL Really Means: non-­‑relational, ¡next-­‑generation ¡ operational ¡datastores ¡and ¡databases

  4. no ¡joins + no ¡complex ¡transactions Horizontally Scalable Architectures

  5. no ¡joins + no ¡complex ¡transactions New Data Models

  6. New Data Models improved ¡ways ¡to ¡develop ¡applications?

  7. Data Models Key ¡/ ¡Value memcached, ¡Dynamo Tabular BigTable Document ¡Oriented MongoDB, ¡CouchDB, ¡JSON ¡stores

  8. • memcached scalability ¡& ¡performance • key/value • RDBMS depth ¡of ¡functionality

  9. JSON-style Documents represented ¡as ¡ BSON {“hello”: ¡“world”} \x16\x00\x00\x00\x02hello \x00\x06\x00\x00\x00world \x00\x00 http://bsonspec.org

  10. Flexible “Schemas” {“author”: ¡“eliot”, {“author”: ¡“mike”, ¡“text”: ¡“...”, ¡“text”: ¡“...”} ¡“tags”: ¡[“mongodb”]}

  11. Dynamic Queries

  12. Atomic Update Modifiers

  13. Focus on Performance

  14. Replication master slave master master slave master master slave slave slave slave master

  15. Auto-sharding Shards mongod mongod mongod ... Config mongod mongod mongod Servers mongod mongod mongod mongos mongos ... client

  16. Many Supported Platforms / Languages

  17. Best Use Cases T Scaling ¡Out Caching The ¡Web High ¡Volume

  18. Less Good At highly ¡transactional ad-­‑hoc ¡business ¡intelligence problems ¡that ¡require ¡SQL

  19. A Quick Aside _id special ¡key present ¡in ¡all ¡documents unique ¡across ¡a ¡Collection any ¡type ¡you ¡want

  20. Post {author: ¡“mike”, ¡date: ¡new ¡Date(), ¡text: ¡“my ¡blog ¡post...”, ¡tags: ¡[“mongodb”, ¡“intro”]}

  21. Comment {author: ¡“eliot”, ¡date: ¡new ¡Date(), ¡text: ¡“great ¡post!”}

  22. New Post post ¡= ¡ {author: ¡“mike”, ¡ ¡date: ¡new ¡Date(), ¡ ¡text: ¡“my ¡blog ¡post...”, ¡ ¡tags: ¡[“mongodb”, ¡“intro”]} db.posts.save(post)

  23. Embedding a Comment c ¡= ¡ {author: ¡“eliot”, ¡ ¡date: ¡new ¡Date(), ¡ ¡text: ¡“great ¡post!”} db.posts.update({_id: ¡post._id}, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡{$push: ¡{comments: ¡c}})

  24. Posts by Author db.posts.find({author: ¡“mike”})

  25. Last 10 Posts db.posts.find() ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡.sort({date: ¡-­‑1}) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡.limit(10)

  26. Posts Since April 1 april_1 ¡= ¡new ¡Date(2010, ¡3, ¡1) db.posts.find({date: ¡{$gt: ¡april_1}})

  27. Posts Ending With ‘Tech’ db.posts.find({text: ¡/Tech$/})

  28. Posts With a Tag db.posts.find({tags: ¡“mongodb”}) ...and Fast (multi-­‑key ¡indexes) db.posts.ensureIndex({tags: ¡1})

  29. Indexing / Querying on Embedded Docs (dot ¡notation) db.posts.ensureIndex({“comments.author”: ¡1}) db.posts.find({“comments.author”: ¡“eliot”})

  30. Counting Posts db.posts.count() db.posts.find({author: ¡“mike”}).count()

  31. Basic Paging page ¡= ¡2 page_size ¡= ¡15 db.posts.find().limit(page_size) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡.skip(page ¡* ¡page_size)

  32. Migration: Adding Titles (just ¡start ¡adding ¡them) post ¡= ¡{author: ¡“mike”, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡date: ¡new ¡Date(), ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡text: ¡“another ¡blog ¡post...”, ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡tags: ¡[“mongodb”], ¡ ¡ ¡ ¡ ¡ ¡ ¡title: ¡“MongoDB ¡for ¡Fun ¡and ¡Profit”} post_id ¡= ¡db.posts.save(post)

  33. Advanced Queries $gt, ¡$lt, ¡$gte, ¡$lte, ¡$ne, ¡$all, ¡$in, ¡$nin db.posts.find({$where: ¡“this.author ¡== ¡‘mike’ ¡|| ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡this.title ¡== ¡‘foo’”})

  34. Other Cool Stuff aggregation ¡and ¡map/reduce capped ¡collections unique ¡indexes mongo ¡shell GridFS geo

  35. slides ¡will ¡be ¡up ¡on ¡http://dirolf.com Download MongoDB http://www.mongodb.org and ¡let ¡us ¡know ¡what ¡you ¡think @mdirolf ¡ ¡ ¡ ¡@mongodb

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend