Top Banner
MONGODB WORKSHOP { meetup: “NYC Open Data”, presenters: [“Kannan Sankaran”, “Roman Kubiak”], host: “Vivian”, location: “ThoughtWorks”, audience: “You guys” }
106

MongoDB Workshop

May 10, 2015

Download

Technology

eagerdeveloper

Workshop held at NYC Open Data Meetup
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MongoDB Workshop

MONGODB WORKSHOP{

meetup: “NYC Open Data”, presenters: [“Kannan Sankaran”, “Roman Kubiak”],host: “Vivian”,location: “ThoughtWorks”,audience: “You guys”

}

Page 2: MongoDB Workshop

MONGODB WORKSHOP{

meetup: “NYC Open Data”, presenters: [“Kannan Sankaran”, “Roman Kubiak”],host: “Vivian is awesome, THANK YOU”,location: “ThoughtWorks is awesome, THANK YOU”,audience: “You guys are awesome, THANK YOU”

}

Page 3: MongoDB Workshop

OUR TOPICSOVERVIEW OF DATABASES

WHAT IS MONGODB?

MONGODB, NOSQL, AND RELATIONAL DATABASES

A PEEK AT MONGODB COMMANDS

SHARDING AND REPLICATION IN MONGODB

FUTURE OF MONGODB AND US

DEMO

WORKSHOP

Page 4: MongoDB Workshop

ARCHITECT

MONGO PIE

Page 5: MongoDB Workshop

OVERVIEW OF DATABASES

Page 6: MongoDB Workshop

ROWSCOLUMNS

TABLES

ORGANIZING DATA

Page 7: MongoDB Workshop

DATA SPREAD OUT IN VARIOUS

TABLES

Page 8: MongoDB Workshop

DATA MAY BE RELATED

Page 9: MongoDB Workshop

1980s 1990s 2000s 20071970s

RELATIONAL DATABASES

(RDBMS) CREATED

CLIENT/SERVER MODEL

STRUCTURED QUERY LANGUAGE (SQL) CREATED

RDBMS CONTINUE TO BE POPULAR

INTERNET ARRIVES

INTERNET GROWS

NoSQL DATABASES EMERGE

MONGODB CREATED

DATABASES AND THEIR GROWTH

Page 10: MongoDB Workshop

WHAT IS NoSQL?

Page 11: MongoDB Workshop

A TWITTER HASHTAG#nosql

Page 12: MongoDB Workshop

NOSQL GENERALLY REFERS TO DATABASES THAT DO NOT HAVE

A FIXED ROW-COLUMN DATA ORGANIZATION STRUCTURE.

Page 13: MongoDB Workshop

WHAT IS MONGODB?

Page 14: MongoDB Workshop

A HUMONGOUS NoSQL DB

Page 15: MongoDB Workshop

DOCUMENTS NOT ROWSCOLLECTIONS NOT TABLES

A HUMONGOUS NoSQL DBWHERE DATA IS ORGANIZED BY

Page 16: MongoDB Workshop

WHAT IS A DOCUMENT?

Page 17: MongoDB Workshop

A DOCUMENT IS LIKE A ROW…

{_id: ObjectID(“12AB34CD56EF”),name: “Ed Brown”,orderDate: “2-1-2014”

}

Page 18: MongoDB Workshop

…BUT IT IS MORE FLEXIBLE{

_id: ObjectID(“12AB34CD56EF”),name: “Ed Brown”,orderDate: “2-1-2014”,payments: {

car: “100.50”,hotel: “200”

}}

THAT LOOKS LIKE A DOCUMENT WITHIN ANOTHER DOCUMENT!

{_id: ObjectID(“12AB34CD56EF”),name: “Ed Brown”,orderDate: “2-1-2014”,payments: {

car: “100.50”,hotel: “200”

},tags: [“shirt”, “tie”]

}

WHAT IS THIS? MULTIPLE VALUES WITHIN A COLUMN?

