NoSQL, What it is and how our projects can benefit from it
-
Upload
heather-campbell -
Category
Technology
-
view
165 -
download
0
description
Transcript of NoSQL, What it is and how our projects can benefit from it
NoSQL What it is and
how Our projects can benefit from it
What this is Not ...
SQL
What it is ...
The Plan
Not Only SQL
Relational Love
Polyglot Persistence
The Range
What is NoSQL?
You have a Choice!
It’s not just about ...
Driving Forces
Volume Velocity Variety Cost
Agility Mismatch Productivity Availability
Volume
My application need to be able
to handle large volumes of
data.
Volume
Simple Horizontal Scaling
Automatic Sharding
Distributed Querying
Velocity
My application needs to store and serve relevant information
to users in real-time to
provide a high-quality user experience
Velocity
Distributed Load
Store as Used
Real-time Analytics
Integrated Caching
Variety
My application needs to be able to handle market data from
multiple internal and external
systems each with its own
schema
Variety
Handles Sparsely Populated Data
Well
Dynamic Schema
No need to define one schema for all
Easier integration of new system’s data
Cost
We are a public sector organisation which need to
account to the local
community for our spending.
Cost
Commodity Hardware
Open Source
Lower Support Fees
Agility
My application's data models
need to be updated weekly
to keep pace with business
and market developments.
Agility
Dynamic Schemas
OO Like Structures
Easy to Scale Out
Productivity
My application deals with patient health records and I’m
finding it complex to model in my relational database.
Productivity
Data Complex to Model in Relational
Easier to Adopt
Avoid Complex Reads/Writes
No Upfront Schema Design
Mismatch
The team developing my
application are not database experts
Mismatch
Store as Used
Familiar Formats
ORM Redundant
Availability
My application is critical it needs
to be available 24 x 7. I can’t afford a lot of
downtime for upgrade.
Availability
Dynamic Schema
Upgrade Without Downtime
Simple Replication
Simple Load Balancing
Key Value
Key Value
Familiar
Simple API
Just a BLOB
The Good
Familiar
Simple to Build
Easy to Scale
Great Performance
X The Bad
XQueries
XComplex Data
XNo Schema
XNot ACID
Uses
Media Stores
User profiles
User sessions
Shopping carts
Document
Vs
Document
{
name: “NoSQL”,
categories: [“document”,
“columnar”,
“graph”,
“key-value”]
}
Examples
The Good
No Mismatch
Productivity
Flexible Schema
Agile
Availability
X The Bad
X Querying
X Transactions
X Multiple Uses
X Responsibility
X Flexible Schema
Uses • High Volume Data Feeds
• Customer Facing Dashboards
• News Sites/Blogs
Graph
Graph
Relations over Data
The Good
Relationships
Whiteboard
Graph Algorithms
Schema Free
Performance
Acid Transactions
X The Bad
XSpecialised
X Immature
XPartitioning
Uses • Recommendations
• Social Networking
• Business Intelligence
• Fraud Detection
Column Orientated
Column Orientated
BigTable
Column, Column Families
Ragged
Examples
The Good
Aggregate Column
Fast lookups
Distributed storage
MapReduce
Write Loads
X The Bad
X API
X No Idea of Use
Uses Large Deployments
Statistics & Analysis
Polyglot Persistence
Polyglot Persistence
Don’t Dismiss Relational
Use Relational
Transactions
Unsure
Flexibility
Use Relational
Integrity
Standardisation
Tried & Tested
Knowledge
Use Relational
Help
Tooling
Security & Compliance
The Hybrid
Questions???