the beginners guide to nosql€¦ · the beginners guide tonosql. whythe we are storing more data...

53
THE BEGINNERS GUIDE TO noSQL

Upload: others

Post on 20-May-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

THE BEGINNERS GUIDE TO

noSQL

Page 2: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

THE

WHY WE ARE STORING MORE DATA NOW THAN WE EVER HAVE

BEFORE

Page 3: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

THE

WHY WE ARE STORING MORE DATA NOW THAN WE EVER HAVE

BEFORE

CONNECTIONS BETWEEN OUR DATA ARE GROWING ALL THE

TIME

Page 4: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

THE

WHY WE ARE STORING MORE DATA NOW THAN WE EVER HAVE

BEFORE

CONNECTIONS BETWEEN OUR DATA ARE GROWING ALL THE

TIME

WE DON’T MAKE THINGS KNOWING THE STRUCTURE

FROM DAY 1

Page 5: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

THE

WHY WE ARE STORING MORE DATA NOW THAN WE EVER HAVE

BEFORE

CONNECTIONS BETWEEN OUR DATA ARE GROWING ALL THE

TIME

WE DON’T MAKE THINGS KNOWING THE STRUCTURE

FROM DAY 1

SERVER ARCHITECTURE IS NOW AT A STAGE WHERE WE CAN

TAKE ADVANTAGE OF IT

Page 6: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

salary lists

most web applications

social networks

semantic trading

SiZE

Complexity

relational databases

Page 7: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

NOSQL

USE CASESLARGE DATA VOLUMES

MASSIVELY DISTRIBUTED ARCHITECTURE REQUIRED TO STORE THE DATA

GOOGLE, AMAZON, FACEBOOK, 100K SERVERS

Page 8: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

NOSQL

USE CASESLARGE DATA VOLUMES

MASSIVELY DISTRIBUTED ARCHITECTURE REQUIRED TO STORE THE DATA

GOOGLE, AMAZON, FACEBOOK, 100K SERVERS

EXTREME QUERY WORKLOAD IMPOSSIBLE TO EFFICIENTLY DO JOINS AT THAT

SCALE WITH AN RDBMS

Page 9: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

NOSQL

USE CASESLARGE DATA VOLUMES

MASSIVELY DISTRIBUTED ARCHITECTURE REQUIRED TO STORE THE DATA

GOOGLE, AMAZON, FACEBOOK, 100K SERVERS

EXTREME QUERY WORKLOAD IMPOSSIBLE TO EFFICIENTLY DO JOINS AT THAT

SCALE WITH AN RDBMS

SCHEMA EVOLUTION SCEMA FLEXIBILITY IS NOT TRIVIAL AT A LARGE

SCALE BUT IT CAN BE WITH NO SQL

Page 10: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

NOSQL

PROS AND CONSPROS

MASSIVE SCALABILITY HIGH AVAILABILITY

LOWER COST SCHEMA FLEXIBILITY

SPARCE AND SEMI STRUCTURED DATA

Page 11: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

NOSQL

PROS AND CONSPROS

MASSIVE SCALABILITY HIGH AVAILABILITY

LOWER COST SCHEMA FLEXIBILITY

SPARCE AND SEMI STRUCTURED DATA

CONS LIMITED QUERY CAPABILITIES

NOT STANDARDISED (PORTABILITY MAY BE AN ISSUE) STILL A DEVELOPING TECHNOLOGY

Page 12: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

NOSQL NOSQL NOSQL NOSQL NOSQL NOSQL BIGTABLE NOSQL NOSQL NOSQL NOSQL NOSQL NOSQL NOSQL NOSQL

NOSQL NOSQL KEY VALUE NOSQL NO NOSQL NOSQL NOSQL NOSQL NOSQL

NOSQL NOSQL NOSQL NOSQL NOSQL NOSQL NOSQL NOSQL NOSQL NOSQL

NOSQL NOSQL NOSQL NOSQL NOSQL NOSQL GRAPHDB NOSQL NOSQL NOSQL

NOSQL NOSQL NOSQL NOSQL NOSQL