Page 19: MongoDB Workshop

HOW LARGE CAN THIS DOCUMENT BE?

{_id: ObjectID(“12AB34CD56EF”),name: “Ed Brown”,orderDate: “2-1-2014”,payments: {

car: “100.50”,hotel: “200”

}………

}

UP TO 16 MB

LEO TOLSTOY’S 1225-PAGE BOOK ON WAR AND PEACE CAN FIT IN 1 DOCUMENT, AS IT IS ONLY AROUND 3 MB.

Page 20: MongoDB Workshop

WELL, ALMOST!

ISN’T THAT JSON?

Page 21: MongoDB Workshop

WHAT IS JSON?

WEB SERVER

MONGODB DATABASE

{

“vehicle”: “Chevy Malibu 2014”,“price”: { “min”: 22340, “max”: 29950 },“citympg”: 25

}

{ “make”: “Chevy”,“model”: “Malibu”,“year”: 2014

}

Page 22: MongoDB Workshop

WHAT IS JSON?

{

vehicle: “car”, make: “Malibu”,color: “blue”

}

JAVASCRIPT OBJECT NOTATION NAME-VALUE PAIRS

{ name: “Kannan”, gender: “male”,favorites: {

color: “blue”},interests: [“MongoDB”, “R”]

}

Page 23: MongoDB Workshop

MONGODB DOCUMENT{

_id: ObjectID(“12AB34CD56EF”),name: “Kannan”,

gender: “male”,

favorites:

{

color: “blue”

},

interests: [“MongoDB”, “R”],

date: new Date()

}

Page 24: MongoDB Workshop

WHAT IS A COLLECTION?

Page 25: MongoDB Workshop

A GROUP OF DOCUMENTS

{_id: ObjectID(“12AB34CD56EF”),name: “Ed Brown”,orderDate: “2-1-2014”

}{

_id: ObjectID(“78AB34CD56EF”),name: “Roman Ku”,orderDate: “2-1-2014”

}{

_id: ObjectID(“56AB34CD56EF”),name: “Eva Green”,orderDate: “2-1-2014”

}

{_id: ObjectID(“34AB34CD56EF”),name: “Ed Brown”,orderDate: “2-1-2014”,tags: [“shirt”, “tie”]

}{

_id: ObjectID(“90AB34CD56EF”),name: “Roman Ku”,orderDate: “2-1-2014”,payments: { car: “100.50”, hotel: “200” }

}{

_id: ObjectID(“13AB34CD56EF”),name: “Eva Green”,orderDate: “2-1-2014”

}

{_id: ObjectID(“35AB34CD56EF”),name: “Ed Brown”,orderDate: “2-1-2014”

}{

_id: ObjectID(“79AB34CD56EF”),vehicle: “car”, make: “Malibu”,color: “blue”

}{

_id: ObjectID(“57AB34CD56EF”),name: “Eva Green”,orderDate: “2-1-2014”,tags: [“shirt”, “tie”]

}

SIMILAR DIFFERENT VERY DIFFERENT

Page 26: MongoDB Workshop

MONGODB IS...

A DOCUMENT-ORIENTED NOSQL DATABASE WHERE DATA CONSISTS OF

DOCUMENTS STORED IN COLLECTIONS.

Page 27: MongoDB Workshop

MONGODB FEATURES

EASY TO LEARNDYNAMIC QUERY LANGUAGE - SEARCH BY FIELDS, REGULAR EXPRESSIONS- USER-DEFINED JAVASCRIPT FUNCTIONS- AGGREGATION, INCLUDING MAP/REDUCEINDEXING – SINGLE, COMPOUND, GEOSPATIALREPLICATIONLOAD BALANCING USING SHARDINGGRIDFS TO STORE FILES

Page 28: MongoDB Workshop

MONGODB USAGE

CONTENT MANAGEMENT SYSTEMSE-COMMERCE WEBSITESLOG DATA AND HIERARCHICAL AGGREGATIONREAL-TIME ANALYTICS

