Mongo
Upcoming SlideShare
Loading in...5
×
 

Mongo

on

  • 196 views

 

Statistics

Views

Total Views
196
Views on SlideShare
196
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

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

Mongo Mongo Presentation Transcript

  • NOSQL Not Only SQL
  • ПІДХОДИ: • Допомогти RDBMS (для кешування) – Memcached (RAM), Redis • Google big table, Cassandra • Замість RDBMS – MongoDB, CouchDB • Графи – Neo4j
  • CACHE just fast
  • MEMCACHED Cons Pros • Складність • Least пошуку O(1) Recently Used cache • Задається час зберігання • Енергозалежна пам’ять • Відсутній механізм кластеризації • Обмежений функціонал Usecase: Дані з частими запитами (ключ сесії, базова інфа користувача)
  • REDIS Переваги Memcached + • ROM • Clustering • Transactions Usecase: стійкий мемкешд, тайли
  • RDBMS Key User Name Birthday City Key City Key Post Text Date Name Key Country Key User … …
  • DOCUMENT-ORIENTED DB { "Name":"Clark Kent", "Place":{ "City":"Metropolis", "Country":"USA" }, "Posts":[ { "Date":"04 June 2013", "Text":"Great day!" }, { "Date":"05 June 2013", "Text":"Hello, Universe!" } ] }
  • MONGODB sql without sql. and faster
  • PROS/CONS Pros: 1. 2. 3. 4. 5. 6. 7. 8. Документо-орієнтованість – документ відображає об'єкт, що значно спрощує програмування системи; Механізм вкладеності документів забезпечує певну можливість позбавлення від “важких” joinів; Потокова вставка; Хороша масштабованість, завдяки механізму “Віртуального Шардингу”; Map-Reduce фреймворк; Відсутність обмежень на структуру документа, що значно прискорює розробку; JSON; JS; Aggregation pipeline Cons: 1. 2. 3. 4. Ускладнює аналітику; Збитковість даних та потенційні проблеми спричинені їх вкладеністю; Відсутність транзакцій; Ускладнення підтримки з часом через відсутність схеми.
  • Порівняння швидкодії MongoDB та MSSql 2008
  • ПРИКЛАДИ ДОКУМЕНТІВ В БД Структура збереження тегів Структура закладу
  • ДОКУМЕНТИ • Вкладеність • 15 mb max size • _id !!! • Масиви, можливість індексування їх
  • QUERIES db.musicians.find({$or:[{"age":{$gte:"70"}},{"name":"George"}],"bands.name":{$in: ["Beatles","beatles"]}}).sort({"name":1}).pretty()
  • UPSERT (MERGE) Проапдейтити інфу про Джона Ленона, а якщо його немає в базі, то insert. > db.musicians.update({"name":"John","second name":"Lennon"}, {$set:{"born":"9 October 1940","age":"40"}},{"upsert":true}) > > db.musicians.findOne({name:"John"}) { "_id" : ObjectId("51d6597a58ddf14f9052a7db"), "age" : "40", "born" : "9 October 1940", "name" : "John", "second name" : "Lennon" } >
  • GEOSPATIAL INDEXES GeoJson: { <location field> : { type : "<GeoJSON type>" , coordinates : <coordinates> } } db.points.ensureIndex( { <location field> : "2dsphere" } ) Points within a Circle Defined on a Sphere db.<collection>.find( { <location field> : { $geoWithin : { $centerSphere : [ [ <x>, <y> ] , <radius in rad (10/3959)> ] } } } ) GeoJSON Objects Bounded by a Polygon db.<collection>.find( { <location field> : { $geoWithin : { $geometry : { type : "Polygon" , coordinates : [ <coordinates> ] } } } } ) Proximity to a GeoJSON Point db.<collection>.find( { <location field> : { $near : { $geometry : { type : "Point" , coordinates : [ <longitude> , <latitude> ] } , $maxDistance : <distance in meters> } } } )
  • ЖИТТЄВИЙ ПРИКЛАД
  • ДЯКУЮ за увагу