Upload
juan-antonio-roy-couto
View
1.251
Download
0
Embed Size (px)
Citation preview
León, December 4th 2015
Juan Antonio Roy Couto
basicsbasics
#UniLEMongoDB
Twitter Hashtag MongoDB Basics
2
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
❏ 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
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
DB RankingDB-Engines Ranking & Gartner Magic Quadrant
MongoDB Basics
6
Who? MongoDB Basics
7
Who is using MongoDB?https://www.mongodb.com/who-uses-mongodb
Who provides MongoDB?https://www.mongodb.com/partners/list
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
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
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
Concepts MongoDB Basics
11
MongoDB SQL
Database Database
Collection Table
Document Row
Field Column
Embedding/$lookup Join
Stand-alone MongoDB installation MongoDB Basics
12
MongoDB
Client
DRIVER
Client
DRIVER
Client
DRIVER
SecondarySecondary
Replica Set MongoDB installation MongoDB Basics
13
Primary
Client
DRIVER
Client
DRIVER
Client
DRIVER
Replica Set
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
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, ...
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",
}]
}>
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
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",
}]
}>
❏ Replica set❏ Shards❏ config servers❏ mongos❏ Cluster overview
Cluster overview MongoDB Basics
19
Cluster overviewReplica Set
❏ High Availability
❏ Data Safety
❏ Asynchronous
❏ Automatic Node Recovery
❏ Read Preference
❏ Write Concern
Replica Set
Secondary
Secondary
Primary
MongoDB Basics
20
❏ 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
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
❏ 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
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
How does MongoDB work?
Shard 0 Shard 1 Shard 2 Shard 3
mongosClient
Migrations
MongoDB Basics
25
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
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.
Data analytics MongoDB Basics
28
❏ Internals
❏ Aggregation Framework
❏ Map Reduce
❏ Externals
❏ Spark
❏ Hadoop
❏ Tableau (BI)
❏ ...
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,..)
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
❏ 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
Questions?
Questions? MongoDB Basics
32
Thank you for your attention!
MongoDB BasicsLeón, December 4th 2015
Juan Antonio Roy Couto