Page 29: MongoDB Workshop

MONGODB, NOSQL, AND RELATIONAL DATABASES

Page 30: MongoDB Workshop

1980s 1990s 2000s 20071970s

BERKELEY INGRES

ORACLE

INFORMIX

DB2

SYBASE

SQL SERVER

MS ACCESS

POSTGRESQL

MYSQL

NETEZZA

GREENPLUM

VERTICA

MARIADB

MONGODB

DATABASE MANAGEMENT SYSTEMS

MOST SYSTEMS USE SOME FLAVOR OF SQL

Page 31: MongoDB Workshop

RELATIONAL DATABASES WERE / STILL ARE THE DEFACTO IN SEVERAL

COMPANIES.

Page 32: MongoDB Workshop

RELATIONAL DATABASE FEATURESC.R.U.D. OPERATIONS

STRUCTURED QUERY LANGUAGE (SQL)

FIXED DATABASE SCHEMAS

NORMALIZATION

REFERENTIAL INTEGRITY(E.G. FOREIGN KEYS, CONSTRAINTS)

JOINS

TRANSACTIONS - A.C.I.D. PROPERTIES

INDEXES

Page 33: MongoDB Workshop

IN THE LATE 90s/EARLY 2000s…

DOT COM BUBBLE

DOT COM BUST

WEB SERVICES

SOCIAL NETWORKS

GOOGLE, AMAZON

COMPUTER OWNERS/USERS

WEBSITE DATA COLLECTION

DATABASE SIZES

Page 34: MongoDB Workshop

COMPUTING/STORAGE RESOURCES BECAME A

CHALLENGE FOR SMALLER COMPANIES LIKE GOOGLE AND

AMAZON THAT HAD LOTS OF DATA.

Page 35: MongoDB Workshop

SCALE UP

MORE DISK SPACE

MORE RAM

MORE PROCESSORS

MORE EXPENSIVE

SINGLE POINT OF FAILURE

HARDWARE HAS LIMITS!

BIGGER MACHINE

SCALE OUT

LESS DISK SPACE

LESS RAM

LESS PROCESSORS

LESS EXPENSIVE

NO SINGLE POINT OF FAILURE

HIGHER RELIABILITY DESPITE FAILURE OF INDIVIDUAL MACHINES

SMALLER MACHINES

Page 36: MongoDB Workshop

RELATIONAL DATABASES WERE DESIGNED TO OPERATE ON A

SINGLE MACHINE, AND SCALING OUT MEANT A LOT OF

CHALLENGES.

Page 37: MongoDB Workshop

SPLITTING DATA FOR SCALE OUT

BY COLUMNS BY

ROWS

Page 38: MongoDB Workshop

WORDPRESS MYSQL SCHEMA WITH 2 TABLES

Page 39: MongoDB Workshop

A JOIN QUERY IN MYSQLWP_POSTS

SELECT p.post_author, p.post_date, c.comment_author, c.comment_dateFROM wp_posts AS p INNER JOIN wp_comments AS c ON p.ID = c.comment_post_IDWHERE p.ID = 1;

WP_COMMENTS

Page 40: MongoDB Workshop

A JOIN QUERY IN MYSQLWP_POSTS WP_COMMENTS

RESULT

Page 41: MongoDB Workshop

SCALE OUT DATA BY ROWSWP_POSTS

A

B

WP_COMMENTSC

D

Page 42: MongoDB Workshop

HOW COMPLICATED

WOULD SCALING THIS

BE?

Page 43: MongoDB Workshop

JOINS MAY GET REALLY MESSY WITH MANY MACHINES

(DISTRIBUTED JOINS)

Page 44: MongoDB Workshop

TRANSACTIONSWP_POSTS

BEGIN TRANSACTIONTRY

DELETE FROM wp_comments AS cWHERE c.comment_post_ID = 1;

DELETE FROM wp_posts AS pWHERE p.ID = 1;