NOSQL NOSQL NOSQL NOSQL NOSQL NOSQL NOSQL DOCUMENT NOSQL

FOUREMERGING TRENDS IN

NOSQL DATABASES

Page 13: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

BUT FIRST…IMAGINE A LIBRARY

LOTS OF DIFFERENT FLOORS

DIFFERENT SECTIONS ON EACH FLOOR

DIFFERENT BOOKSHELVES IN EACH SECTION

LOTS OF BOOKS ON EACH SHELF

LOTS OF PAGES IN EACH BOOK

LOTS OF WORDS ON EACH PAGE

EVERYTHING IS WELL ORGANISED AND EVERYTHING HAS A SPACE

Page 14: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

BUT FIRST…IMAGINE A LIBRARY

WHAT HAPPENS IF WE BUY TOO MANY BOOKS!?

(THE WORLD EXPLODES AND THE KITTENS WIN)

Page 15: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

BUT FIRST…IMAGINE A LIBRARY

WHAT HAPPENS IF WE WANT TO STORE CDS ALL OF A SUDDEN!?

(THE WORLD EXPLODES AND THE KITTENS WIN)

Page 16: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

BUT FIRST…IMAGINE A LIBRARY

WHAT HAPPENS IF WE WANT TO GET RID OF ALL BOOKS THAT MENTION KITTENS

(KITTENS STILL WIN)

Page 17: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

BIGBEHAVES LIKE A STANDARD RELATIONAL DATABASE BUT WITH A SLIGHT CHANGE

http://research.google.com/archive/bigtable.html

http://research.google.com/archive/spanner.html

DESIGNED TO WORK WITH A LOT OF DATA…A REALLY BIG CRAP TON

CREATED BY GOOGLE AND NOW USED BY LOTS OF OTHERS

TABLE

Page 18: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

THIS IS A STANDARD RELATIONAL DATABASE

BIGTABLE

THIS IS A BIG TABLE DATABASE

(AND NOW THE NAME MAKES SENCE!)

Page 19: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

BIGTABLE

“A Bigtable is a sparse, distributed, persistent multidimensional sorted map. The map is indexed by a

row key, column key, and a timestamp; each value in the map is an uninterpreted array of bytes.”

Page 20: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

BIGTABLE

“A Bigtable is a sparse, distributed, persistent multidimensional sorted map. The map is indexed by a

row key, column key, and a timestamp; each value in the map is an uninterpreted array of bytes.”

Page 21: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

BIGTABLE

“A Bigtable is a sparse, distributed, persistent multidimensional sorted map. The map is indexed by a

row key, column key, and a timestamp; each value in the map is an uninterpreted array of bytes.”

Page 22: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

KEYVALUE

AGAIN, DESIGNED TO WORK WITH A LOT OF DATA

EACH BIT OF DATA IS STORED IN A SINGLE COLLECTION

EACH COLLECTION CAN HAVE DIFFERENT TYPES OF DATA

Page 23: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

KEYVALUE

A CB D E

Page 24: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

KEYVALUE

A C D E

OUR VALUES ARE HIDDEN INSIDE THE KEYS

TO FIND OUT WHAT THEY ARE WE NEED TO QUERY THEM

What is in Key B?

The Triangle

B

Page 25: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

KEYVALUE

(VOLDERMORT)

Page 26: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

DOCUMENTSTORE

DESIGNED TO WORK WITH A LOT OF DATA (BEGINNING TO NOTICE A THEME?)

VERY SIMILAR TO A KEY VALUE DATABASE

MAIN DIFFERENCE IS THAT YOU CAN ACTUALLY SEE THE VALUES

Page 27: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

DOCUMENTSTORE

A CB D E

Page 28: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

DOCUMENTSTORE

A CB D E

Bring me the triangles

Yes m’lord.

Page 29: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

SID

E N

OT

E

REMEMBER HOW SQL DATABASES ARE LIBRARIES?

NO SQL IS MORE LIKE A BAG OF CATS!

Page 30: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

SID

E N

OT

