SlideShare une entreprise Scribd logo
1  sur  73
Télécharger pour lire hors ligne
I have a NoSQLToaster.
Why would I want a NoSQL database?
Matthew D. Groves @mgroves
Original slides by Matthew Revell - @matthewrevell
©2016 Couchbase Inc. 2
Where am I?
• Connect.Tech
• http://connect-js.com
• http://twitter.com/connect_js
©2016 Couchbase Inc. 3
Who am I?
• Matthew D. Groves
• Developer Advocate for Couchbase
• @mgroves onTwitter
• Podcast and blog: http://crosscuttingconcerns.com
• “I am not an expert, but I am an enthusiast.” – Alan Stevens
©2016 Couchbase Inc. 4
Tweet something, get a sticker!
Use #Couchbase
Tweet something interesting you’ve learned.
Tweet a picture.
I’ve got stickers and a prize for the best tweet!
©2016 Couchbase Inc. 5
Couchbase and CouchDB
Couchbase is to CouchDB
as
MySQL is to SQL Server
©2016 Couchbase Inc. 6
SQL is the norm, right?
https://commons.wikimedia.org/wiki/File:George_Wendt_at_the_41st_Emmy_Awards_cropped.jpg
~3200 BC: invention of writing in Mesopotamia
~300 BC: Library of Alexandria
~1041AD: Movable type invented in China
1450: Movable type invented in Europe
1822: Babbage’s paper on the application of difference engines
1943: Colossus, the first programmable digital computer
1957-1960: IBM SABRE, the first commercial use of a database
1970: EF Codd proposes the relational database model
1974: Ingres released
1979: Commercial launch of Oracle database
1988: Object databases appear
1989: Microsoft SQL Server version 1
1991: HTTP v0.9
1995: MySQL’s initial release
2005: CouchDB released
2006: Google’s BigTable paper
2007: Amazon’s Dynamo paper
2008-2009: The NoSQL Cambrian explosion: Riak, MongoDB,Cassandra, Redis
2010: Couchbase arrives on the scene
NoSQL isn’t a very useful term
©2016 Couchbase Inc. 9
Easy?
©2016 Couchbase Inc. 10
Scalable?
https://commons.wikimedia.org/wiki/File:Dagwood_sandwich.jpg
©2016 Couchbase Inc. 11
Commodity Hardware
https://commons.wikimedia.org/wiki/File:Rear_of_rack_at_NERSC_data_center_-_closeup.jpg
©2016 Couchbase Inc. 12
ACID vs BASE?
https://commons.wikimedia.org/wiki/File:PH_Scale.svg
Atomic
Consistent
Isolated
Durable
Basic Availability
Soft-state
Eventual consistency
©2016 Couchbase Inc. 13
Schema Schemaless
https://en.wikipedia.org/wiki/File:Star-schema-example.png
©2016 Couchbase Inc. 14
Normalized Denormalized
https://commons.wikimedia.org/wiki/File:Frown.JPG
©2016 Couchbase Inc. 15
First: Why NoSQL?
https://www.flickr.com/photos/wonderlane/13067014944
©2016 Couchbase Inc. 16
Round pegs, square holes
http://www.timesofbook.com/2013/09/blobfish-image-gallery.html#.V6iXwbgrJhE
©2016 Couchbase Inc. 17
Perhaps SQL is right for this project
©2016 Couchbase Inc. 18
Scaling can be hard
https://commons.wikimedia.org/wiki/File:Sandwiches_Vienna.jpg
©2016 Couchbase Inc. 19
Availability is hard
https://www.flickr.com/photos/jeepersmedia/14562425273/
C
A
P
©2016 Couchbase Inc. 20
Schemas can be hard
https://commons.wikimedia.org/wiki/File:MediaWiki_database_schema_1-17_(r82044).svg
©2016 Couchbase Inc. 21
Types of NoSQL databases
Document
Key/Value
Columnar
Graph
©2016 Couchbase Inc. 22
Convergence!
©2016 Couchbase Inc. 23
Document
???
©2016 Couchbase Inc. 25
What makes it a document database?
JSON
XML
BSON
©2016 Couchbase Inc. 28
The document database
understands the
format of the document
©2016 Couchbase Inc. 29
It can do
server-side stuff
Buckets
Documents
Views
N1QL
"ClientProductCode","Title","Quantity"
"TShirtCBS","Couchbase logo t-shirt (small)",29
"TShirtCBM","Couchbase logo t-shirt (medium)",72
"TShirtCBL","Couchbase logo t-shirt (large)",34
"TShirtCBXL","Couchbase logo t-shirt (extra large)",12
"StickerCBLogo","Couchbase logo sticker",256
"PenCBLogo","Couchbase logo pen",365
class Program
{
private static IBucket _bucket;
static void Main(string[] args)
{
SetupCouchbase();
LoadStockList();
ClusterHelper.Close();
}
private static void SetupCouchbase()
{
ClientConfiguration config = new ClientConfiguration();
config.Servers = new List<Uri> {new Uri("couchbase://192.168.1.5") };
ClusterHelper.Initialize(config);
_bucket = ClusterHelper.GetBucket("default");
}
private static void LoadStockList()
{
var csv = new CsvReader(File.OpenText("swag.csv"));
while (csv.Read())
{
var record = csv.GetRecord<dynamic>();
var document = new Document<dynamic>
{
Id = record.ClientProductCode,
Content = new
{
record.Title,
record.Quantity
}
};
_bucket.Insert(document);
Console.WriteLine($"Added document '{record.ClientProductCode}'");
}
}
}
private static void SetupCouchbase()
{
ClientConfiguration config = new ClientConfiguration();
config.Servers = new List<Uri> {new Uri("couchbase://192.168.1.5") };
ClusterHelper.Initialize(config);
_bucket = ClusterHelper.GetBucket("default");
}
private static void LoadStockList() {
var csv = new CsvReader(File.OpenText("swag.csv"));
while (csv.Read()) {
var record = csv.GetRecord<dynamic>();
var document = new Document<dynamic> {
Id = record.ClientProductCode,
Content = new {
record.Title,
record.Quantity
}
};
_bucket.Insert(document);
Console.WriteLine($"Added document '{record.ClientProductCode}'");
}
}
private static void GetDocument()
{
var doc = _bucket.Get<dynamic>("StickerCBLogo");
Console.WriteLine($"Document Key: {doc.Id}");
Console.WriteLine($"Title: {doc.Value.title}");
Console.WriteLine($"Quantity: {doc.Value.quantity}");
}
©2016 Couchbase Inc. 38
Typical Document Database Operations
• Upsert (aka set)
• Inserts document if key doesn’t exist, replaces otherwise
• Insert (aka add)
• Inserts document, error if it already exists
• Update (aka replace)
• Updates document, error if it doesn’t exist
• Delete
• Get
©2016 Couchbase Inc. 39
N1QL
SELECT m.*
FROM `default` m
WHERE META(m).id = ‘StickerCBLogo’
SELECT m.*
FROM `default` m
WHERE m.quantity > 10
Great for Dev
Scales Easily
Consistently Fast
©2016 Couchbase Inc. 41
Use cases for Document Databases
• User profiles
• Session stores
• Content management
• General relational replacement
• http://info.couchbase.com/15Q1TopTenUC.html
©2016 Couchbase Inc. 42
Key/Value Database
©2016 Couchbase Inc. 44
Key-Value Databases
In-memory caches
and
distributed data stores
©2016 Couchbase Inc. 45
Doesn’t care what your data is (mostly)
KEY1 { type: “json” }
KEY2 <data type=“xml”></data>
KEY3 Lorem ipsum
… 00100101000100101
KEYN
https://www.flickr.com/photos/dcmot/23168680069
Buckets
Key-Value Pairs
©2016 Couchbase Inc. 47
C# Riak
private static void DoStuffWithRiak()
{
var cluster = RiakCluster.FromConfig("riakConfig");
var client = cluster.CreateClient();
var actor = new RiakObject("actors", "James Bond","Sean Connery");
client.Put(actor);
var actorBackOut = client.Get("actors", "James Bond");
var str = System.Text.Encoding.UTF8.GetString(actorBackOut.Value.Value);
Console.WriteLine($"Value: {str}");
}
©2016 Couchbase Inc. 49
Introducing: Eventual Consistency!
©2016 Couchbase Inc. 50
Eventual Consistency
https://www.flickr.com/photos/scottchene/7046992749
https://commons.wikimedia.org/wiki/File:Timothy_Dalton_1987.jpg
https://commons.wikimedia.org/wiki/File:Sir_Roger_Moore_crop.jpg
©2016 Couchbase Inc. 51
There can be only one!
https://en.wikipedia.org/wiki/File:Highlander_film_Connor_MacLeod.jpg
©2016 Couchbase Inc. 52
So, fix it
https://www.flickr.com/photos/94086507@N00/84368105
ScalesWell
Highly Available
Data Agnostic
Maybe some extra work
©2016 Couchbase Inc. 54
Use Cases for K/V
• Data variability
• Object caching
• Session storage
• Large object storage
©2016 Couchbase Inc. 55
Columnar
Keyspaces
Column Families
Rows
Columns
©2016 Couchbase Inc. 58
Keyspace
©2016 Couchbase Inc. 59
Column Family
CREATE KEYSPACE mykeyspace
WITH replication = { 'class': 'SimpleStrategy',
'replication_factor': '1'};
CREATE TABLE users (firstname text, lastname text, age int,
email text, city text, PRIMARY KEY (lastname));
private static void DoStuffWithDataStax()
{
var cluster = Cluster.Builder().AddContactPoint("127.0.0.1").Build();
var session = cluster.Connect("mykeyspace");
session.Execute("insert into users (lastname, age, city, email, firstname)
values ('Jones', 35, 'Austin', 'bob@example.com', 'Bob')");
var userBackOut = session.Execute("select * from users where
lastname='Jones'").First();
Console.WriteLine($"{userBackOut["firstname"]} {userBackOut["age"]}");
}
Impedance Mismatch
ScalesWell (Ops Headache)
Suited to Analytics
©2016 Couchbase Inc. 64
Use cases for Columnar
•Metering data
•Really big data
•Analytics
©2016 Couchbase Inc. 65
Graph
https://commons.wikimedia.org/wiki/File:The_protein_interaction_network_of_Treponema_pallidum.png
©2016 Couchbase Inc. 66
Leonhard Euler
©2016 Couchbase Inc. 67
7 Bridges of Königsberg
©2016 Couchbase Inc. 69
Use cases for Graph databases
• Social networks / dating sites
• Fraud detection
• Parcel routing
• Shopping recommendations
©2016 Couchbase Inc. 70
Say what?
Relational
Document
Key/Value
Columnar
Graph
Object
others…
©2016 Couchbase Inc. 71
Box arrow box arrow
Web Logic
SQL
Riak
Couchbase
More Logic
Mobile
©2016 Couchbase Inc. 72
Couchbase, everybody!
http://couchbase.com/connect
http://info.couchbase.com/Connect16_Livestream_Registration.html
©2016 Couchbase Inc. 73
Where do you find us?
• developer.couchbase.com
• blog.couchbase.com
• forums.couchbase.com
• @couchbasedev
• #couchbase
• @mgroves
• @couchbase

Contenu connexe

Similaire à I have a NoSQL Toaster - ConnectJS - October 2016

I Have a NoSQL Toaster - Troy .NET User Group - July 2017
I Have a NoSQL Toaster - Troy .NET User Group - July 2017I Have a NoSQL Toaster - Troy .NET User Group - July 2017
I Have a NoSQL Toaster - Troy .NET User Group - July 2017Matthew Groves
 
Slides: NoSQL Data Modeling Using JSON Documents – A Practical Approach
Slides: NoSQL Data Modeling Using JSON Documents – A Practical ApproachSlides: NoSQL Data Modeling Using JSON Documents – A Practical Approach
Slides: NoSQL Data Modeling Using JSON Documents – A Practical ApproachDATAVERSITY
 
i_have_a_nosql_toaster_-_qcon_-_june_2017.pptx
i_have_a_nosql_toaster_-_qcon_-_june_2017.pptxi_have_a_nosql_toaster_-_qcon_-_june_2017.pptx
i_have_a_nosql_toaster_-_qcon_-_june_2017.pptxKAMAUALEX
 
The Why, When, and How of NoSQL - A Practical Approach
The Why, When, and How of NoSQL - A Practical ApproachThe Why, When, and How of NoSQL - A Practical Approach
The Why, When, and How of NoSQL - A Practical ApproachDATAVERSITY
 
Couchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedIn
Couchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedInCouchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedIn
Couchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedInMichael Kehoe
 
Kafka & Couchbase Integration Patterns
Kafka & Couchbase Integration PatternsKafka & Couchbase Integration Patterns
Kafka & Couchbase Integration PatternsManuel Hurtado
 
Migration and Coexistence between Relational and NoSQL Databases by Manuel H...
 Migration and Coexistence between Relational and NoSQL Databases by Manuel H... Migration and Coexistence between Relational and NoSQL Databases by Manuel H...
Migration and Coexistence between Relational and NoSQL Databases by Manuel H...Big Data Spain
 
DMDW Extra Lesson - NoSql and MongoDB
DMDW  Extra Lesson - NoSql and MongoDBDMDW  Extra Lesson - NoSql and MongoDB
DMDW Extra Lesson - NoSql and MongoDBJohannes Hoppe
 
Moving Past Infrastructure Limitations
Moving Past Infrastructure LimitationsMoving Past Infrastructure Limitations
Moving Past Infrastructure LimitationsCaserta
 
Cassandra 2.0 to 2.1
Cassandra 2.0 to 2.1Cassandra 2.0 to 2.1
Cassandra 2.0 to 2.1Johnny Miller
 
SQL to NoSQL: Top 6 Questions
SQL to NoSQL: Top 6 QuestionsSQL to NoSQL: Top 6 Questions
SQL to NoSQL: Top 6 QuestionsMike Broberg
 
Paul Angus - Welcome to CloudStack Collaboration Conference
Paul Angus - Welcome to CloudStack Collaboration ConferencePaul Angus - Welcome to CloudStack Collaboration Conference
Paul Angus - Welcome to CloudStack Collaboration ConferenceShapeBlue
 
NoSQL and MongoDB Introdction
NoSQL and MongoDB IntrodctionNoSQL and MongoDB Introdction
NoSQL and MongoDB IntrodctionBrian Enochson
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octParadigma Digital
 
Simply Responsive CSS3
Simply Responsive CSS3Simply Responsive CSS3
Simply Responsive CSS3Denise Jacobs
 

Similaire à I have a NoSQL Toaster - ConnectJS - October 2016 (20)

I Have a NoSQL Toaster - Troy .NET User Group - July 2017
I Have a NoSQL Toaster - Troy .NET User Group - July 2017I Have a NoSQL Toaster - Troy .NET User Group - July 2017
I Have a NoSQL Toaster - Troy .NET User Group - July 2017
 
Slides: NoSQL Data Modeling Using JSON Documents – A Practical Approach
Slides: NoSQL Data Modeling Using JSON Documents – A Practical ApproachSlides: NoSQL Data Modeling Using JSON Documents – A Practical Approach
Slides: NoSQL Data Modeling Using JSON Documents – A Practical Approach
 
i_have_a_nosql_toaster_-_qcon_-_june_2017.pptx
i_have_a_nosql_toaster_-_qcon_-_june_2017.pptxi_have_a_nosql_toaster_-_qcon_-_june_2017.pptx
i_have_a_nosql_toaster_-_qcon_-_june_2017.pptx
 
The Why, When, and How of NoSQL - A Practical Approach
The Why, When, and How of NoSQL - A Practical ApproachThe Why, When, and How of NoSQL - A Practical Approach
The Why, When, and How of NoSQL - A Practical Approach
 
Couchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedIn
Couchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedInCouchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedIn
Couchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedIn
 
Introduction to Couchbase
Introduction to CouchbaseIntroduction to Couchbase
Introduction to Couchbase
 
Kafka & Couchbase Integration Patterns
Kafka & Couchbase Integration PatternsKafka & Couchbase Integration Patterns
Kafka & Couchbase Integration Patterns
 
Migration and Coexistence between Relational and NoSQL Databases by Manuel H...
 Migration and Coexistence between Relational and NoSQL Databases by Manuel H... Migration and Coexistence between Relational and NoSQL Databases by Manuel H...
Migration and Coexistence between Relational and NoSQL Databases by Manuel H...
 
Couchbase Day
Couchbase DayCouchbase Day
Couchbase Day
 
DMDW Extra Lesson - NoSql and MongoDB
DMDW  Extra Lesson - NoSql and MongoDBDMDW  Extra Lesson - NoSql and MongoDB
DMDW Extra Lesson - NoSql and MongoDB
 
Moving Past Infrastructure Limitations
Moving Past Infrastructure LimitationsMoving Past Infrastructure Limitations
Moving Past Infrastructure Limitations
 
Cassandra 2.0 to 2.1
Cassandra 2.0 to 2.1Cassandra 2.0 to 2.1
Cassandra 2.0 to 2.1
 
Couchbase 101
Couchbase 101 Couchbase 101
Couchbase 101
 
SQL to NoSQL: Top 6 Questions
SQL to NoSQL: Top 6 QuestionsSQL to NoSQL: Top 6 Questions
SQL to NoSQL: Top 6 Questions
 
Paul Angus - Welcome to CloudStack Collaboration Conference
Paul Angus - Welcome to CloudStack Collaboration ConferencePaul Angus - Welcome to CloudStack Collaboration Conference
Paul Angus - Welcome to CloudStack Collaboration Conference
 
NoSQL and MongoDB Introdction
NoSQL and MongoDB IntrodctionNoSQL and MongoDB Introdction
NoSQL and MongoDB Introdction
 
Who *is* Jenkins?
Who *is* Jenkins?Who *is* Jenkins?
Who *is* Jenkins?
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4oct
 
Apache hadoop
Apache hadoopApache hadoop
Apache hadoop
 
Simply Responsive CSS3
Simply Responsive CSS3Simply Responsive CSS3
Simply Responsive CSS3
 

Plus de Matthew Groves

CREAM - That Conference Austin - January 2024.pptx
CREAM - That Conference Austin - January 2024.pptxCREAM - That Conference Austin - January 2024.pptx
CREAM - That Conference Austin - January 2024.pptxMatthew Groves
 
FluentMigrator - Dayton .NET - July 2023
FluentMigrator - Dayton .NET - July 2023FluentMigrator - Dayton .NET - July 2023
FluentMigrator - Dayton .NET - July 2023Matthew Groves
 
Cache Rules Everything Around Me - DevIntersection - December 2022
Cache Rules Everything Around Me - DevIntersection - December 2022Cache Rules Everything Around Me - DevIntersection - December 2022
Cache Rules Everything Around Me - DevIntersection - December 2022Matthew Groves
 
Putting the SQL Back in NoSQL - October 2022 - All Things Open
Putting the SQL Back in NoSQL - October 2022 - All Things OpenPutting the SQL Back in NoSQL - October 2022 - All Things Open
Putting the SQL Back in NoSQL - October 2022 - All Things OpenMatthew Groves
 
Cache Rules Everything Around Me - Momentum - October 2022.pptx
Cache Rules Everything Around Me - Momentum - October 2022.pptxCache Rules Everything Around Me - Momentum - October 2022.pptx
Cache Rules Everything Around Me - Momentum - October 2022.pptxMatthew Groves
 
Don't Drop ACID (July 2021)
Don't Drop ACID (July 2021)Don't Drop ACID (July 2021)
Don't Drop ACID (July 2021)Matthew Groves
 
Don't Drop ACID - Data Love - April 2021
Don't Drop ACID - Data Love - April 2021Don't Drop ACID - Data Love - April 2021
Don't Drop ACID - Data Love - April 2021Matthew Groves
 
Demystifying NoSQL - All Things Open - October 2020
Demystifying NoSQL - All Things Open - October 2020Demystifying NoSQL - All Things Open - October 2020
Demystifying NoSQL - All Things Open - October 2020Matthew Groves
 
Autonomous Microservices - Manning - July 2020
Autonomous Microservices - Manning - July 2020Autonomous Microservices - Manning - July 2020
Autonomous Microservices - Manning - July 2020Matthew Groves
 
CONDG April 23 2020 - Baskar Rao - GraphQL
CONDG April 23 2020 - Baskar Rao - GraphQLCONDG April 23 2020 - Baskar Rao - GraphQL
CONDG April 23 2020 - Baskar Rao - GraphQLMatthew Groves
 
JSON Data Modeling - GDG Indy - April 2020
JSON Data Modeling - GDG Indy - April 2020JSON Data Modeling - GDG Indy - April 2020
JSON Data Modeling - GDG Indy - April 2020Matthew Groves
 
Background Tasks Without a Separate Service: Hangfire for ASP.NET - KCDC - Ju...
Background Tasks Without a Separate Service: Hangfire for ASP.NET - KCDC - Ju...Background Tasks Without a Separate Service: Hangfire for ASP.NET - KCDC - Ju...
Background Tasks Without a Separate Service: Hangfire for ASP.NET - KCDC - Ju...Matthew Groves
 
Intro to SQL++ - Detroit Tech Watch - June 2019
Intro to SQL++ - Detroit Tech Watch - June 2019Intro to SQL++ - Detroit Tech Watch - June 2019
Intro to SQL++ - Detroit Tech Watch - June 2019Matthew Groves
 
Autonomous Microservices - CodeMash - January 2019
Autonomous Microservices - CodeMash - January 2019Autonomous Microservices - CodeMash - January 2019
Autonomous Microservices - CodeMash - January 2019Matthew Groves
 
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 20185 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018Matthew Groves
 
JSON Data Modeling - July 2018 - Tulsa Techfest
JSON Data Modeling - July 2018 - Tulsa TechfestJSON Data Modeling - July 2018 - Tulsa Techfest
JSON Data Modeling - July 2018 - Tulsa TechfestMatthew Groves
 
5 NoSQL Options - Toronto - May 2018
5 NoSQL Options - Toronto - May 20185 NoSQL Options - Toronto - May 2018
5 NoSQL Options - Toronto - May 2018Matthew Groves
 
Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017Matthew Groves
 
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...Matthew Groves
 
Querying NoSQL with SQL - KCDC - August 2017
Querying NoSQL with SQL - KCDC - August 2017Querying NoSQL with SQL - KCDC - August 2017
Querying NoSQL with SQL - KCDC - August 2017Matthew Groves
 

Plus de Matthew Groves (20)

CREAM - That Conference Austin - January 2024.pptx
CREAM - That Conference Austin - January 2024.pptxCREAM - That Conference Austin - January 2024.pptx
CREAM - That Conference Austin - January 2024.pptx
 
FluentMigrator - Dayton .NET - July 2023
FluentMigrator - Dayton .NET - July 2023FluentMigrator - Dayton .NET - July 2023
FluentMigrator - Dayton .NET - July 2023
 
Cache Rules Everything Around Me - DevIntersection - December 2022
Cache Rules Everything Around Me - DevIntersection - December 2022Cache Rules Everything Around Me - DevIntersection - December 2022
Cache Rules Everything Around Me - DevIntersection - December 2022
 
Putting the SQL Back in NoSQL - October 2022 - All Things Open
Putting the SQL Back in NoSQL - October 2022 - All Things OpenPutting the SQL Back in NoSQL - October 2022 - All Things Open
Putting the SQL Back in NoSQL - October 2022 - All Things Open
 
Cache Rules Everything Around Me - Momentum - October 2022.pptx
Cache Rules Everything Around Me - Momentum - October 2022.pptxCache Rules Everything Around Me - Momentum - October 2022.pptx
Cache Rules Everything Around Me - Momentum - October 2022.pptx
 
Don't Drop ACID (July 2021)
Don't Drop ACID (July 2021)Don't Drop ACID (July 2021)
Don't Drop ACID (July 2021)
 
Don't Drop ACID - Data Love - April 2021
Don't Drop ACID - Data Love - April 2021Don't Drop ACID - Data Love - April 2021
Don't Drop ACID - Data Love - April 2021
 
Demystifying NoSQL - All Things Open - October 2020
Demystifying NoSQL - All Things Open - October 2020Demystifying NoSQL - All Things Open - October 2020
Demystifying NoSQL - All Things Open - October 2020
 
Autonomous Microservices - Manning - July 2020
Autonomous Microservices - Manning - July 2020Autonomous Microservices - Manning - July 2020
Autonomous Microservices - Manning - July 2020
 
CONDG April 23 2020 - Baskar Rao - GraphQL
CONDG April 23 2020 - Baskar Rao - GraphQLCONDG April 23 2020 - Baskar Rao - GraphQL
CONDG April 23 2020 - Baskar Rao - GraphQL
 
JSON Data Modeling - GDG Indy - April 2020
JSON Data Modeling - GDG Indy - April 2020JSON Data Modeling - GDG Indy - April 2020
JSON Data Modeling - GDG Indy - April 2020
 
Background Tasks Without a Separate Service: Hangfire for ASP.NET - KCDC - Ju...
Background Tasks Without a Separate Service: Hangfire for ASP.NET - KCDC - Ju...Background Tasks Without a Separate Service: Hangfire for ASP.NET - KCDC - Ju...
Background Tasks Without a Separate Service: Hangfire for ASP.NET - KCDC - Ju...
 
Intro to SQL++ - Detroit Tech Watch - June 2019
Intro to SQL++ - Detroit Tech Watch - June 2019Intro to SQL++ - Detroit Tech Watch - June 2019
Intro to SQL++ - Detroit Tech Watch - June 2019
 
Autonomous Microservices - CodeMash - January 2019
Autonomous Microservices - CodeMash - January 2019Autonomous Microservices - CodeMash - January 2019
Autonomous Microservices - CodeMash - January 2019
 
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 20185 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
 
JSON Data Modeling - July 2018 - Tulsa Techfest
JSON Data Modeling - July 2018 - Tulsa TechfestJSON Data Modeling - July 2018 - Tulsa Techfest
JSON Data Modeling - July 2018 - Tulsa Techfest
 
5 NoSQL Options - Toronto - May 2018
5 NoSQL Options - Toronto - May 20185 NoSQL Options - Toronto - May 2018
5 NoSQL Options - Toronto - May 2018
 
Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017
 
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
 
Querying NoSQL with SQL - KCDC - August 2017
Querying NoSQL with SQL - KCDC - August 2017Querying NoSQL with SQL - KCDC - August 2017
Querying NoSQL with SQL - KCDC - August 2017
 

Dernier

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Dernier (20)

Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

I have a NoSQL Toaster - ConnectJS - October 2016

  • 1. I have a NoSQLToaster. Why would I want a NoSQL database? Matthew D. Groves @mgroves Original slides by Matthew Revell - @matthewrevell
  • 2. ©2016 Couchbase Inc. 2 Where am I? • Connect.Tech • http://connect-js.com • http://twitter.com/connect_js
  • 3. ©2016 Couchbase Inc. 3 Who am I? • Matthew D. Groves • Developer Advocate for Couchbase • @mgroves onTwitter • Podcast and blog: http://crosscuttingconcerns.com • “I am not an expert, but I am an enthusiast.” – Alan Stevens
  • 4. ©2016 Couchbase Inc. 4 Tweet something, get a sticker! Use #Couchbase Tweet something interesting you’ve learned. Tweet a picture. I’ve got stickers and a prize for the best tweet!
  • 5. ©2016 Couchbase Inc. 5 Couchbase and CouchDB Couchbase is to CouchDB as MySQL is to SQL Server
  • 6. ©2016 Couchbase Inc. 6 SQL is the norm, right? https://commons.wikimedia.org/wiki/File:George_Wendt_at_the_41st_Emmy_Awards_cropped.jpg
  • 7. ~3200 BC: invention of writing in Mesopotamia ~300 BC: Library of Alexandria ~1041AD: Movable type invented in China 1450: Movable type invented in Europe 1822: Babbage’s paper on the application of difference engines 1943: Colossus, the first programmable digital computer 1957-1960: IBM SABRE, the first commercial use of a database 1970: EF Codd proposes the relational database model 1974: Ingres released 1979: Commercial launch of Oracle database 1988: Object databases appear 1989: Microsoft SQL Server version 1 1991: HTTP v0.9 1995: MySQL’s initial release 2005: CouchDB released 2006: Google’s BigTable paper 2007: Amazon’s Dynamo paper 2008-2009: The NoSQL Cambrian explosion: Riak, MongoDB,Cassandra, Redis 2010: Couchbase arrives on the scene
  • 8. NoSQL isn’t a very useful term
  • 10. ©2016 Couchbase Inc. 10 Scalable? https://commons.wikimedia.org/wiki/File:Dagwood_sandwich.jpg
  • 11. ©2016 Couchbase Inc. 11 Commodity Hardware https://commons.wikimedia.org/wiki/File:Rear_of_rack_at_NERSC_data_center_-_closeup.jpg
  • 12. ©2016 Couchbase Inc. 12 ACID vs BASE? https://commons.wikimedia.org/wiki/File:PH_Scale.svg Atomic Consistent Isolated Durable Basic Availability Soft-state Eventual consistency
  • 13. ©2016 Couchbase Inc. 13 Schema Schemaless https://en.wikipedia.org/wiki/File:Star-schema-example.png
  • 14. ©2016 Couchbase Inc. 14 Normalized Denormalized https://commons.wikimedia.org/wiki/File:Frown.JPG
  • 15. ©2016 Couchbase Inc. 15 First: Why NoSQL? https://www.flickr.com/photos/wonderlane/13067014944
  • 16. ©2016 Couchbase Inc. 16 Round pegs, square holes http://www.timesofbook.com/2013/09/blobfish-image-gallery.html#.V6iXwbgrJhE
  • 17. ©2016 Couchbase Inc. 17 Perhaps SQL is right for this project
  • 18. ©2016 Couchbase Inc. 18 Scaling can be hard https://commons.wikimedia.org/wiki/File:Sandwiches_Vienna.jpg
  • 19. ©2016 Couchbase Inc. 19 Availability is hard https://www.flickr.com/photos/jeepersmedia/14562425273/ C A P
  • 20. ©2016 Couchbase Inc. 20 Schemas can be hard https://commons.wikimedia.org/wiki/File:MediaWiki_database_schema_1-17_(r82044).svg
  • 21. ©2016 Couchbase Inc. 21 Types of NoSQL databases Document Key/Value Columnar Graph
  • 22. ©2016 Couchbase Inc. 22 Convergence!
  • 23. ©2016 Couchbase Inc. 23 Document
  • 24. ???
  • 25. ©2016 Couchbase Inc. 25 What makes it a document database?
  • 27.
  • 28. ©2016 Couchbase Inc. 28 The document database understands the format of the document
  • 29. ©2016 Couchbase Inc. 29 It can do server-side stuff
  • 31. "ClientProductCode","Title","Quantity" "TShirtCBS","Couchbase logo t-shirt (small)",29 "TShirtCBM","Couchbase logo t-shirt (medium)",72 "TShirtCBL","Couchbase logo t-shirt (large)",34 "TShirtCBXL","Couchbase logo t-shirt (extra large)",12 "StickerCBLogo","Couchbase logo sticker",256 "PenCBLogo","Couchbase logo pen",365
  • 32. class Program { private static IBucket _bucket; static void Main(string[] args) { SetupCouchbase(); LoadStockList(); ClusterHelper.Close(); } private static void SetupCouchbase() { ClientConfiguration config = new ClientConfiguration(); config.Servers = new List<Uri> {new Uri("couchbase://192.168.1.5") }; ClusterHelper.Initialize(config); _bucket = ClusterHelper.GetBucket("default"); } private static void LoadStockList() { var csv = new CsvReader(File.OpenText("swag.csv")); while (csv.Read()) { var record = csv.GetRecord<dynamic>(); var document = new Document<dynamic> { Id = record.ClientProductCode, Content = new { record.Title, record.Quantity } }; _bucket.Insert(document); Console.WriteLine($"Added document '{record.ClientProductCode}'"); } } }
  • 33. private static void SetupCouchbase() { ClientConfiguration config = new ClientConfiguration(); config.Servers = new List<Uri> {new Uri("couchbase://192.168.1.5") }; ClusterHelper.Initialize(config); _bucket = ClusterHelper.GetBucket("default"); }
  • 34. private static void LoadStockList() { var csv = new CsvReader(File.OpenText("swag.csv")); while (csv.Read()) { var record = csv.GetRecord<dynamic>(); var document = new Document<dynamic> { Id = record.ClientProductCode, Content = new { record.Title, record.Quantity } }; _bucket.Insert(document); Console.WriteLine($"Added document '{record.ClientProductCode}'"); } }
  • 35.
  • 36. private static void GetDocument() { var doc = _bucket.Get<dynamic>("StickerCBLogo"); Console.WriteLine($"Document Key: {doc.Id}"); Console.WriteLine($"Title: {doc.Value.title}"); Console.WriteLine($"Quantity: {doc.Value.quantity}"); }
  • 37.
  • 38. ©2016 Couchbase Inc. 38 Typical Document Database Operations • Upsert (aka set) • Inserts document if key doesn’t exist, replaces otherwise • Insert (aka add) • Inserts document, error if it already exists • Update (aka replace) • Updates document, error if it doesn’t exist • Delete • Get
  • 39. ©2016 Couchbase Inc. 39 N1QL SELECT m.* FROM `default` m WHERE META(m).id = ‘StickerCBLogo’ SELECT m.* FROM `default` m WHERE m.quantity > 10
  • 40. Great for Dev Scales Easily Consistently Fast
  • 41. ©2016 Couchbase Inc. 41 Use cases for Document Databases • User profiles • Session stores • Content management • General relational replacement • http://info.couchbase.com/15Q1TopTenUC.html
  • 42. ©2016 Couchbase Inc. 42 Key/Value Database
  • 43.
  • 44. ©2016 Couchbase Inc. 44 Key-Value Databases In-memory caches and distributed data stores
  • 45. ©2016 Couchbase Inc. 45 Doesn’t care what your data is (mostly) KEY1 { type: “json” } KEY2 <data type=“xml”></data> KEY3 Lorem ipsum … 00100101000100101 KEYN https://www.flickr.com/photos/dcmot/23168680069
  • 47. ©2016 Couchbase Inc. 47 C# Riak private static void DoStuffWithRiak() { var cluster = RiakCluster.FromConfig("riakConfig"); var client = cluster.CreateClient(); var actor = new RiakObject("actors", "James Bond","Sean Connery"); client.Put(actor); var actorBackOut = client.Get("actors", "James Bond"); var str = System.Text.Encoding.UTF8.GetString(actorBackOut.Value.Value); Console.WriteLine($"Value: {str}"); }
  • 48.
  • 49. ©2016 Couchbase Inc. 49 Introducing: Eventual Consistency!
  • 50. ©2016 Couchbase Inc. 50 Eventual Consistency https://www.flickr.com/photos/scottchene/7046992749 https://commons.wikimedia.org/wiki/File:Timothy_Dalton_1987.jpg https://commons.wikimedia.org/wiki/File:Sir_Roger_Moore_crop.jpg
  • 51. ©2016 Couchbase Inc. 51 There can be only one! https://en.wikipedia.org/wiki/File:Highlander_film_Connor_MacLeod.jpg
  • 52. ©2016 Couchbase Inc. 52 So, fix it https://www.flickr.com/photos/94086507@N00/84368105
  • 54. ©2016 Couchbase Inc. 54 Use Cases for K/V • Data variability • Object caching • Session storage • Large object storage
  • 55. ©2016 Couchbase Inc. 55 Columnar
  • 56.
  • 58. ©2016 Couchbase Inc. 58 Keyspace
  • 59. ©2016 Couchbase Inc. 59 Column Family
  • 60. CREATE KEYSPACE mykeyspace WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': '1'}; CREATE TABLE users (firstname text, lastname text, age int, email text, city text, PRIMARY KEY (lastname));
  • 61. private static void DoStuffWithDataStax() { var cluster = Cluster.Builder().AddContactPoint("127.0.0.1").Build(); var session = cluster.Connect("mykeyspace"); session.Execute("insert into users (lastname, age, city, email, firstname) values ('Jones', 35, 'Austin', 'bob@example.com', 'Bob')"); var userBackOut = session.Execute("select * from users where lastname='Jones'").First(); Console.WriteLine($"{userBackOut["firstname"]} {userBackOut["age"]}"); }
  • 62.
  • 63. Impedance Mismatch ScalesWell (Ops Headache) Suited to Analytics
  • 64. ©2016 Couchbase Inc. 64 Use cases for Columnar •Metering data •Really big data •Analytics
  • 65. ©2016 Couchbase Inc. 65 Graph https://commons.wikimedia.org/wiki/File:The_protein_interaction_network_of_Treponema_pallidum.png
  • 66. ©2016 Couchbase Inc. 66 Leonhard Euler
  • 67. ©2016 Couchbase Inc. 67 7 Bridges of Königsberg
  • 68.
  • 69. ©2016 Couchbase Inc. 69 Use cases for Graph databases • Social networks / dating sites • Fraud detection • Parcel routing • Shopping recommendations
  • 70. ©2016 Couchbase Inc. 70 Say what? Relational Document Key/Value Columnar Graph Object others…
  • 71. ©2016 Couchbase Inc. 71 Box arrow box arrow Web Logic SQL Riak Couchbase More Logic Mobile
  • 72. ©2016 Couchbase Inc. 72 Couchbase, everybody! http://couchbase.com/connect http://info.couchbase.com/Connect16_Livestream_Registration.html
  • 73. ©2016 Couchbase Inc. 73 Where do you find us? • developer.couchbase.com • blog.couchbase.com • forums.couchbase.com • @couchbasedev • #couchbase • @mgroves • @couchbase