SlideShare a Scribd company logo
Concept introduction series
Anand, 26-Feb-2015
What this deck aims to convey and what it doesn’t?
3
Captures some attributes of
RDBMS (SQL DB!) with the
intent of providing the context
behind non-relational database
models
Does not attempt to capture
the pro-s or con-s of RDBMS.
Does not attempt to explain
RDBMS’ role in modern server
architectures etc.
Some attributes and their implications
5
{
id: 223091
job: “test.feature_x”
status: “complete”
events:
{
{id: 220923232, type: started, time: 13:20:21, date: 03-06-2016}
{id: 220923439, type: restarted, time: 13:20:30, date: 03-06-2016}
{id: 220923439, type: finished, time: 12:24:31, date: 03-06-2016}
}
{description: {console_output: {blah blah}}
}
6
{
id: 223091
job: “test.feature_x”
status: “complete”
events:
{
{id: 220923232, type: started, time: 13:20:21, date: 03-06-2016}
{id: 220923439, type: restarted, time: 13:20:30, date: 03-06-2016}
{id: 220923439, type: finished, time: 12:24:31, date: 03-06-2016}
}
{description: {console_output: {blah blah}}
}
Jobs
Job Definition
Events
Status
7
An event in job table must already have an entry in event table (create an entry in event table and then
attach it to a job table to which it belongs). Schema changes (version) management is not trivial either.
8
Thinking in tables needs a different skillset than creating a Job class. In other words, memory data
structures (classes/objects in your heap or in a in-mem db) rarely resemble relational tables. Keeping
them in-synch while rapid development/ prototyping is costly.
Jobs
Job Definition
Events
Status
=
9
Clustering
(sharding,
replicating etc.)
data is a necessity
with constantly
evolving
relationships
(=schema) and
exponentially
increasing
volumes. Doing
that in RDBMS is
complicated to say
the least
TYPES
11
SELECT db_name_text
FROM db_table
WHERE data_relationship_model <>
‘TABULAR’;
12
KEY VALUE
{
User Id: <id>
User:
{
Call Name: X
Address: Y
Genres: [“action”, “noir”]
}
}
{
User Id: <id>
User:
{
Call Name: X
Address: Y
Genres: [“action”, “noir”]
}
}
{
User Id: <id>
User:
{
Call Name: X
Address: Y
Genres: [“action”, “noir”]
}
}
DOCUMENT
GRAPH
{
User Id: <id>
User:
{
Call Name: X
Address: Y
Genres: [“action”, “noir”]
}
}
{
User Id: <id>
User:
{
Call Name: X
Address: Y
Genres: [“action”, “noir”]
}
}
{
Event Id: <id>
Event:
{
Lat: 12.952772
Long: 77.644305
Type: <location alert>
}
}
COLUMN FAMILY
a
c
b
x
z
y
13
= A Key to a value mapping storage
Think of java.util.Map<K,V>
 The DB knows only about the keys
 Values could be anything; they are just stored and retrieved,
never processed
Use cases:
– User -> Profile Data
– User -> Preference Data
– User -> Session Data
{
User Id: <id>
User:
{
Call Name: X
Address: Y
Genres: [“action”, “noir”]
}
}
{
User Id: <id>
User:
{
Call Name: X
Address: Y
Genres: [“action”, “noir”]
}
}
{
User Id: <id>
User:
{
Call Name: X
Address: Y
Genres: [“action”, “noir”]
}
}
{
User Id: <id>
User:
{
Call Name: X
Address: Y
Genres: [“action”, “noir”]
}
}
{
User Id: <id>
User:
{
Call Name: X
Address: Y
Genres: [“action”, “noir”]
}
}
{
Event Id: <id>
Event:
{
Lat: 12.952772
Long: 77.644305
Type: <location alert>
}
}
= A (implicit) Key (id) to a document (value) mapping storage
Think of filing a document in a folder
 Values are supplied in readable formats – json, bson, XML
 Values are visible to the database and typically indexed
Use cases:
– Rapidly evolving data (application of schema like thing can
be delayed till maturity)
– Event processing (self contained documents for future
computation; mostly ‘read’ or ‘created’ and rarely ‘updated’)
= Column is the unit of data; Stores columns as groups (‘families’)
Think of it as a ‘sparse matrix’
 Every row (key) may have data only against a sub-set of
columns
Use cases:
– Live analytics, Iteratively computed outcomes
{column family
‘likes’
user1
user2
userX
userY
= Graphs with data in both nodes and edges
Think of it as a, well, just graph!
 Node data represent what we normally think as ‘data’
 Edge data represent the ‘relationship’ between the connected
nodes
Use cases:
– Recommendations, Relationship traversal & analytics
a
c
b
x
z
y
18
 No SQL Distilled
 The Definitive Guide to MongoDB
 Plenty of references in WWW
19
 DB Schema: http://commons.wikimedia.org/wiki/File:Mediawiki-database-schema.png
 Internet per Minute: http://upload.wikimedia.org/wikipedia/commons/5/54/Internet_Minute_Infographic.jpg
 NoSQL Boom: From Ramana under CC2.0

More Related Content

What's hot

Building decentralised apps with js - Devoxx Morocco 2018
Building decentralised apps with js - Devoxx Morocco 2018Building decentralised apps with js - Devoxx Morocco 2018
Building decentralised apps with js - Devoxx Morocco 2018
Mikhail Kuznetcov
 
Knots - the Lazy Data Transfer Objects for Dealing with the Microservices Craze
Knots - the Lazy Data Transfer Objects for Dealing with the Microservices CrazeKnots - the Lazy Data Transfer Objects for Dealing with the Microservices Craze
Knots - the Lazy Data Transfer Objects for Dealing with the Microservices Craze
Alexander Shopov
 
Knot.x: when Vert.x and RxJava meet
Knot.x: when Vert.x and RxJava meetKnot.x: when Vert.x and RxJava meet
Knot.x: when Vert.x and RxJava meet
Tomasz Michalak
 
Apache Cassandra Ignite Presentation
Apache Cassandra Ignite PresentationApache Cassandra Ignite Presentation
Apache Cassandra Ignite Presentation
Jared Winick
 
How my team is applying JS framework for PHP projects.
How my team is applying JS framework for PHP projects.How my team is applying JS framework for PHP projects.
How my team is applying JS framework for PHP projects.
Damon Hung Tran
 
Arango DB for rubyists in 10mins
Arango DB for rubyists in 10minsArango DB for rubyists in 10mins
Arango DB for rubyists in 10mins
Pivorak MeetUp
 
Di web tech mail (no subject)
Di web tech mail   (no subject)Di web tech mail   (no subject)
Di web tech mail (no subject)shubhamvcs
 
What's Blockchain and it's structures?
What's Blockchain and it's structures?What's Blockchain and it's structures?
What's Blockchain and it's structures?
juliomacr
 
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
MongoDB
 
React.js 20150828
React.js 20150828React.js 20150828
React.js 20150828
LearningTech
 
jQuery. Write less. Do More.
jQuery. Write less. Do More.jQuery. Write less. Do More.
jQuery. Write less. Do More.
Dennis Loktionov
 
Starting with MongoDB
Starting with MongoDBStarting with MongoDB
Starting with MongoDB
DoThinger
 
Taller: Datos en tiempo real con GraphQL
Taller: Datos en tiempo real con GraphQLTaller: Datos en tiempo real con GraphQL
Taller: Datos en tiempo real con GraphQL
Software Guru
 
Relationships are hard
Relationships are hardRelationships are hard
Relationships are hard
ColdFusionConference
 
Enonic Content Repository built on elasticsearch
Enonic Content Repository built on elasticsearchEnonic Content Repository built on elasticsearch
Enonic Content Repository built on elasticsearch
enonic
 

What's hot (16)

Building decentralised apps with js - Devoxx Morocco 2018
Building decentralised apps with js - Devoxx Morocco 2018Building decentralised apps with js - Devoxx Morocco 2018
Building decentralised apps with js - Devoxx Morocco 2018
 
Knots - the Lazy Data Transfer Objects for Dealing with the Microservices Craze
Knots - the Lazy Data Transfer Objects for Dealing with the Microservices CrazeKnots - the Lazy Data Transfer Objects for Dealing with the Microservices Craze
Knots - the Lazy Data Transfer Objects for Dealing with the Microservices Craze
 
Knot.x: when Vert.x and RxJava meet
Knot.x: when Vert.x and RxJava meetKnot.x: when Vert.x and RxJava meet
Knot.x: when Vert.x and RxJava meet
 
Apache Cassandra Ignite Presentation
Apache Cassandra Ignite PresentationApache Cassandra Ignite Presentation
Apache Cassandra Ignite Presentation
 
How my team is applying JS framework for PHP projects.
How my team is applying JS framework for PHP projects.How my team is applying JS framework for PHP projects.
How my team is applying JS framework for PHP projects.
 
Arango DB for rubyists in 10mins
Arango DB for rubyists in 10minsArango DB for rubyists in 10mins
Arango DB for rubyists in 10mins
 
Di web tech mail (no subject)
Di web tech mail   (no subject)Di web tech mail   (no subject)
Di web tech mail (no subject)
 
What's Blockchain and it's structures?
What's Blockchain and it's structures?What's Blockchain and it's structures?
What's Blockchain and it's structures?
 
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
[MongoDB.local Bengaluru 2018] Introduction to MongoDB Stitch
 
Hands On React
Hands On React Hands On React
Hands On React
 
React.js 20150828
React.js 20150828React.js 20150828
React.js 20150828
 
jQuery. Write less. Do More.
jQuery. Write less. Do More.jQuery. Write less. Do More.
jQuery. Write less. Do More.
 
Starting with MongoDB
Starting with MongoDBStarting with MongoDB
Starting with MongoDB
 
Taller: Datos en tiempo real con GraphQL
Taller: Datos en tiempo real con GraphQLTaller: Datos en tiempo real con GraphQL
Taller: Datos en tiempo real con GraphQL
 
Relationships are hard
Relationships are hardRelationships are hard
Relationships are hard
 
Enonic Content Repository built on elasticsearch
Enonic Content Repository built on elasticsearchEnonic Content Repository built on elasticsearch
Enonic Content Repository built on elasticsearch
 

Similar to Why no sql

Montreal Sql saturday: moving data from no sql db to azure data lake
Montreal Sql saturday: moving data from no sql db to azure data lakeMontreal Sql saturday: moving data from no sql db to azure data lake
Montreal Sql saturday: moving data from no sql db to azure data lake
Diponkar Paul
 
The Rise of NoSQL
The Rise of NoSQLThe Rise of NoSQL
The Rise of NoSQL
Arnd Kleinbeck
 
Lean React - Patterns for High Performance [ploneconf2017]
Lean React - Patterns for High Performance [ploneconf2017]Lean React - Patterns for High Performance [ploneconf2017]
Lean React - Patterns for High Performance [ploneconf2017]
Devon Bernard
 
2013-03-23 - NoSQL Spartakiade
2013-03-23 - NoSQL Spartakiade2013-03-23 - NoSQL Spartakiade
2013-03-23 - NoSQL Spartakiade
Johannes Hoppe
 
Tame Accidental Complexity with Ruby and MongoMapper
Tame Accidental Complexity with Ruby and MongoMapperTame Accidental Complexity with Ruby and MongoMapper
Tame Accidental Complexity with Ruby and MongoMapper
Giordano Scalzo
 
Scala Frameworks for Web Application 2016
Scala Frameworks for Web Application 2016Scala Frameworks for Web Application 2016
Scala Frameworks for Web Application 2016
takezoe
 
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
Johannes Hoppe
 
Eagle6 mongo dc revised
Eagle6 mongo dc revisedEagle6 mongo dc revised
Eagle6 mongo dc revisedMongoDB
 
Eagle6 Enterprise Situational Awareness
Eagle6 Enterprise Situational AwarenessEagle6 Enterprise Situational Awareness
Eagle6 Enterprise Situational Awareness
MongoDB
 
Keynote - Speaker: Grigori Melnik
Keynote - Speaker: Grigori Melnik Keynote - Speaker: Grigori Melnik
Keynote - Speaker: Grigori Melnik
MongoDB
 
Nko workshop - node js & nosql
Nko workshop - node js & nosqlNko workshop - node js & nosql
Nko workshop - node js & nosqlSimon Su
 
Baton rouge - sql vs no sql and azure data factory
Baton rouge - sql vs no sql and azure data factoryBaton rouge - sql vs no sql and azure data factory
Baton rouge - sql vs no sql and azure data factory
Diponkar Paul
 
SQL vs. NoSQL and Moving data by Azure Data Factory
SQL vs. NoSQL and Moving data by Azure Data FactorySQL vs. NoSQL and Moving data by Azure Data Factory
SQL vs. NoSQL and Moving data by Azure Data Factory
Diponkar Paul
 
[4 dev] lagom
[4 dev] lagom[4 dev] lagom
[4 dev] lagom
Jarek Ratajski
 
A Free New World: Atlas Free Tier and How It Was Born
A Free New World: Atlas Free Tier and How It Was Born A Free New World: Atlas Free Tier and How It Was Born
A Free New World: Atlas Free Tier and How It Was Born
MongoDB
 
Schema Design with MongoDB
Schema Design with MongoDBSchema Design with MongoDB
Schema Design with MongoDB
rogerbodamer
 
PostgreSQL Open SV 2018
PostgreSQL Open SV 2018PostgreSQL Open SV 2018
PostgreSQL Open SV 2018
artgillespie
 
Sql vs no sql and azure data factory
Sql vs no sql and azure data factorySql vs no sql and azure data factory
Sql vs no sql and azure data factory
Diponkar Paul
 

Similar to Why no sql (20)

Montreal Sql saturday: moving data from no sql db to azure data lake
Montreal Sql saturday: moving data from no sql db to azure data lakeMontreal Sql saturday: moving data from no sql db to azure data lake
Montreal Sql saturday: moving data from no sql db to azure data lake
 
The Rise of NoSQL
The Rise of NoSQLThe Rise of NoSQL
The Rise of NoSQL
 
Lean React - Patterns for High Performance [ploneconf2017]
Lean React - Patterns for High Performance [ploneconf2017]Lean React - Patterns for High Performance [ploneconf2017]
Lean React - Patterns for High Performance [ploneconf2017]
 
2013-03-23 - NoSQL Spartakiade
2013-03-23 - NoSQL Spartakiade2013-03-23 - NoSQL Spartakiade
2013-03-23 - NoSQL Spartakiade
 
Tame Accidental Complexity with Ruby and MongoMapper
Tame Accidental Complexity with Ruby and MongoMapperTame Accidental Complexity with Ruby and MongoMapper
Tame Accidental Complexity with Ruby and MongoMapper
 
Scala Frameworks for Web Application 2016
Scala Frameworks for Web Application 2016Scala Frameworks for Web Application 2016
Scala Frameworks for Web Application 2016
 
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
 
Eagle6 mongo dc revised
Eagle6 mongo dc revisedEagle6 mongo dc revised
Eagle6 mongo dc revised
 
Eagle6 Enterprise Situational Awareness
Eagle6 Enterprise Situational AwarenessEagle6 Enterprise Situational Awareness
Eagle6 Enterprise Situational Awareness
 
Keynote - Speaker: Grigori Melnik
Keynote - Speaker: Grigori Melnik Keynote - Speaker: Grigori Melnik
Keynote - Speaker: Grigori Melnik
 
Nko workshop - node js & nosql
Nko workshop - node js & nosqlNko workshop - node js & nosql
Nko workshop - node js & nosql
 
Baton rouge - sql vs no sql and azure data factory
Baton rouge - sql vs no sql and azure data factoryBaton rouge - sql vs no sql and azure data factory
Baton rouge - sql vs no sql and azure data factory
 
SQL vs. NoSQL and Moving data by Azure Data Factory
SQL vs. NoSQL and Moving data by Azure Data FactorySQL vs. NoSQL and Moving data by Azure Data Factory
SQL vs. NoSQL and Moving data by Azure Data Factory
 
MongoDB
MongoDBMongoDB
MongoDB
 
[4 dev] lagom
[4 dev] lagom[4 dev] lagom
[4 dev] lagom
 
OrientDB
OrientDBOrientDB
OrientDB
 
A Free New World: Atlas Free Tier and How It Was Born
A Free New World: Atlas Free Tier and How It Was Born A Free New World: Atlas Free Tier and How It Was Born
A Free New World: Atlas Free Tier and How It Was Born
 
Schema Design with MongoDB
Schema Design with MongoDBSchema Design with MongoDB
Schema Design with MongoDB
 
PostgreSQL Open SV 2018
PostgreSQL Open SV 2018PostgreSQL Open SV 2018
PostgreSQL Open SV 2018
 
Sql vs no sql and azure data factory
Sql vs no sql and azure data factorySql vs no sql and azure data factory
Sql vs no sql and azure data factory
 

Recently uploaded

Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 

Recently uploaded (20)

Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 

Why no sql

  • 2. What this deck aims to convey and what it doesn’t?
  • 3. 3 Captures some attributes of RDBMS (SQL DB!) with the intent of providing the context behind non-relational database models Does not attempt to capture the pro-s or con-s of RDBMS. Does not attempt to explain RDBMS’ role in modern server architectures etc.
  • 4. Some attributes and their implications
  • 5. 5 { id: 223091 job: “test.feature_x” status: “complete” events: { {id: 220923232, type: started, time: 13:20:21, date: 03-06-2016} {id: 220923439, type: restarted, time: 13:20:30, date: 03-06-2016} {id: 220923439, type: finished, time: 12:24:31, date: 03-06-2016} } {description: {console_output: {blah blah}} }
  • 6. 6 { id: 223091 job: “test.feature_x” status: “complete” events: { {id: 220923232, type: started, time: 13:20:21, date: 03-06-2016} {id: 220923439, type: restarted, time: 13:20:30, date: 03-06-2016} {id: 220923439, type: finished, time: 12:24:31, date: 03-06-2016} } {description: {console_output: {blah blah}} } Jobs Job Definition Events Status
  • 7. 7 An event in job table must already have an entry in event table (create an entry in event table and then attach it to a job table to which it belongs). Schema changes (version) management is not trivial either.
  • 8. 8 Thinking in tables needs a different skillset than creating a Job class. In other words, memory data structures (classes/objects in your heap or in a in-mem db) rarely resemble relational tables. Keeping them in-synch while rapid development/ prototyping is costly. Jobs Job Definition Events Status =
  • 9. 9 Clustering (sharding, replicating etc.) data is a necessity with constantly evolving relationships (=schema) and exponentially increasing volumes. Doing that in RDBMS is complicated to say the least
  • 10. TYPES
  • 11. 11 SELECT db_name_text FROM db_table WHERE data_relationship_model <> ‘TABULAR’;
  • 12. 12 KEY VALUE { User Id: <id> User: { Call Name: X Address: Y Genres: [“action”, “noir”] } } { User Id: <id> User: { Call Name: X Address: Y Genres: [“action”, “noir”] } } { User Id: <id> User: { Call Name: X Address: Y Genres: [“action”, “noir”] } } DOCUMENT GRAPH { User Id: <id> User: { Call Name: X Address: Y Genres: [“action”, “noir”] } } { User Id: <id> User: { Call Name: X Address: Y Genres: [“action”, “noir”] } } { Event Id: <id> Event: { Lat: 12.952772 Long: 77.644305 Type: <location alert> } } COLUMN FAMILY a c b x z y
  • 13. 13 = A Key to a value mapping storage Think of java.util.Map<K,V>  The DB knows only about the keys  Values could be anything; they are just stored and retrieved, never processed Use cases: – User -> Profile Data – User -> Preference Data – User -> Session Data
  • 14. { User Id: <id> User: { Call Name: X Address: Y Genres: [“action”, “noir”] } } { User Id: <id> User: { Call Name: X Address: Y Genres: [“action”, “noir”] } } { User Id: <id> User: { Call Name: X Address: Y Genres: [“action”, “noir”] } } { User Id: <id> User: { Call Name: X Address: Y Genres: [“action”, “noir”] } } { User Id: <id> User: { Call Name: X Address: Y Genres: [“action”, “noir”] } } { Event Id: <id> Event: { Lat: 12.952772 Long: 77.644305 Type: <location alert> } } = A (implicit) Key (id) to a document (value) mapping storage Think of filing a document in a folder  Values are supplied in readable formats – json, bson, XML  Values are visible to the database and typically indexed Use cases: – Rapidly evolving data (application of schema like thing can be delayed till maturity) – Event processing (self contained documents for future computation; mostly ‘read’ or ‘created’ and rarely ‘updated’)
  • 15. = Column is the unit of data; Stores columns as groups (‘families’) Think of it as a ‘sparse matrix’  Every row (key) may have data only against a sub-set of columns Use cases: – Live analytics, Iteratively computed outcomes {column family ‘likes’ user1 user2 userX userY
  • 16. = Graphs with data in both nodes and edges Think of it as a, well, just graph!  Node data represent what we normally think as ‘data’  Edge data represent the ‘relationship’ between the connected nodes Use cases: – Recommendations, Relationship traversal & analytics a c b x z y
  • 17.
  • 18. 18  No SQL Distilled  The Definitive Guide to MongoDB  Plenty of references in WWW
  • 19. 19  DB Schema: http://commons.wikimedia.org/wiki/File:Mediawiki-database-schema.png  Internet per Minute: http://upload.wikimedia.org/wikipedia/commons/5/54/Internet_Minute_Infographic.jpg  NoSQL Boom: From Ramana under CC2.0