CATCHIF ERROR THEN ROLLBACK TRANSACTION

COMMIT TRANSACTIONEND TRANSACTION

WP_COMMENTS

MUST SATISFY A.C.I.D.

PROPERTIES

Page 45: MongoDB Workshop

TRANSACTIONS MAY TAKE A LONG TIME TO EXECUTE IF DATA

IS ON DIFFERENT MACHINES (DISTRIBUTED TRANSACTIONS)

Page 46: MongoDB Workshop

TO SPLIT THE DATA, A WHOLE BUNCH OF COMPROMISES

MUST BE MADE IN RELATIONAL DATABASES

Page 47: MongoDB Workshop

THIS GAVE RISE TO NON-RELATIONAL SOLUTIONS

Page 48: MongoDB Workshop

GOOGLEAMAZON

Page 49: MongoDB Workshop

NoSQL SYSTEM CHARACTERISTICSC.R.U.D. OPERATIONS

STRUCTURED QUERY LANGUAGE (SQL)

FIXED DATABASE SCHEMAS

NORMALIZATION

REFERENTIAL INTEGRITY(E.G. FOREIGN KEYS, CONSTRAINTS)

JOINS

TRANSACTIONS – LIMITED A.C.I.D. PROPERTIES

INDEXES

OPEN SOURCE

Page 50: MongoDB Workshop
Page 51: MongoDB Workshop

HOW IS THIS SCALABILITY ACHIEVED IN MONGODB?

Page 52: MongoDB Workshop

STACKING THE DATA

Page 53: MongoDB Workshop

STACKING THE DATAWP_POSTS

WP_COMMENTS

NO NEED TO JOIN

{_id: 1,post_author: “Amy W”,post_date: “1/1/2014”,comments: [{

comment_author: “bestguy”,comment_date: “1/1/2014”

},{comment_author: “baddie”,comment_date: “1/10/2014”

},{comment_author: “clever24”,comment_date: “1/11/2014”

}]}

Page 54: MongoDB Workshop

NOW, EACH DOCUMENT CAN BE IN A DIFFERENT MACHINE

Page 55: MongoDB Workshop

WHAT ABOUT TRANSACTIONS?

Page 56: MongoDB Workshop

MONGODB DOES NOT SUPPORT TRANSACTIONS

Page 57: MongoDB Workshop

BUT SINGLE DOCUMENT UPDATE IS ATOMIC{

_id: 1,post_author: “Amy W”,post_date: “1/1/2014”,comments: [{

comment_author: “bestguy”,comment_date: “1/1/2014”

},{comment_author: “baddie”,comment_date: “1/10/2014”

},{comment_author: “clever24”,comment_date: “1/11/2014”

}]}

Page 58: MongoDB Workshop

THE KEY IS TO FOCUS ONTHE DATA MODEL

Page 59: MongoDB Workshop

MONGODB CHARACTERISTICSC.R.U.D. OPERATIONS

STRUCTURED QUERY LANGUAGE (SQL) DYNAMIC QUERY LANGUAGE

FIXED DATABASE SCHEMASFLEXIBLE DATABASE SCHEMAS

NORMALIZATION

REFERENTIAL INTEGRITY(E.G. FOREIGN KEYS, CONSTRAINTS)

JOINS

TRANSACTIONS – LIMITED A.C.I.D. PROPERTIES

INDEXES

OPEN SOURCE

Page 60: MongoDB Workshop

WHEN NOT TO USE MONGODB

IF TRANSACTIONS ARE A MUST

IF JOINS ARE ABSOLUTELY NECESSARY

SOFTWARE PRODUCTS LIKE WORDPRESS THAT ALREADY HAVE TONS OF SUPPORT FOR RELATIONAL DATABASES

Page 61: MongoDB Workshop

FOR MONGODB vs MYSQL ARGUMENTS, WATCH…

Source: http://www.youtube.com/watch?v=b2F-DItXtZs

