nosql, what it is and how our projects can benefit from it

54
NoSQL What it is and how Our projects can benefit from it

Upload: heather-campbell

Post on 20-Jun-2015

165 views

Category:

Technology


0 download

DESCRIPTION

A very high level introduction to NoSQL. Introducing the main categories of NoSQL database and the business drivers that could lead you to use it.

TRANSCRIPT

Page 1: NoSQL, What it is and how our projects can benefit from it

NoSQL What it is and

how Our projects can benefit from it

Page 2: NoSQL, What it is and how our projects can benefit from it

What this is Not ...

SQL

Page 4: NoSQL, What it is and how our projects can benefit from it

The Plan

Not Only SQL

Relational Love

Polyglot Persistence

The Range

Page 5: NoSQL, What it is and how our projects can benefit from it

What is NoSQL?

Page 6: NoSQL, What it is and how our projects can benefit from it

You have a Choice!

Page 7: NoSQL, What it is and how our projects can benefit from it

It’s not just about ...

Page 8: NoSQL, What it is and how our projects can benefit from it

Driving Forces

Volume Velocity Variety Cost

Agility Mismatch Productivity Availability

Page 9: NoSQL, What it is and how our projects can benefit from it

Volume

My application need to be able

to handle large volumes of

data.

Page 10: NoSQL, What it is and how our projects can benefit from it

Volume

Simple Horizontal Scaling

Automatic Sharding

Distributed Querying

Page 11: NoSQL, What it is and how our projects can benefit from it

Velocity

My application needs to store and serve relevant information

to users in real-time to

provide a high-quality user experience

Page 12: NoSQL, What it is and how our projects can benefit from it

Velocity

Distributed Load

Store as Used

Real-time Analytics

Integrated Caching

Page 13: NoSQL, What it is and how our projects can benefit from it

Variety

My application needs to be able to handle market data from

multiple internal and external

systems each with its own

schema

Page 14: NoSQL, What it is and how our projects can benefit from it

Variety

Handles Sparsely Populated Data

Well

Dynamic Schema

No need to define one schema for all

Easier integration of new system’s data

Page 15: NoSQL, What it is and how our projects can benefit from it

Cost

We are a public sector organisation which need to

account to the local

community for our spending.

Page 16: NoSQL, What it is and how our projects can benefit from it

Cost

Commodity Hardware

Open Source

Lower Support Fees

Page 17: NoSQL, What it is and how our projects can benefit from it
Page 18: NoSQL, What it is and how our projects can benefit from it
Page 19: NoSQL, What it is and how our projects can benefit from it

Agility

My application's data models

need to be updated weekly

to keep pace with business

and market developments.

Page 20: NoSQL, What it is and how our projects can benefit from it

Agility

Dynamic Schemas

OO Like Structures

Easy to Scale Out

Page 21: NoSQL, What it is and how our projects can benefit from it

Productivity

My application deals with patient health records and I’m

finding it complex to model in my relational database.

Page 22: NoSQL, What it is and how our projects can benefit from it

Productivity

Data Complex to Model in Relational

Easier to Adopt

Avoid Complex Reads/Writes

No Upfront Schema Design

Page 23: NoSQL, What it is and how our projects can benefit from it

Mismatch

The team developing my

application are not database experts

Page 24: NoSQL, What it is and how our projects can benefit from it

Mismatch

Store as Used

Familiar Formats

ORM Redundant

Page 25: NoSQL, What it is and how our projects can benefit from it

Availability

My application is critical it needs

to be available 24 x 7. I can’t afford a lot of

downtime for upgrade.

Page 26: NoSQL, What it is and how our projects can benefit from it

Availability

Dynamic Schema

Upgrade Without Downtime

Simple Replication

Simple Load Balancing

Page 27: NoSQL, What it is and how our projects can benefit from it

Key Value

Page 28: NoSQL, What it is and how our projects can benefit from it

Key Value

Familiar

Simple API

Just a BLOB

Page 30: NoSQL, What it is and how our projects can benefit from it

The Good

Familiar

Simple to Build

Easy to Scale

Great Performance

X The Bad

XQueries

XComplex Data

XNo Schema

XNot ACID

Page 31: NoSQL, What it is and how our projects can benefit from it

Uses

Media Stores

User profiles

User sessions

Shopping carts

Page 32: NoSQL, What it is and how our projects can benefit from it

Document

Page 33: NoSQL, What it is and how our projects can benefit from it

Vs

Document

{

name: “NoSQL”,

categories: [“document”,

“columnar”,

“graph”,

“key-value”]

}

Page 35: NoSQL, What it is and how our projects can benefit from it

The Good

No Mismatch

Productivity

Flexible Schema

Agile

Availability

X The Bad

X Querying

X Transactions

X Multiple Uses

X Responsibility

X Flexible Schema

Page 36: NoSQL, What it is and how our projects can benefit from it

Uses • High Volume Data Feeds

• Customer Facing Dashboards

• News Sites/Blogs

Page 37: NoSQL, What it is and how our projects can benefit from it

Graph

Page 38: NoSQL, What it is and how our projects can benefit from it

Graph

Relations over Data

Page 39: NoSQL, What it is and how our projects can benefit from it
Page 41: NoSQL, What it is and how our projects can benefit from it

The Good

Relationships

Whiteboard

Graph Algorithms

Schema Free

Performance

Acid Transactions

X The Bad

XSpecialised

X Immature

XPartitioning

Page 42: NoSQL, What it is and how our projects can benefit from it

Uses • Recommendations

• Social Networking

• Business Intelligence

• Fraud Detection

Page 43: NoSQL, What it is and how our projects can benefit from it

Column Orientated

Page 44: NoSQL, What it is and how our projects can benefit from it

Column Orientated

BigTable

Column, Column Families

Ragged

Page 45: NoSQL, What it is and how our projects can benefit from it

Examples

Page 46: NoSQL, What it is and how our projects can benefit from it

The Good

Aggregate Column

Fast lookups

Distributed storage

MapReduce

Write Loads

X The Bad

X API

X No Idea of Use

Page 47: NoSQL, What it is and how our projects can benefit from it

Uses Large Deployments

Statistics & Analysis

Page 48: NoSQL, What it is and how our projects can benefit from it

Polyglot Persistence

Page 49: NoSQL, What it is and how our projects can benefit from it

Polyglot Persistence

Page 50: NoSQL, What it is and how our projects can benefit from it

Don’t Dismiss Relational

Page 51: NoSQL, What it is and how our projects can benefit from it

Use Relational

Transactions

Unsure

Flexibility

Page 52: NoSQL, What it is and how our projects can benefit from it

Use Relational

Integrity

Standardisation

Tried & Tested

Knowledge

Page 53: NoSQL, What it is and how our projects can benefit from it

Use Relational

Help

Tooling

Security & Compliance

The Hybrid

Page 54: NoSQL, What it is and how our projects can benefit from it

Questions???