mongodb basics unileon
TRANSCRIPT
![Page 1: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/1.jpg)
León, December 4th 2015
Juan Antonio Roy Couto
basicsbasics
![Page 2: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/2.jpg)
#UniLEMongoDB
Twitter Hashtag MongoDB Basics
2
![Page 3: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/3.jpg)
Who am I?Juan Antonio Roy Couto
❏ Financial Software Developer❏ Email: [email protected]❏ Twitter: @juanroycouto❏ Linkedin: https://www.linkedin.com/in/juanroycouto❏ Slideshare: slideshare.net/juanroycouto❏ Personal blog: http://www.juanroy.es❏ Contributor at: http://www.mongodbspain.com❏ Charrosfera member: http://www.charrosfera.com
MongoDB Basics
3
![Page 4: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/4.jpg)
❏ History❏ Ranking, Who, Community & Metrics, Drivers❏ Products❏ Cluster Overview❏ Characteristics❏ Schema Design❏ How does MongoDB work?❏ Utilities❏ Data analytics❏ Ops Manager❏ Cloud Manager
Agenda MongoDB Basics
4
![Page 5: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/5.jpg)
History MongoDB Basics
MongoDB
Internet of things
Cloud computing
Wearables
Apps
Smart cities
❏ Non structured data
❏ Enabling Big Data analytics
❏ Faster development
❏ Real time analytics
❏ Better strategic decisions
❏ Reduce costs and time to
market
5
![Page 6: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/6.jpg)
DB RankingDB-Engines Ranking & Gartner Magic Quadrant
MongoDB Basics
6
![Page 7: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/7.jpg)
Who? MongoDB Basics
7
Who is using MongoDB?https://www.mongodb.com/who-uses-mongodb
Who provides MongoDB?https://www.mongodb.com/partners/list
![Page 8: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/8.jpg)
Community & Metricshttps://www.mongodb.org/community
MongoDB Basics
❏ 10 million downloads
❏ 2,000+ customers (including over one third of the Fortune 100)
❏ 100+ MongoDB User Groups and 40,000 members worldwide
❏ 300,000+ Education Registrations
❏ The only “Challenger” to relational databases in Gartner’s
Operational Database Magic Quadrant
❏ Highest placed non-relational database in DB Engines rankings
8
![Page 9: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/9.jpg)
Drivershttps://docs.mongodb.org/ecosystem/drivers/
MongoDB Basics
9
MongoDB
APP
DRIVER
❏ c❏ c++❏ c#❏ Java❏ Node.js❏ Perl❏ PHP❏ Python❏ Motor❏ Ruby❏ Scala❏ Go❏ Erlang
![Page 10: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/10.jpg)
Productshttps://www.mongodb.com/products/overview
MongoDB Basics
10
Enterprise Advanced
❏ 24-365 Support
❏ Ops or Cloud Manager
❏ Advanced Security
❏ On-Demand Training, ...
Professional
❏ Expert Support
❏ Cloud Manager
Cloud Manager
Development
❏ Expert Support
❏ Enterprise Advanced
❏ Personal Training
Ops Manager Consulting Training
![Page 11: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/11.jpg)
Concepts MongoDB Basics
11
MongoDB SQL
Database Database
Collection Table
Document Row
Field Column
Embedding/$lookup Join
![Page 12: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/12.jpg)
Stand-alone MongoDB installation MongoDB Basics
12
MongoDB
Client
DRIVER
Client
DRIVER
Client
DRIVER
![Page 13: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/13.jpg)
SecondarySecondary
Replica Set MongoDB installation MongoDB Basics
13
Primary
Client
DRIVER
Client
DRIVER
Client
DRIVER
Replica Set
![Page 14: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/14.jpg)
Replica Set
Secondary
Secondary
Cluster overview MongoDB Basics
14
Primary
Client
DRIVER
Client
DRIVER
Client
DRIVER
Secondary
Secondary
Primary
Secondary
Secondary
Primary
Secondary
Secondary
Primary
mongos mongos mongosconfig server
config server
config server
Shard 0 Shard 1 Shard 2 Shard N-1
![Page 15: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/15.jpg)
Characteristicshttp://www.mongodbspain.com/en/2014/08/17/mongodb-characteristics-future/
MongoDB Basics
15
MongoDB Characteristics
Open Source & General Purpose NoSQL Database Document Oriented (JSON) & Schemaless
High Availability (Native Replication) Automatic Failover
Scalability (Auto Sharding & Load Balancing) TTL Indexes, Capped Collections, Index Intersection, full-text search, GeoSpatial Queries (2d & 2dsphere)
Security (Authentication, Authorization, Users, Roles) Aggregation Framework & MapReduce
Connectors for:● Hadoop & Spark (Batch Data Processing)● BI (Business Inteligence)
Pluggable Storage Engine API (WiredTiger, MMAPv1,Encrypted,In-memory,...)
Joins ($lookup) Document validation, Compass GUI, ...
![Page 16: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/16.jpg)
JSON Document MongoDB Basics
16
> db.customers.findOne(){
"_id" : ObjectId("54131863041cd2e6181156ba"),"first_name" : "Peter","last_name" : "Keil","address" : {
"street" : "C/Alcalá","number" : 123,"location" : "Madrid",
},"pets" : [
{"type" : "Dog","breed" : "Airedale Terrier","name" : "Linda",
},{
"type" : "Dog","breed" : "Akita","name" : "Bruto",
}]
}>
![Page 17: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/17.jpg)
SQL Schema Design MongoDB Basics
17
❏ Customer Key❏ First Name❏ Last Name
Tables
Customers
❏ Address Key❏ Customer Key❏ Street❏ Number❏ Location
Addresses
❏ Pet Key❏ Customer Key❏ Type❏ Breed❏ Name
Pets
![Page 18: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/18.jpg)
MongoDB Schema Design MongoDB Basics
18
Customers Collection
❏ Street❏ Number❏ Location
Addresses
❏ Type❏ Breed❏ Name
Pets
Customers Info
❏ First Name❏ Last Name
❏ Type❏ Breed❏ Name
> db.customers.findOne(){
"_id" : ObjectId("54131863041cd2e6181156ba"),"first_name" : "Peter","last_name" : "Keil","address" : {
"street" : "C/Alcalá","number" : 123,"location" : "Madrid",
},"pets" : [
{"type" : "Dog","breed" : "Airedale Terrier","name" : "Linda",
},{
"type" : "Dog","breed" : "Akita","name" : "Bruto",
}]
}>
![Page 19: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/19.jpg)
❏ Replica set❏ Shards❏ config servers❏ mongos❏ Cluster overview
Cluster overview MongoDB Basics
19
![Page 20: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/20.jpg)
Cluster overviewReplica Set
❏ High Availability
❏ Data Safety
❏ Asynchronous
❏ Automatic Node Recovery
❏ Read Preference
❏ Write Concern
Replica Set
Secondary
Secondary
Primary
MongoDB Basics
20
![Page 21: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/21.jpg)
❏ Scale out
❏ Even data distribution across all of the
shards based on a shard key
❏ A shard key range belongs to only one
shard
❏ More efficient queries (performance)
Cluster overviewShards
Cluster
Shard 0 Shard 2Shard 1
A-I J-Q R-Z
MongoDB Basics
21
![Page 22: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/22.jpg)
Cluster overviewConfig servers
❏ config database❏ Identical information (consistency check).❏ Metadata:
❏ Cluster shards list❏ Data per shard (chunk ranges)❏ ...
❏ Replica Set (3.2 version)
MongoDB Basics
22
![Page 23: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/23.jpg)
❏ Receives client requests and returns results.
❏ Reads the metadata and sends the query to the necessary
shard/shards.
❏ Does not store data.
❏ Keeps a cache version of the metadata.
Cluster overviewmongos
MongoDB Basics
23
![Page 24: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/24.jpg)
Definitions
❏ Range: Data division based on the values of the shard key.
❏ Chunk: They are not physical data. Chunks are just a logical grouping of
data into ranges (64MB by default).
❏ Split: Chunk division (size > 64MB). No data is moved. Background.
❏ Migration: Chunk movements between shards in order to get an even
distribution. Only one chunk is moved at a time.
❏ Balanced system: The same number of chunks per shard.
❏ Balancer: Checks if a migration is needed and starts it (background).
❏ Pre-split: First data is split, then it is stored.
❏ Tag-based sharding: Used when you want to pin ranges to a specific
shard.
MongoDB Basics
24
![Page 25: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/25.jpg)
How does MongoDB work?
Shard 0 Shard 1 Shard 2 Shard 3
mongosClient
Migrations
MongoDB Basics
25
![Page 26: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/26.jpg)
UtilitiesBackup tools
MongoDB Basics
26
Name Description
mongoexport Generates a JSON or CSV file from a mongodb instance
mongoimport Imports content from a JSON, CSV or TSV export
mongodump Utility for creating a binary export
mongorestore Writes data to a mongodb instance from a binary file
![Page 27: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/27.jpg)
UtilitiesTrack tools
MongoDB Basics
27
Name Description
mongostat Provides a quick overview of the status of a running mongod or mongos instance
mongotop
Provides a method to track the amount of time a mongodb instance spends reading or writing data.mongotop provides statistics on a collection level.By default, returns values each second.
![Page 28: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/28.jpg)
Data analytics MongoDB Basics
28
❏ Internals
❏ Aggregation Framework
❏ Map Reduce
❏ Externals
❏ Spark
❏ Hadoop
❏ Tableau (BI)
❏ ...
![Page 29: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/29.jpg)
OPS Manager MongoDB Basics
29
The best way to run MongoDB within your own data center or public cloud
❏ Monitors 100+ key database and system health metrics
(operations, memory, CPU,...)
❏ Customizable web dashboard
❏ Deploy new clusters (adding shards, replica set members,…)
❏ Alerts
❏ Backup (point-in-time recovery)
❏ Automation (upgrades, scaling,..)
![Page 30: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/30.jpg)
Cloud Manager MongoDB Basics
❏ Simplify complex operational tasks (Reduce tedious manual steps to just a click of a button)
❏ Automated database management (deploy and upgrade with zero downtime)
❏ Continuous real-time backup (Cloud manager is disaster recovery).
❏ Full performance visibility
❏ Alerts
❏ Get the insights you need to make critical decisions fast.
❏ Cloud Manager saves you time, money, and helps you protect the customer experience by
eliminating the guesswork from running MongoDB.
30
![Page 31: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/31.jpg)
❏ High Performance
❏ Flexible
❏ Automatic Scalable
❏ Automatic Failover
❏ High Availability
❏ Reduced Administrative Tasks (replica set, sharding, disaster recovery)
❏ Real Time Analytic Tools (aggregation framework, mapReduce, Hadoop,
Spark, and BI connectors,...)
❏ Easy To Learn
Summary MongoDB Basics
31
![Page 32: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/32.jpg)
Questions?
Questions? MongoDB Basics
32
![Page 33: MongoDB Basics Unileon](https://reader031.vdocuments.net/reader031/viewer/2022030205/58aa89fb1a28ab2e448b60df/html5/thumbnails/33.jpg)
Thank you for your attention!
MongoDB BasicsLeón, December 4th 2015
Juan Antonio Roy Couto