Page 62: MongoDB Workshop

A PEEK AT MONGODB COMMANDS

Page 63: MongoDB Workshop

{ _id: ObjectID(“A1234566789”), name: “Ed Brown”, orderDate: “2-1-2014”

}{

_id: ObjectID(“A1234566789”), name: “Roman Ku”, orderDate: “1-1-2014”

}{

_id: ObjectID(“A1234566789”), name: “Eva Green”, orderDate: “10-12-2013”

}

MONGODB IS A DOCUMENT-ORIENTED DATABASE

DOCUMENTS ARE INTERNALLY STORED AS BSON (BINARY JSON)

Page 64: MongoDB Workshop

MONGODB FEATURES

EASY TO LEARNDYNAMIC QUERY LANGUAGE - SEARCH BY FIELDS, REGULAR EXPRESSIONS- USER-DEFINED JAVASCRIPT FUNCTIONS- AGGREGATION, INCLUDING MAP/REDUCEINDEXING – SINGLE, COMPOUND, GEOSPATIALREPLICATIONLOAD BALANCING USING SHARDINGGRIDFS TO STORE FILES

Page 65: MongoDB Workshop

MONGODB SYNTAX SEEMS TO BE BORROWED FROM…

- MYSQL

- JSON

- JAVASCRIPT

- UNIX

Page 66: MongoDB Workshop

MONGODB SUPPORTS SEVERAL LANGUAGES

DRIVERS FOR

- PYTHON

- NODE.JS

- C#

- HADOOP

- R

AND MANY MORE

Page 67: MongoDB Workshop

MONGODB TERMINOLOGYRDBMS MONGODBDATABASE DATABASE

TABLE COLLECTION

ROW DOCUMENT

A DATABASE CAN HAVE 1 OR MORE COLLECTIONS.

A COLLECTION CAN HAVE 1 OR MORE DOCUMENTS.

A DOCUMENT CAN HAVE 1 OR MORE NAME-VALUE PAIRS, AND/OR 1 OR MORE EMBEDDED DOCUMENTS.

Page 68: MongoDB Workshop

MONGODB SUPPORTS SEVERAL DATA TYPES

STRING

NUMBER

BOOLEAN

ARRAY

DATE

EMBEDDED DOCUMENT

NULL

Page 69: MongoDB Workshop

MONGODB OPERATIONS

C.R.U.D.CREATE

READ

UPDATE

DELETE

Page 70: MongoDB Workshop

CONNECTING TO MONGODB

MONGOD

MONGO ROBOMONGO

MONGO SHELL IS A JAVASCRIPT INTERPRETER.

ROBOMONGO HAS THE SAME JAVASCRIPT ENGINE AS THE MONGO SHELL.

Page 71: MongoDB Workshop

mongoimport -d tennis –c ParksNYC --type json --drop < ParksNYC.json

IMPORT JSON TO MONGO COLLECTION

Page 72: MongoDB Workshop

CREATE TABLE ParksNYC

(

id int identity(1, 1),

Prop_ID varchar(10),

Name varchar(50) not null,

Location varchar(20) not null,

EstablishedOn datetime

)

SQL MONGODB

CREATE COLLECTION

Page 73: MongoDB Workshop

INSERT ParksNYC (Prop_ID, Name, Location, EstablishedOn)

VALUES(’Q900’, ’Ridge Park’, ‘1843 Norman St.’, ‘1/1/1970’)

db.ParksNYC.insert({

Prop_ID : "Q900",

Name : "Ridge Park",

Location : ”1843 Norman St.”,

EstablishedOn: “1/1/1970”

})

SQL MONGODB

CREATE DOCUMENT

Prop_ID Name Location EstablishedOn

Q900 Ridge Park 1843 Norman St. 1/1/1970

Page 74: MongoDB Workshop

SELECT * FROM ParksNYC

SQL MONGODB

READ ALL DOCUMENTS

db.ParksNYC.find()

Page 75: MongoDB Workshop