E

colour: tabby name: Gunther

colour: ginger name: Mylo

colour: grey name: Ruffus age: kitten

colour: ginger(ish) name: Fred age: kitten

colour: ginger(ish) name: Quentin legs: 3

WE CAN ADD IN FIELDS AS AND

WHEN WE NEED THEM

Page 31: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

DOCUMENTSTORE

A CB D E

Bring me the KITTENS!

Of course m’lord.

Page 32: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

DOCUMENTSTORE

Page 33: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

GRAPHDATABASE

FOCUS HERE IS ON MODELLING THE STRUCTURE OF THE DATA

INSPIRED BY GRAPH THEORY (GO MATHS!)

SCALES REALLY WELL TO THE STRUCTURE OF THE DATA

Page 34: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

GRAPHDATABASE

Page 35: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

GRAPHDATABASE

Page 36: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

GRAPHDATABASE

WORKS_WITHWORKS_WITH

OWNS

OWNS

CARSHARES IN

Page 37: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

GRAPHDATABASE

name: “Michael” twitter: “@mrmike

name: “John” twitter:”@mrjohn”

brand: “Toyota” currentState: “Broken”

brand: “Vauxhall” currentState: “Working”

WORKS_WITHWORKS_WITH

OWNS

OWNS

CARSHARES IN

Page 38: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

GRAPHDATABASE

name: “Michael” twitter: “@mrmike

name: “John” twitter:”@mrjohn”

brand: “Toyota” currentState: “Broken”

brand: “Vauxhall” currentState: “Working”

WORKS_WITHWORKS_WITH

OWNS propertyType: “car”

OWNS propertyType: “car”CARSHARES IN

Page 39: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

GRAPHDATABASE

Page 40: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

key/value store

bigtable clone

document database

graph database

SiZE

Complexity

Page 41: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

key/value store

bigtable clone

document database

graph database

SiZE

Complexity

>90% of use cases

Page 42: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

WHEN TO USE

NOSQLAND WHEN TO USE

SQL

Page 43: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

THE BASICSHigh availability and disaster recovery are a must

Understand the pros and cons of each design model

Don’t pick something just because it is new Do you remember the zune?

Don’t pick something based JUST on performance

Page 44: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

SQLHigh performance for transactions. Think ACID

Highly structured, very portable

Small amounts of dataSMALL IS LESS THAN 500GB

Supports many tables with different types of data

Can fetch ordered data

Compatible with lots of tools

THE GOOD

Page 45: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

ATOMICITY

CONSISTENCY

ISOLATION

DURABILITY

SQL

Page 46: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

SQLHigh performance for transactions. Think ACID

Highly structured, very portable

Small amounts of dataSMALL IS LESS THAN 500GB

Supports many tables with different types of data

Can fetch ordered data

Compatible with lots of tools

THE GOOD

Page 47: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

SQLComplex queries take a long time

The relational model takes a long time to learn

Not really scalable

Not suited for rapid development

THE BAD

Page 48: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

noSQLFits well for volatile data

High read and write throughput

Scales really well

Rapid development is possible

In general it’s faster than SQL

THE GOOD

Page 49: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

BASICALLY

AVAILABLE

SOFT STATE

EVENTUALLY CONSISTENT

noSQL

Page 50: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

noSQLFits well for volatile data

High read and write throughput

Scales really well

Rapid development is possible

In general it’s faster than SQL

THE GOOD

Page 51: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

noSQLKey/Value pairs need to be packed/unpacked all the time

Still working on getting security for these working as well as SQL

Lack of relations from one key to another

THE GOOD

Page 52: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

tl;dr

so use both, but think about when you want to use them!

works great, can’t scale for large data

works great, doesn't fit all situations

SQL

noSQL

Page 53: THE BEGINNERS GUIDE TO noSQL€¦ · the beginners guide tonosql. whythe we are storing more data now than we ever have before. whythe we are storing more data now than we ever have

A lot of this content is loving ripped from lots of other (more impressive)

presentations that are already on SlideShare - you should check them out!

FINALLY