Upload
henrik-ingo
View
119
Download
0
Tags:
Embed Size (px)
DESCRIPTION
A comparison of NoSQL and relational databases and 5 unique MongoDB strengths that have made MongoDB so popular.
Citation preview
5 Reasons that made MongoDB
the Leading NoSQL Database
Henrik Ingo
Solutions Architect, MongoDB
2
Hi, I am Henrik Ingo
@h_ingo
5 Reasons that made MongoDB
the Leading NoSQL Database
Henrik Ingo
Solutions Architect, MongoDB
4
1. Open Source
2. Replication
3. Sharding
4. Schemaless
5. Cloud, Big Data...
5 MongoDB features that are
NOT reasons to choose MongoDB
5
1. Open Source
2. Replication
3. Sharding
4. Schemaless
5. Cloud, Big Data...
Reasons to move FROM relational TO NoSQL
...all NoSQL Databases do this.
Ok, so what ARE the
Top 5 reasons to choose MongoDB?
1. General purpose
8
1. General Purpose Database
Big Data Product & Asset
Catalogs
Security &
Fraud
Internet of
Things
Database-as-a-
Service
Mobile
Apps
Customer Data
Management
Data
Hub
Social &
Collaboration
Content
Management
Intelligence Agencies
Top Investment and Retail Banks
Top US Retailer
Top Global Shipping Company
Top Industrial Equipment Manufacturer
Top Media Company
Top Investment and Retail Banks
9
5 NoSQL categories
Key Value Wide Column Document
Graph Map Reduce
Redis, Riak Cassandra
Neo4j Hadoop
10
MongoDB is a Document Database
MongoDBRich Queries
• Find Paul’s cars
• Find everybody in London with a car
built between 1970 and 1980
Geospatial• Find all of the car owners within 5km of
Trafalgar Sq.
Text Search• Find all the cars described as having
leather seats
Aggregation• Calculate the average value of Paul’s
car collection
Map Reduce
• What is the ownership pattern of colors
by geography over time? (is purple
trending up in China?)
{
first_name: ‘Paul’,
surname: ‘Miller’,
city: ‘London’,
location:
[45.123,47.232],
cars: [
{ model: ‘Bentley’,
year: 1973,
value: 100000, … },
{ model: ‘Rolls Royce’,
year: 1965,
value: 330000, … }
}
}
11
Most popular NoSQL database
12
Most popular NoSQL database
Document
Wide
ColumnWide
Column
KV
KVGraph DocumentKV KV
13
Hadoop
Document
Right tool for the right job
Column
KV
Graph
14
Hadoop
Right tool for the right job
RDBMS .
Document
Column
KV
Graph
15
Operational Database Landscape
2. Agile
17
Ease of use
Paul Downey (17419636)
Easy to use
18
Integrated single binary
Chalon Handmade (6206864791)
Integrated single binary
19
Replication & sharding
Replication & Sharding
Daniel Oines (7390222182)
20
mms.mongodb.com/learn-more/automation
MMS Automation
21
Schemaless iterative development
22
{
first_name: ‘Paul’,
surname: ‘Miller’,
city: ‘London’,
location:
[45.123,47.232],
cars: [
{ model: ‘Bentley’,
year: 1973,
value: 100000, … },
{ model: ‘Rolls Royce’,
year: 1965,
value: 330000, … }
}
}
Flexible Schema
23
Rich query language = less code
MongoDBRich Queries
• Find Paul’s cars
• Find everybody in London with a car
built between 1970 and 1980
Geospatial• Find all of the car owners within 5km of
Trafalgar Sq.
Text Search• Find all the cars described as having
leather seats
Aggregation• Calculate the average value of Paul’s
car collection
Map Reduce
• What is the ownership pattern of colors
by geography over time? (is purple
trending up in China?)
{
first_name: ‘Paul’,
surname: ‘Miller’,
city: ‘London’,
location:
[45.123,47.232],
cars: [
{ model: ‘Bentley’,
year: 1973,
value: 100000, … },
{ model: ‘Rolls Royce’,
year: 1965,
value: 330000, … }
}
}
24
Query language = JSON & JavaScript
db.collection.find( { "firstname" : "Henrik" } )
25
Real life agility
Customer Project RDBMS MongoDB
360O customer view
$22M
2 years
Failed
Minimal
90 days
In production
Subscriber database
20 tables
35 joins
login = 5 joins
high latencies
15 months
20 persons
5 collections
2 queries
login = 1 query
10x faster
4 months
10 persons
eCommerce analyticsprototyped only
perf challenges
prototype in 1 week
good perf
http://www.mongodb.com/lp/whitepaper/quantifying-business-advantage
3. JSON & JavaScript
27
MEAN stack
Express.js
28
MEAN stack
Express.js
JSON
JSON
29
JavaScript
JVM stack
JVM
RDBMS
JDBC Spring, Morphia
JSON
Tomcat, Jetty, Play, Spring...
JSON
4. Aggregation Framework
31
OpenStreetMap data as JSON
db.collection.find( { "firstname" : "Henrik" } )
{ "_id" : 98684990,"addr:housenumber" : "4","website" : "http://www.ravintolapohjanpoika.fi/","amenity" : "pub","addr:city" : "Helsinki","addr:postcode" : "00770","location" : {
"type" : "Point","coordinates" : [
25.0760622,60.261145
]},"addr:street" : "Jakomäenkuja","addr:country" : "FI","name" : "Pohjanpoika"
}
http://rosslawley.co.uk/posts/the-most-popular-pub-name/
32
OpenStreetMap data as JSON
db.collection.find( { "firstname" : "Henrik" } )
db.pubs.aggregate( [ { $match : { "addr:city" : { $in :
[ "Helsinki", "Turku", "Tampere" ] } } },{ $group : { "_id" : "$addr:city", "count" : { "$sum" : 1 } } },{ $sort : { "count" : -1 } }
] )
{ "_id" : "Helsinki", "count" : 150 }{ "_id" : "Tampere", "count" : 53 }{ "_id" : "Turku", "count" : 23 }
33
Big Data warning: data may be dirty
db.collection.find( { "firstname" : "Henrik" } )
db.pubs.find( { "addr:city" : { $exists : false } } ).count()
2291
db.pubs.find( { "addr:city" : { $exists : true } } ).count()
701
34
Sharding is a first class citizen
db.collection.find( { "firstname" : "Henrik" } )
{ $match : ... }{ $group : ... }{ $sort : ... }
DB DB DB
Query Router
35
Sharding is a first class citizen
db.collection.find( { "firstname" : "Henrik" } )
{ results }
{ $match : ... }{ $group : ... }{ $sort : ... }
{ $match : ... }{ $group : ... }{ $sort : ... }
{ $match : ... }{ $group : ... }{ $sort : ... }
{ $group : ... }{ $sort : ... }
5. Ecosystem
37
7,000,000+ MongoDB Downloads
150,000+ Online Education Registrants
35,000+ MongoDB Management Service (MMS) Users
30,000+ MongoDB User Group Members
20,000+ MongoDB Days Attendees
Global Community
38
MongoDB Partners (500)
Software & Services
Cloud & Channel Hardware
39
MongoDB Inc
350+ employees 1,000+ customers
Over $231 million in funding13 offices around the world
Summary
41
1. Open Source
2. Replication
3. Sharding
4. Schemaless
5. Agile, Cloud, Big Data...
5 MongoDB features that are
NOT reasons to choose MongoDB
42
1. General purpose
2. Agile
3. JSON & JavaScript
4. Aggregation framework
5. Ecosystem
Top 5 reasons to choose MongoDB