SELECT * FROM ParksNYC

WHERE Name = "Ridge Park"

SQL MONGODB

READ SPECIFIC DOCUMENT

db.ParksNYC.find(

{

Name : "Ridge Park”

})

Page 76: MongoDB Workshop

SELECT TOP 1 * FROM ParksNYC

SQL MONGODB

READ FIRST DOCUMENT

db.ParksNYC.findOne()

Page 77: MongoDB Workshop

SELECT id, Name FROM ParksNYC

SQL MONGODB

READ SPECIFIC FIELDS IN DOCUMENT

db.ParksNYC.find(

{ },{

_id: 1, Name: 1

}

)

Page 78: MongoDB Workshop

SELECT id, Name FROM ParksNYC WHERE Courts > 5AND Courts <= 8

SQL MONGODB

READ DOCUMENTS WITH RANGE CRITERIA

db.ParksNYC.find(

{

Courts: { $gt: 5, $lte: 8}

}

)

Page 79: MongoDB Workshop

SELECT id, Name FROM ParksNYC WHERE NAME LIKE ‘F%’

SQL MONGODB

READ DOCUMENTS THAT START WITH A LETTER (REGULAR EXPRESSION)

db.ParksNYC.find(

{

Name: /^F/

}

)

Page 80: MongoDB Workshop

UPDATE ParksNYCSET VisitDate = ‘1/1/2014’

SQL MONGODB

UPDATE FIELD IN DOCUMENT

db.ParksNYC.update({ }, {

$set: { VisitDate: "1/1/2014" }

},{ multi: true}

)

Page 81: MongoDB Workshop

DELETE FROM ParksNYCWhere Name = ‘Ridge Park’

SQL MONGODB

DELETE DOCUMENT

db.ParksNYC.remove(

{

Name : “Ridge Park”})

Page 82: MongoDB Workshop

SELECT COUNT(Name) AS Parks_Number,

SUM(Courts) AS Courts_Number

FROM ParksNYC

GROUP BY Accessible

SQL MONGODB

GROUP BY AND SUM

db.ParksNYC.aggregate({ $group :

{_id : "$Accessible", Parks_Number : { $sum : 1 }, Courts_Number :

{ $sum : "$Courts" } }

})

Page 83: MongoDB Workshop

SHARDING AND REPLICATION IN MONGODB

Page 84: MongoDB Workshop

EACH DOCUMENT CAN BE IN A DIFFERENT MACHINE

Page 85: MongoDB Workshop

HOW DOES MONGODB DO THIS?

Page 86: MongoDB Workshop

AUTOSHARDING, FOR A COLLECTION

Page 87: MongoDB Workshop

MONGODB CLUSTER

MONGOS

CLIENT

MONGOD MONGOD MONGOD

CLIENT

MONGOD

Page 88: MongoDB Workshop

SHARDING STEPS1. ENABLE SHARDING ON DATABASE.2. PICK A SHARD KEY FROM THE COLLECTION.

MAKE SURE THE KEY IS- INDEXED- SUFFICIENTLY UNIQUE SO IT WILL HAVE A VARIETY OF UNIQUE VALUES.

3. SIT BACK AND RELAX. MONGODB WILL AUTOMATICALLY DO THE SHARDING.

Page 89: MongoDB Workshop

SHARDING WP_POSTS COLLECTION{

_id: 1,post_author: “Amy W”,post_date: “1/1/2014”,comments: [{

comment_author: “bestguy”,comment_date: “1/1/2014”

},{comment_author: “baddie”,comment_date: “1/10/2014”

},{comment_author: “clever24”,comment_date: “1/11/2014”

}]}

SHARD KEY

Page 90: MongoDB Workshop

BREAKING THE USERS INTO CHUNKS

$minKeyAbba1234

Abba1235CarlW

CarlZFrankT

FrankYJackA

JackBLambV

LambWRobF

RobGTimA

TimB$maxKey

Page 91: MongoDB Workshop

BREAKING THE RANGE INTO CHUNKS

$minKeyAbba1234

Abba1235CarlW

CarlZFrankT

FrankYJackA

JackBLambV

LambWRobF

RobGTimA

TimB$maxKeyMONGOS

CLIENT

MONGOD

MONGOD

MONGOD

SHARD0000

SHARD0001

SHARD0002

Page 92: MongoDB Workshop

BENEFITS OF SHARDING

1. INCREASES AVAILABLE MEMORY.2. REDUCES LOAD ON THE SERVER.3. INCREASES HARD DISK SPACE.4. LOCATION-BASED SHARD KEYS CAN PUT DATA

CLOSE TO THE USERS AND KEEP RELATED DATA TOGETHER.

Page 93: MongoDB Workshop

MASTER-SLAVE REPLICATION

MONGOD

CLIENT

MASTER SLAVE SLAVE

REPLICA SET

MONGOD MONGOD

Page 94: MongoDB Workshop

MASTER-SLAVE REPLICATION

MONGOD

CLIENT

MASTER SLAVE SLAVE

REPLICA SET

MONGOD MONGOD

ELECTION

Page 95: MongoDB Workshop

MASTER-SLAVE REPLICATION

MONGOD

CLIENT

MASTER SLAVE

REPLICA SET

MONGOD MONGOD

MINIMUM 3 MEMBERS TO FORM REPLICA SET

Page 96: MongoDB Workshop

MASTER-SLAVE REPLICATION

MONGOD

CLIENT

MASTER SLAVE

REPLICA SET

MONGOD MONGOD

SLAVE

REPLICATION SOLVES THE PROBLEM OF AVAILABILITY

AND FAULT TOLERANCE

Page 97: MongoDB Workshop

FUTURE OF MONGODB AND US

Page 98: MongoDB Workshop

COMPANIES USING MONGODB

Page 99: MongoDB Workshop

MONGODB WINS AWARD

Page 100: MongoDB Workshop

36 MOST VALUABLE STARTUPS ON EARTH

Page 101: MongoDB Workshop

ORACLE

SQL SERVER

MONGODB

POSTGRESQL

?RIAK

NEO4J

POLYGLOT PERSISTENCE

GOOD TO KNOW BOTH SQL AND

NOSQL

MYSQL

DREMEL

Page 102: MongoDB Workshop

ARCHITECT

WHAT WE DID NOT COVER

SECURITY

BACKUP/RECOVERY

DATA MODELING

Page 103: MongoDB Workshop

THANK YOU VERY MUCH

Page 104: MongoDB Workshop

AND THANK YOU TO EVERYONE WHO HELPED US

DR. BILL HOWE, UNIVERSITY OF WASHINGTON

JASON CHEN, MONGODB RECRUITER

KRISTINA CHODOROW (DEFINITIVE GUIDE AUTHOR)

FRANCESCA KRIHELY (MONGODB COMMUNITY MANAGER)

DR. MARKUS SCHMIDBERGER, RMONGODB

JOHANNES BRANDSTETTER, MONGOSOUP (THE FIRST EUROPEAN PARTNER OF MONGODB TO PROVIDE MONGODB AS A SERVICE)

DR. RAMNATH VAIDYANATHAN, RCHARTS

Page 105: MongoDB Workshop

REFERENCESMongoDBhttp://www.mongodb.org

Book: MongoDB, The Definitive Guide – Kristina Chodorow

Book: NoSQL Distilled – Pramod J. Sadalage and Martin Fowler

NoSQLhttp://en.wikipedia.org/wiki/NoSQL

MongoDB Use Caseshttp://www.mongodb.com/use-cases

First NoSQL Meetup Noteshttp://developer.yahoo.com/blogs/ydn/notes-nosql-meetup-7663.html

Billion dollar clubhttp://graphics.wsj.com/billion-dollar-club/

Photos from Google

Page 106: MongoDB Workshop

DEMO