SlideShare a Scribd company logo
1 of 24
Data Modeling Basics for the Cloud
Robert Stupp
Solutions Architect @ DataStax – Committer to Apache Cassandra
Data Modeling for the Cloud
DSE is the database
for the cloud
1.Always On
2.Instantaneously
Responsive
3.Numerous Endpoints
4.Geographically Distributed
5.Predictively Scalable
© 2016 DataStax, All Rights Reserved. 2
CC BY 2.0, by Blake Patterson on Flickr
100000 transactions
per second
200000 transactions
per second
Application
Replication Factor 3
Eventual Consistency
© DataStax, All Rights Reserved. 3
… is not hopefully consistent
Some data
Some dataSome data
Consistency Level:
ONE
Application
UP
Replication Factor 3
Quorum Consistency
© DataStax, All Rights Reserved. 4
Some data
Some dataSome data
Consistency Level:
QUORUM
DOWN
DSE / Cassandra NodeApplication
Write Path
© DataStax, All Rights Reserved. 5
Memtable
Commit
Log
Files
SSTable
Some data
Some data
SSTable
SSTable SSTable
SSTable SSTable
Some data
Some data
Some data
Some data
Some data
Compaction
© DataStax, All Rights Reserved. 6
SSTable SSTable SSTable SSTable
SSTable
Compaction Strategies
• Size Tiered
• Leveled
• Date Tiered
© DataStax, All Rights Reserved. 7
Data Organization in DSE / Cassandra
Partition
Device ID Timestamp Temperature Humidity
01-32483-17383 2016-04-19 14:00 22 70
01-32483-17383 2016-04-19 15:00 21.5 65
01-32483-17383 2016-04-19 16:00 23.0 70
Partition
Key
Clustering
Key
Columns
Primary Key
Device ID Timestamp
01-32483-17383 2016-04-19 14:00
01-32483-17383 2016-04-19 15:00
01-32483-17383 2016-04-19 16:00
Device ID
01-32483-17383
01-32483-17383
01-32483-17383
Data Modeling 101
1. Understand your data
Conceptual data modeling
2. Collect queries
Understand your application
3. Model according to queries
Logical data modeling
4. Apply optimizations
Physical data modeling
© DataStax, All Rights Reserved. 9
Query driven modeling
1. Collect your use cases
2. Extract queries
3. Model your tables
© DataStax, All Rights Reserved. 10
Queries, yes
SELECT
timestamp, temperature, humidity
FROM
sensor_data
WHERE
sensor_id = ’01-32483-17383’
© 2016 DataStax, All Rights Reserved. 11
Always include the
Partition Key
Some standard use-cases
• Customer registration
• Customer login
• Delivery addresses
© DataStax, All Rights Reserved. 12
Customer registration
1. Check if customer exists
query by username
© 2016 DataStax, All Rights Reserved. 13
CREATE TABLE customers (
username text PRIMARY KEY,
password_hash text,
first_name text,
last_name text,
email text
);
SELECT username FROM customers WHERE username = ?
Customer login by username
1. Check if user exists and password matches
query by username
© 2016 DataStax, All Rights Reserved. 14
CREATE TABLE customers (
username text PRIMARY KEY,
password_hash text,
first_name text,
last_name text,
email text
);
SELECT password_hash FROM customers WHERE username = ?
Customer login by email
1. Check if user exists and password matches
query by email
© 2016 DataStax, All Rights Reserved. 15
CREATE TABLE customers (
username text PRIMARY KEY,
password_hash text,
first_name text,
last_name text,
email text
);
SELECT password_hash FROM customers WHERE email = ?
InvalidRequest: code=2200 [Invalid query]
message="Cannot execute this query as it might
involve data filtering and
thus may have unpredictable performance.
Customer login by email
1. Check if user exists and password matches
query by email
© 2016 DataStax, All Rights Reserved. 16
CREATE TABLE customers_by_email (
email text PRIMARY KEY,
password_hash text,
first_name text,
last_name text,
username text
);
SELECT password_hash FROM customers_by_email WHERE email = ?
This works
Modeling delivery addresses
© 2016 DataStax, All Rights Reserved. 17
CREATE TABLE customer_addresses (
username text,
address_type text,
street text,
zip text,
city text,
PRIMARY KEY ( username, address_type )
);
SELECT street,zip,city FROM customer_addresses WHERE username = ?;
SELECT street,zip,city FROM customer_addresses
WHERE username = ? AND address_type = ?;
Modeling delivery addresses
1. Print delivery address label
query by user by user name
query delivery address by user and type
© 2016 DataStax, All Rights Reserved. 18
SELECT first_name, last_name FROM customers WHERE username = ?;
SELECT street,zip,city FROM customer_addresses
WHERE username = ? AND address_type = ?;
This works,
But it’s not great.
Modeling delivery addresses
© 2016 DataStax, All Rights Reserved. 19
CREATE TYPE delivery_address (
street text,
zip text,
city text);
Just 1 read
CREATE TABLE customers (
username text PRIMARY KEY,
password_hash text,
first_name text,
last_name text,
email text,
delivery_addrs map < text, frozen < delivery_address > >
);
SELECT first_name, last_name, delivery_addrs
FROM customers WHERE username = ?;
Customer registration – the problem
SELECT username FROM customers
WHERE username = ?
(no results)
© 2016 DataStax, All Rights Reserved. 20
SELECT username FROM customers
WHERE username = ?
(no results)
INSERT INTO customers
(username, first_name, last_name)
VALUES
(‘snazy’, ‘Robert’, ‘Stupp’)
(success) INSERT INTO customers
(username, first_name, last_name)
VALUES
(‘snazy’, ‘Not’, ‘Robert’)
(success)
This one wins
This one gets
overwritten
Customer registration – the solution
SELECT username FROM customers
WHERE username = ?
(no results)
© 2016 DataStax, All Rights Reserved. 21
SELECT username FROM customers
WHERE username = ?
(no results)
INSERT INTO customers …
IF NOT EXISTS
 [applied] = true
INSERT INTO customers …
IF NOT EXISTS
 [applied] = false
Sorry, dude
OK
Customer registration – the even better
solution
© 2016 DataStax, All Rights Reserved. 22
INSERT INTO customers …
IF NOT EXISTS
 [applied] = true
INSERT INTO customers …
IF NOT EXISTS
 [applied] = false
Sorry, dude
OK
Customer login by email – w/ DSE 5.0
1. Check if user exists and password matches
query by email
© 2016 DataStax, All Rights Reserved. 23
CREATE TABLE customers (
username text PRIMARY KEY,
password_hash text,
first_name text,
last_name text,
email text
);
CREATE MATERIALIZED VIEW customers_by_email AS
SELECT email, username, first_name, last_name, password_hash
FROM customers
WHERE email IS NOT NULL
PRIMARY KEY ( email, username );
SELECT password_hash FROM customers_by_email WHERE email = ?;
May the node
be with you!
Robert Stupp Solutions Architect @ DataStax
robert.stupp@datastax.com Committer to Apache Cassandra
@snazy

More Related Content

What's hot

Reltio: Powering Enterprise Data-driven Applications with Cassandra
Reltio: Powering Enterprise Data-driven Applications with CassandraReltio: Powering Enterprise Data-driven Applications with Cassandra
Reltio: Powering Enterprise Data-driven Applications with CassandraDataStax Academy
 
Cassandra Community Webinar: From Mongo to Cassandra, Architectural Lessons
Cassandra Community Webinar: From Mongo to Cassandra, Architectural LessonsCassandra Community Webinar: From Mongo to Cassandra, Architectural Lessons
Cassandra Community Webinar: From Mongo to Cassandra, Architectural LessonsDataStax
 
Webinar: Buckle Up: The Future of the Distributed Database is Here - DataStax...
Webinar: Buckle Up: The Future of the Distributed Database is Here - DataStax...Webinar: Buckle Up: The Future of the Distributed Database is Here - DataStax...
Webinar: Buckle Up: The Future of the Distributed Database is Here - DataStax...DataStax
 
Transforms Document Management at Scale with Distributed Database Solution wi...
Transforms Document Management at Scale with Distributed Database Solution wi...Transforms Document Management at Scale with Distributed Database Solution wi...
Transforms Document Management at Scale with Distributed Database Solution wi...DataStax Academy
 
How much money do you lose every time your ecommerce site goes down?
How much money do you lose every time your ecommerce site goes down?How much money do you lose every time your ecommerce site goes down?
How much money do you lose every time your ecommerce site goes down?DataStax
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...DataStax
 
From PoCs to Production
From PoCs to ProductionFrom PoCs to Production
From PoCs to ProductionDataStax
 
Cassandra Community Webinar: MySQL to Cassandra - What I Wish I'd Known
Cassandra Community Webinar: MySQL to Cassandra - What I Wish I'd KnownCassandra Community Webinar: MySQL to Cassandra - What I Wish I'd Known
Cassandra Community Webinar: MySQL to Cassandra - What I Wish I'd KnownDataStax
 
Reporting from the Trenches: Intuit & Cassandra
Reporting from the Trenches: Intuit & CassandraReporting from the Trenches: Intuit & Cassandra
Reporting from the Trenches: Intuit & CassandraDataStax
 
Building a Digital Bank
Building a Digital BankBuilding a Digital Bank
Building a Digital BankDataStax
 
Real-time personal trainer on the SMACK stack
Real-time personal trainer on the SMACK stackReal-time personal trainer on the SMACK stack
Real-time personal trainer on the SMACK stackAnirvan Chakraborty
 
Don't Let Your Shoppers Drop; 5 Rules for Today’s eCommerce
Don't Let Your Shoppers Drop; 5 Rules for Today’s eCommerceDon't Let Your Shoppers Drop; 5 Rules for Today’s eCommerce
Don't Let Your Shoppers Drop; 5 Rules for Today’s eCommerceDataStax
 
Webinar | Introducing DataStax Enterprise 4.6
Webinar | Introducing DataStax Enterprise 4.6Webinar | Introducing DataStax Enterprise 4.6
Webinar | Introducing DataStax Enterprise 4.6DataStax
 
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...DataStax
 
How jKool Analyzes Streaming Data in Real Time with DataStax
How jKool Analyzes Streaming Data in Real Time with DataStaxHow jKool Analyzes Streaming Data in Real Time with DataStax
How jKool Analyzes Streaming Data in Real Time with DataStaxDataStax
 
Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...
Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...
Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...Fwdays
 
Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...
Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...
Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...DataStax
 
Design Patterns for Building 360-degree Views with HBase and Kiji
Design Patterns for Building 360-degree Views with HBase and KijiDesign Patterns for Building 360-degree Views with HBase and Kiji
Design Patterns for Building 360-degree Views with HBase and KijiHBaseCon
 
Managing Cassandra Databases with OpenStack Trove
Managing Cassandra Databases with OpenStack TroveManaging Cassandra Databases with OpenStack Trove
Managing Cassandra Databases with OpenStack TroveTesora
 
How to Successfully Visualize DSE Graph data
How to Successfully Visualize DSE Graph dataHow to Successfully Visualize DSE Graph data
How to Successfully Visualize DSE Graph dataDataStax
 

What's hot (20)

Reltio: Powering Enterprise Data-driven Applications with Cassandra
Reltio: Powering Enterprise Data-driven Applications with CassandraReltio: Powering Enterprise Data-driven Applications with Cassandra
Reltio: Powering Enterprise Data-driven Applications with Cassandra
 
Cassandra Community Webinar: From Mongo to Cassandra, Architectural Lessons
Cassandra Community Webinar: From Mongo to Cassandra, Architectural LessonsCassandra Community Webinar: From Mongo to Cassandra, Architectural Lessons
Cassandra Community Webinar: From Mongo to Cassandra, Architectural Lessons
 
Webinar: Buckle Up: The Future of the Distributed Database is Here - DataStax...
Webinar: Buckle Up: The Future of the Distributed Database is Here - DataStax...Webinar: Buckle Up: The Future of the Distributed Database is Here - DataStax...
Webinar: Buckle Up: The Future of the Distributed Database is Here - DataStax...
 
Transforms Document Management at Scale with Distributed Database Solution wi...
Transforms Document Management at Scale with Distributed Database Solution wi...Transforms Document Management at Scale with Distributed Database Solution wi...
Transforms Document Management at Scale with Distributed Database Solution wi...
 
How much money do you lose every time your ecommerce site goes down?
How much money do you lose every time your ecommerce site goes down?How much money do you lose every time your ecommerce site goes down?
How much money do you lose every time your ecommerce site goes down?
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
 
From PoCs to Production
From PoCs to ProductionFrom PoCs to Production
From PoCs to Production
 
Cassandra Community Webinar: MySQL to Cassandra - What I Wish I'd Known
Cassandra Community Webinar: MySQL to Cassandra - What I Wish I'd KnownCassandra Community Webinar: MySQL to Cassandra - What I Wish I'd Known
Cassandra Community Webinar: MySQL to Cassandra - What I Wish I'd Known
 
Reporting from the Trenches: Intuit & Cassandra
Reporting from the Trenches: Intuit & CassandraReporting from the Trenches: Intuit & Cassandra
Reporting from the Trenches: Intuit & Cassandra
 
Building a Digital Bank
Building a Digital BankBuilding a Digital Bank
Building a Digital Bank
 
Real-time personal trainer on the SMACK stack
Real-time personal trainer on the SMACK stackReal-time personal trainer on the SMACK stack
Real-time personal trainer on the SMACK stack
 
Don't Let Your Shoppers Drop; 5 Rules for Today’s eCommerce
Don't Let Your Shoppers Drop; 5 Rules for Today’s eCommerceDon't Let Your Shoppers Drop; 5 Rules for Today’s eCommerce
Don't Let Your Shoppers Drop; 5 Rules for Today’s eCommerce
 
Webinar | Introducing DataStax Enterprise 4.6
Webinar | Introducing DataStax Enterprise 4.6Webinar | Introducing DataStax Enterprise 4.6
Webinar | Introducing DataStax Enterprise 4.6
 
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
 
How jKool Analyzes Streaming Data in Real Time with DataStax
How jKool Analyzes Streaming Data in Real Time with DataStaxHow jKool Analyzes Streaming Data in Real Time with DataStax
How jKool Analyzes Streaming Data in Real Time with DataStax
 
Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...
Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...
Виталий Бондаренко "Fast Data Platform for Real-Time Analytics. Architecture ...
 
Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...
Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...
Making Every Drop Count: How i20 Addresses the Water Crisis with the IoT and ...
 
Design Patterns for Building 360-degree Views with HBase and Kiji
Design Patterns for Building 360-degree Views with HBase and KijiDesign Patterns for Building 360-degree Views with HBase and Kiji
Design Patterns for Building 360-degree Views with HBase and Kiji
 
Managing Cassandra Databases with OpenStack Trove
Managing Cassandra Databases with OpenStack TroveManaging Cassandra Databases with OpenStack Trove
Managing Cassandra Databases with OpenStack Trove
 
How to Successfully Visualize DSE Graph data
How to Successfully Visualize DSE Graph dataHow to Successfully Visualize DSE Graph data
How to Successfully Visualize DSE Graph data
 

Viewers also liked

EU: Vaccines For Human Medicine - Market Report. Analysis And Forecast To 2020
EU: Vaccines For Human Medicine - Market Report. Analysis And Forecast To 2020EU: Vaccines For Human Medicine - Market Report. Analysis And Forecast To 2020
EU: Vaccines For Human Medicine - Market Report. Analysis And Forecast To 2020IndexBox Marketing
 
20161229內政部:「中華民國與聖克里斯多福及尼維斯聯邦警政合作協定」
20161229內政部:「中華民國與聖克里斯多福及尼維斯聯邦警政合作協定」20161229內政部:「中華民國與聖克里斯多福及尼維斯聯邦警政合作協定」
20161229內政部:「中華民國與聖克里斯多福及尼維斯聯邦警政合作協定」R.O.C.Executive Yuan
 
A-N Certificates
A-N CertificatesA-N Certificates
A-N CertificatesAhmed Nabil
 
行政院簡報 科技部:科技發展施政成果
行政院簡報 科技部:科技發展施政成果行政院簡報 科技部:科技發展施政成果
行政院簡報 科技部:科技發展施政成果releaseey
 
Diabetes mellitus tipo 2 genetica
Diabetes mellitus tipo 2 geneticaDiabetes mellitus tipo 2 genetica
Diabetes mellitus tipo 2 geneticaCatherin_Chango
 
Boomerang - Social Listening
Boomerang  - Social Listening Boomerang  - Social Listening
Boomerang - Social Listening Vũ Văn Hiển
 
20151111衛環及財政委員會第1次聯席會議 - 菸品健康福利捐分配及運用辦法
20151111衛環及財政委員會第1次聯席會議 - 菸品健康福利捐分配及運用辦法20151111衛環及財政委員會第1次聯席會議 - 菸品健康福利捐分配及運用辦法
20151111衛環及財政委員會第1次聯席會議 - 菸品健康福利捐分配及運用辦法R.O.C.Ministry of Health and Welfare
 
Exodus Lessons Learned H4Dip Stanford 2016
Exodus Lessons Learned H4Dip Stanford 2016Exodus Lessons Learned H4Dip Stanford 2016
Exodus Lessons Learned H4Dip Stanford 2016Stanford University
 

Viewers also liked (12)

Eltk
EltkEltk
Eltk
 
EU: Vaccines For Human Medicine - Market Report. Analysis And Forecast To 2020
EU: Vaccines For Human Medicine - Market Report. Analysis And Forecast To 2020EU: Vaccines For Human Medicine - Market Report. Analysis And Forecast To 2020
EU: Vaccines For Human Medicine - Market Report. Analysis And Forecast To 2020
 
20161229內政部:「中華民國與聖克里斯多福及尼維斯聯邦警政合作協定」
20161229內政部:「中華民國與聖克里斯多福及尼維斯聯邦警政合作協定」20161229內政部:「中華民國與聖克里斯多福及尼維斯聯邦警政合作協定」
20161229內政部:「中華民國與聖克里斯多福及尼維斯聯邦警政合作協定」
 
Act1 mapr
Act1 maprAct1 mapr
Act1 mapr
 
A-N Certificates
A-N CertificatesA-N Certificates
A-N Certificates
 
行政院簡報 科技部:科技發展施政成果
行政院簡報 科技部:科技發展施政成果行政院簡報 科技部:科技發展施政成果
行政院簡報 科技部:科技發展施政成果
 
Diabetes mellitus tipo 2 genetica
Diabetes mellitus tipo 2 geneticaDiabetes mellitus tipo 2 genetica
Diabetes mellitus tipo 2 genetica
 
Boomerang - Social Listening
Boomerang  - Social Listening Boomerang  - Social Listening
Boomerang - Social Listening
 
Fitsiou panagiota mobile psychiatric unit 2012
Fitsiou panagiota mobile psychiatric unit 2012Fitsiou panagiota mobile psychiatric unit 2012
Fitsiou panagiota mobile psychiatric unit 2012
 
105年度長照電話民調結果摘要
105年度長照電話民調結果摘要105年度長照電話民調結果摘要
105年度長照電話民調結果摘要
 
20151111衛環及財政委員會第1次聯席會議 - 菸品健康福利捐分配及運用辦法
20151111衛環及財政委員會第1次聯席會議 - 菸品健康福利捐分配及運用辦法20151111衛環及財政委員會第1次聯席會議 - 菸品健康福利捐分配及運用辦法
20151111衛環及財政委員會第1次聯席會議 - 菸品健康福利捐分配及運用辦法
 
Exodus Lessons Learned H4Dip Stanford 2016
Exodus Lessons Learned H4Dip Stanford 2016Exodus Lessons Learned H4Dip Stanford 2016
Exodus Lessons Learned H4Dip Stanford 2016
 

Similar to Data Modeling Basics for the Cloud

Cassandra introduction 2016
Cassandra introduction 2016Cassandra introduction 2016
Cassandra introduction 2016Duyhai Doan
 
Datastax day 2016 introduction to apache cassandra
Datastax day 2016   introduction to apache cassandraDatastax day 2016   introduction to apache cassandra
Datastax day 2016 introduction to apache cassandraDuyhai Doan
 
Query in Couchbase. N1QL: SQL for JSON
Query in Couchbase.  N1QL: SQL for JSONQuery in Couchbase.  N1QL: SQL for JSON
Query in Couchbase. N1QL: SQL for JSONKeshav Murthy
 
Application Development & Database Choices: Postgres Support for non Relation...
Application Development & Database Choices: Postgres Support for non Relation...Application Development & Database Choices: Postgres Support for non Relation...
Application Development & Database Choices: Postgres Support for non Relation...EDB
 
[WSO2Con EU 2017] Streaming Analytics Patterns for Your Digital Enterprise
[WSO2Con EU 2017] Streaming Analytics Patterns for Your Digital Enterprise[WSO2Con EU 2017] Streaming Analytics Patterns for Your Digital Enterprise
[WSO2Con EU 2017] Streaming Analytics Patterns for Your Digital EnterpriseWSO2
 
Data Warehousing with Python
Data Warehousing with PythonData Warehousing with Python
Data Warehousing with PythonMartin Loetzsch
 
Cassandra Data Modeling
Cassandra Data ModelingCassandra Data Modeling
Cassandra Data ModelingBen Knear
 
Cassandra SF 2015 - Repeatable, Scalable, Reliable, Observable Cassandra
Cassandra SF 2015 - Repeatable, Scalable, Reliable, Observable CassandraCassandra SF 2015 - Repeatable, Scalable, Reliable, Observable Cassandra
Cassandra SF 2015 - Repeatable, Scalable, Reliable, Observable Cassandraaaronmorton
 
The Last Pickle: Repeatable, Scalable, Reliable, Observable: Cassandra
The Last Pickle: Repeatable, Scalable, Reliable, Observable: CassandraThe Last Pickle: Repeatable, Scalable, Reliable, Observable: Cassandra
The Last Pickle: Repeatable, Scalable, Reliable, Observable: CassandraDataStax Academy
 
Data Exploration with Apache Drill: Day 2
Data Exploration with Apache Drill: Day 2Data Exploration with Apache Drill: Day 2
Data Exploration with Apache Drill: Day 2Charles Givre
 
Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...
Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...
Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...it-people
 
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQL
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQLBringing SQL to NoSQL: Rich, Declarative Query for NoSQL
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQLKeshav Murthy
 
Offline First Apps With Couchbase Mobile and Xamarin
Offline First Apps With Couchbase Mobile and XamarinOffline First Apps With Couchbase Mobile and Xamarin
Offline First Apps With Couchbase Mobile and XamarinMartin Esmann
 
Data day texas: Cassandra and the Cloud
Data day texas: Cassandra and the CloudData day texas: Cassandra and the Cloud
Data day texas: Cassandra and the Cloudjbellis
 
Prog1 chap1 and chap 2
Prog1 chap1 and chap 2Prog1 chap1 and chap 2
Prog1 chap1 and chap 2rowensCap
 
Building a Messaging Application with Redis Streams (DAT353) - AWS re:Invent ...
Building a Messaging Application with Redis Streams (DAT353) - AWS re:Invent ...Building a Messaging Application with Redis Streams (DAT353) - AWS re:Invent ...
Building a Messaging Application with Redis Streams (DAT353) - AWS re:Invent ...Amazon Web Services
 

Similar to Data Modeling Basics for the Cloud (20)

Cassandra introduction 2016
Cassandra introduction 2016Cassandra introduction 2016
Cassandra introduction 2016
 
Datastax day 2016 introduction to apache cassandra
Datastax day 2016   introduction to apache cassandraDatastax day 2016   introduction to apache cassandra
Datastax day 2016 introduction to apache cassandra
 
Query in Couchbase. N1QL: SQL for JSON
Query in Couchbase.  N1QL: SQL for JSONQuery in Couchbase.  N1QL: SQL for JSON
Query in Couchbase. N1QL: SQL for JSON
 
Application Development & Database Choices: Postgres Support for non Relation...
Application Development & Database Choices: Postgres Support for non Relation...Application Development & Database Choices: Postgres Support for non Relation...
Application Development & Database Choices: Postgres Support for non Relation...
 
SAS Internal Training
SAS Internal TrainingSAS Internal Training
SAS Internal Training
 
[WSO2Con EU 2017] Streaming Analytics Patterns for Your Digital Enterprise
[WSO2Con EU 2017] Streaming Analytics Patterns for Your Digital Enterprise[WSO2Con EU 2017] Streaming Analytics Patterns for Your Digital Enterprise
[WSO2Con EU 2017] Streaming Analytics Patterns for Your Digital Enterprise
 
Data Warehousing with Python
Data Warehousing with PythonData Warehousing with Python
Data Warehousing with Python
 
Cassandra Data Modeling
Cassandra Data ModelingCassandra Data Modeling
Cassandra Data Modeling
 
Cassandra SF 2015 - Repeatable, Scalable, Reliable, Observable Cassandra
Cassandra SF 2015 - Repeatable, Scalable, Reliable, Observable CassandraCassandra SF 2015 - Repeatable, Scalable, Reliable, Observable Cassandra
Cassandra SF 2015 - Repeatable, Scalable, Reliable, Observable Cassandra
 
The Last Pickle: Repeatable, Scalable, Reliable, Observable: Cassandra
The Last Pickle: Repeatable, Scalable, Reliable, Observable: CassandraThe Last Pickle: Repeatable, Scalable, Reliable, Observable: Cassandra
The Last Pickle: Repeatable, Scalable, Reliable, Observable: Cassandra
 
Data Exploration with Apache Drill: Day 2
Data Exploration with Apache Drill: Day 2Data Exploration with Apache Drill: Day 2
Data Exploration with Apache Drill: Day 2
 
Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...
Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...
Jonathan Ellis "Apache Cassandra 2.0 and 2.1". Выступление на Cassandra conf ...
 
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQL
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQLBringing SQL to NoSQL: Rich, Declarative Query for NoSQL
Bringing SQL to NoSQL: Rich, Declarative Query for NoSQL
 
Offline First Apps With Couchbase Mobile and Xamarin
Offline First Apps With Couchbase Mobile and XamarinOffline First Apps With Couchbase Mobile and Xamarin
Offline First Apps With Couchbase Mobile and Xamarin
 
Data day texas: Cassandra and the Cloud
Data day texas: Cassandra and the CloudData day texas: Cassandra and the Cloud
Data day texas: Cassandra and the Cloud
 
Prog1 chap1 and chap 2
Prog1 chap1 and chap 2Prog1 chap1 and chap 2
Prog1 chap1 and chap 2
 
My Portfolio
My PortfolioMy Portfolio
My Portfolio
 
My Portfolio
My PortfolioMy Portfolio
My Portfolio
 
Marcus Matthews
Marcus MatthewsMarcus Matthews
Marcus Matthews
 
Building a Messaging Application with Redis Streams (DAT353) - AWS re:Invent ...
Building a Messaging Application with Redis Streams (DAT353) - AWS re:Invent ...Building a Messaging Application with Redis Streams (DAT353) - AWS re:Invent ...
Building a Messaging Application with Redis Streams (DAT353) - AWS re:Invent ...
 

More from DataStax

Is Your Enterprise Ready to Shine This Holiday Season?
Is Your Enterprise Ready to Shine This Holiday Season?Is Your Enterprise Ready to Shine This Holiday Season?
Is Your Enterprise Ready to Shine This Holiday Season?DataStax
 
Designing Fault-Tolerant Applications with DataStax Enterprise and Apache Cas...
Designing Fault-Tolerant Applications with DataStax Enterprise and Apache Cas...Designing Fault-Tolerant Applications with DataStax Enterprise and Apache Cas...
Designing Fault-Tolerant Applications with DataStax Enterprise and Apache Cas...DataStax
 
Running DataStax Enterprise in VMware Cloud and Hybrid Environments
Running DataStax Enterprise in VMware Cloud and Hybrid EnvironmentsRunning DataStax Enterprise in VMware Cloud and Hybrid Environments
Running DataStax Enterprise in VMware Cloud and Hybrid EnvironmentsDataStax
 
Best Practices for Getting to Production with DataStax Enterprise Graph
Best Practices for Getting to Production with DataStax Enterprise GraphBest Practices for Getting to Production with DataStax Enterprise Graph
Best Practices for Getting to Production with DataStax Enterprise GraphDataStax
 
Webinar | Data Management for Hybrid and Multi-Cloud: A Four-Step Journey
Webinar | Data Management for Hybrid and Multi-Cloud: A Four-Step JourneyWebinar | Data Management for Hybrid and Multi-Cloud: A Four-Step Journey
Webinar | Data Management for Hybrid and Multi-Cloud: A Four-Step JourneyDataStax
 
Webinar | How to Understand Apache Cassandra™ Performance Through Read/Writ...
Webinar  |  How to Understand Apache Cassandra™ Performance Through Read/Writ...Webinar  |  How to Understand Apache Cassandra™ Performance Through Read/Writ...
Webinar | How to Understand Apache Cassandra™ Performance Through Read/Writ...DataStax
 
Webinar | Better Together: Apache Cassandra and Apache Kafka
Webinar  |  Better Together: Apache Cassandra and Apache KafkaWebinar  |  Better Together: Apache Cassandra and Apache Kafka
Webinar | Better Together: Apache Cassandra and Apache KafkaDataStax
 
Top 10 Best Practices for Apache Cassandra and DataStax Enterprise
Top 10 Best Practices for Apache Cassandra and DataStax EnterpriseTop 10 Best Practices for Apache Cassandra and DataStax Enterprise
Top 10 Best Practices for Apache Cassandra and DataStax EnterpriseDataStax
 
Introduction to Apache Cassandra™ + What’s New in 4.0
Introduction to Apache Cassandra™ + What’s New in 4.0Introduction to Apache Cassandra™ + What’s New in 4.0
Introduction to Apache Cassandra™ + What’s New in 4.0DataStax
 
Webinar: How Active Everywhere Database Architecture Accelerates Hybrid Cloud...
Webinar: How Active Everywhere Database Architecture Accelerates Hybrid Cloud...Webinar: How Active Everywhere Database Architecture Accelerates Hybrid Cloud...
Webinar: How Active Everywhere Database Architecture Accelerates Hybrid Cloud...DataStax
 
Webinar | Aligning GDPR Requirements with Today's Hybrid Cloud Realities
Webinar  |  Aligning GDPR Requirements with Today's Hybrid Cloud RealitiesWebinar  |  Aligning GDPR Requirements with Today's Hybrid Cloud Realities
Webinar | Aligning GDPR Requirements with Today's Hybrid Cloud RealitiesDataStax
 
Designing a Distributed Cloud Database for Dummies
Designing a Distributed Cloud Database for DummiesDesigning a Distributed Cloud Database for Dummies
Designing a Distributed Cloud Database for DummiesDataStax
 
How to Power Innovation with Geo-Distributed Data Management in Hybrid Cloud
How to Power Innovation with Geo-Distributed Data Management in Hybrid CloudHow to Power Innovation with Geo-Distributed Data Management in Hybrid Cloud
How to Power Innovation with Geo-Distributed Data Management in Hybrid CloudDataStax
 
How to Evaluate Cloud Databases for eCommerce
How to Evaluate Cloud Databases for eCommerceHow to Evaluate Cloud Databases for eCommerce
How to Evaluate Cloud Databases for eCommerceDataStax
 
Webinar: DataStax Enterprise 6: 10 Ways to Multiply the Power of Apache Cassa...
Webinar: DataStax Enterprise 6: 10 Ways to Multiply the Power of Apache Cassa...Webinar: DataStax Enterprise 6: 10 Ways to Multiply the Power of Apache Cassa...
Webinar: DataStax Enterprise 6: 10 Ways to Multiply the Power of Apache Cassa...DataStax
 
Webinar: DataStax and Microsoft Azure: Empowering the Right-Now Enterprise wi...
Webinar: DataStax and Microsoft Azure: Empowering the Right-Now Enterprise wi...Webinar: DataStax and Microsoft Azure: Empowering the Right-Now Enterprise wi...
Webinar: DataStax and Microsoft Azure: Empowering the Right-Now Enterprise wi...DataStax
 
Webinar - Real-Time Customer Experience for the Right-Now Enterprise featurin...
Webinar - Real-Time Customer Experience for the Right-Now Enterprise featurin...Webinar - Real-Time Customer Experience for the Right-Now Enterprise featurin...
Webinar - Real-Time Customer Experience for the Right-Now Enterprise featurin...DataStax
 
Datastax - The Architect's guide to customer experience (CX)
Datastax - The Architect's guide to customer experience (CX)Datastax - The Architect's guide to customer experience (CX)
Datastax - The Architect's guide to customer experience (CX)DataStax
 
An Operational Data Layer is Critical for Transformative Banking Applications
An Operational Data Layer is Critical for Transformative Banking ApplicationsAn Operational Data Layer is Critical for Transformative Banking Applications
An Operational Data Layer is Critical for Transformative Banking ApplicationsDataStax
 
Becoming a Customer-Centric Enterprise Via Real-Time Data and Design Thinking
Becoming a Customer-Centric Enterprise Via Real-Time Data and Design ThinkingBecoming a Customer-Centric Enterprise Via Real-Time Data and Design Thinking
Becoming a Customer-Centric Enterprise Via Real-Time Data and Design ThinkingDataStax
 

More from DataStax (20)

Is Your Enterprise Ready to Shine This Holiday Season?
Is Your Enterprise Ready to Shine This Holiday Season?Is Your Enterprise Ready to Shine This Holiday Season?
Is Your Enterprise Ready to Shine This Holiday Season?
 
Designing Fault-Tolerant Applications with DataStax Enterprise and Apache Cas...
Designing Fault-Tolerant Applications with DataStax Enterprise and Apache Cas...Designing Fault-Tolerant Applications with DataStax Enterprise and Apache Cas...
Designing Fault-Tolerant Applications with DataStax Enterprise and Apache Cas...
 
Running DataStax Enterprise in VMware Cloud and Hybrid Environments
Running DataStax Enterprise in VMware Cloud and Hybrid EnvironmentsRunning DataStax Enterprise in VMware Cloud and Hybrid Environments
Running DataStax Enterprise in VMware Cloud and Hybrid Environments
 
Best Practices for Getting to Production with DataStax Enterprise Graph
Best Practices for Getting to Production with DataStax Enterprise GraphBest Practices for Getting to Production with DataStax Enterprise Graph
Best Practices for Getting to Production with DataStax Enterprise Graph
 
Webinar | Data Management for Hybrid and Multi-Cloud: A Four-Step Journey
Webinar | Data Management for Hybrid and Multi-Cloud: A Four-Step JourneyWebinar | Data Management for Hybrid and Multi-Cloud: A Four-Step Journey
Webinar | Data Management for Hybrid and Multi-Cloud: A Four-Step Journey
 
Webinar | How to Understand Apache Cassandra™ Performance Through Read/Writ...
Webinar  |  How to Understand Apache Cassandra™ Performance Through Read/Writ...Webinar  |  How to Understand Apache Cassandra™ Performance Through Read/Writ...
Webinar | How to Understand Apache Cassandra™ Performance Through Read/Writ...
 
Webinar | Better Together: Apache Cassandra and Apache Kafka
Webinar  |  Better Together: Apache Cassandra and Apache KafkaWebinar  |  Better Together: Apache Cassandra and Apache Kafka
Webinar | Better Together: Apache Cassandra and Apache Kafka
 
Top 10 Best Practices for Apache Cassandra and DataStax Enterprise
Top 10 Best Practices for Apache Cassandra and DataStax EnterpriseTop 10 Best Practices for Apache Cassandra and DataStax Enterprise
Top 10 Best Practices for Apache Cassandra and DataStax Enterprise
 
Introduction to Apache Cassandra™ + What’s New in 4.0
Introduction to Apache Cassandra™ + What’s New in 4.0Introduction to Apache Cassandra™ + What’s New in 4.0
Introduction to Apache Cassandra™ + What’s New in 4.0
 
Webinar: How Active Everywhere Database Architecture Accelerates Hybrid Cloud...
Webinar: How Active Everywhere Database Architecture Accelerates Hybrid Cloud...Webinar: How Active Everywhere Database Architecture Accelerates Hybrid Cloud...
Webinar: How Active Everywhere Database Architecture Accelerates Hybrid Cloud...
 
Webinar | Aligning GDPR Requirements with Today's Hybrid Cloud Realities
Webinar  |  Aligning GDPR Requirements with Today's Hybrid Cloud RealitiesWebinar  |  Aligning GDPR Requirements with Today's Hybrid Cloud Realities
Webinar | Aligning GDPR Requirements with Today's Hybrid Cloud Realities
 
Designing a Distributed Cloud Database for Dummies
Designing a Distributed Cloud Database for DummiesDesigning a Distributed Cloud Database for Dummies
Designing a Distributed Cloud Database for Dummies
 
How to Power Innovation with Geo-Distributed Data Management in Hybrid Cloud
How to Power Innovation with Geo-Distributed Data Management in Hybrid CloudHow to Power Innovation with Geo-Distributed Data Management in Hybrid Cloud
How to Power Innovation with Geo-Distributed Data Management in Hybrid Cloud
 
How to Evaluate Cloud Databases for eCommerce
How to Evaluate Cloud Databases for eCommerceHow to Evaluate Cloud Databases for eCommerce
How to Evaluate Cloud Databases for eCommerce
 
Webinar: DataStax Enterprise 6: 10 Ways to Multiply the Power of Apache Cassa...
Webinar: DataStax Enterprise 6: 10 Ways to Multiply the Power of Apache Cassa...Webinar: DataStax Enterprise 6: 10 Ways to Multiply the Power of Apache Cassa...
Webinar: DataStax Enterprise 6: 10 Ways to Multiply the Power of Apache Cassa...
 
Webinar: DataStax and Microsoft Azure: Empowering the Right-Now Enterprise wi...
Webinar: DataStax and Microsoft Azure: Empowering the Right-Now Enterprise wi...Webinar: DataStax and Microsoft Azure: Empowering the Right-Now Enterprise wi...
Webinar: DataStax and Microsoft Azure: Empowering the Right-Now Enterprise wi...
 
Webinar - Real-Time Customer Experience for the Right-Now Enterprise featurin...
Webinar - Real-Time Customer Experience for the Right-Now Enterprise featurin...Webinar - Real-Time Customer Experience for the Right-Now Enterprise featurin...
Webinar - Real-Time Customer Experience for the Right-Now Enterprise featurin...
 
Datastax - The Architect's guide to customer experience (CX)
Datastax - The Architect's guide to customer experience (CX)Datastax - The Architect's guide to customer experience (CX)
Datastax - The Architect's guide to customer experience (CX)
 
An Operational Data Layer is Critical for Transformative Banking Applications
An Operational Data Layer is Critical for Transformative Banking ApplicationsAn Operational Data Layer is Critical for Transformative Banking Applications
An Operational Data Layer is Critical for Transformative Banking Applications
 
Becoming a Customer-Centric Enterprise Via Real-Time Data and Design Thinking
Becoming a Customer-Centric Enterprise Via Real-Time Data and Design ThinkingBecoming a Customer-Centric Enterprise Via Real-Time Data and Design Thinking
Becoming a Customer-Centric Enterprise Via Real-Time Data and Design Thinking
 

Recently uploaded

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
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
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Recently uploaded (20)

E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
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...
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 

Data Modeling Basics for the Cloud

  • 1. Data Modeling Basics for the Cloud Robert Stupp Solutions Architect @ DataStax – Committer to Apache Cassandra
  • 2. Data Modeling for the Cloud DSE is the database for the cloud 1.Always On 2.Instantaneously Responsive 3.Numerous Endpoints 4.Geographically Distributed 5.Predictively Scalable © 2016 DataStax, All Rights Reserved. 2 CC BY 2.0, by Blake Patterson on Flickr 100000 transactions per second 200000 transactions per second
  • 3. Application Replication Factor 3 Eventual Consistency © DataStax, All Rights Reserved. 3 … is not hopefully consistent Some data Some dataSome data Consistency Level: ONE
  • 4. Application UP Replication Factor 3 Quorum Consistency © DataStax, All Rights Reserved. 4 Some data Some dataSome data Consistency Level: QUORUM DOWN
  • 5. DSE / Cassandra NodeApplication Write Path © DataStax, All Rights Reserved. 5 Memtable Commit Log Files SSTable Some data Some data SSTable SSTable SSTable SSTable SSTable Some data Some data Some data Some data Some data
  • 6. Compaction © DataStax, All Rights Reserved. 6 SSTable SSTable SSTable SSTable SSTable
  • 7. Compaction Strategies • Size Tiered • Leveled • Date Tiered © DataStax, All Rights Reserved. 7
  • 8. Data Organization in DSE / Cassandra Partition Device ID Timestamp Temperature Humidity 01-32483-17383 2016-04-19 14:00 22 70 01-32483-17383 2016-04-19 15:00 21.5 65 01-32483-17383 2016-04-19 16:00 23.0 70 Partition Key Clustering Key Columns Primary Key Device ID Timestamp 01-32483-17383 2016-04-19 14:00 01-32483-17383 2016-04-19 15:00 01-32483-17383 2016-04-19 16:00 Device ID 01-32483-17383 01-32483-17383 01-32483-17383
  • 9. Data Modeling 101 1. Understand your data Conceptual data modeling 2. Collect queries Understand your application 3. Model according to queries Logical data modeling 4. Apply optimizations Physical data modeling © DataStax, All Rights Reserved. 9
  • 10. Query driven modeling 1. Collect your use cases 2. Extract queries 3. Model your tables © DataStax, All Rights Reserved. 10
  • 11. Queries, yes SELECT timestamp, temperature, humidity FROM sensor_data WHERE sensor_id = ’01-32483-17383’ © 2016 DataStax, All Rights Reserved. 11 Always include the Partition Key
  • 12. Some standard use-cases • Customer registration • Customer login • Delivery addresses © DataStax, All Rights Reserved. 12
  • 13. Customer registration 1. Check if customer exists query by username © 2016 DataStax, All Rights Reserved. 13 CREATE TABLE customers ( username text PRIMARY KEY, password_hash text, first_name text, last_name text, email text ); SELECT username FROM customers WHERE username = ?
  • 14. Customer login by username 1. Check if user exists and password matches query by username © 2016 DataStax, All Rights Reserved. 14 CREATE TABLE customers ( username text PRIMARY KEY, password_hash text, first_name text, last_name text, email text ); SELECT password_hash FROM customers WHERE username = ?
  • 15. Customer login by email 1. Check if user exists and password matches query by email © 2016 DataStax, All Rights Reserved. 15 CREATE TABLE customers ( username text PRIMARY KEY, password_hash text, first_name text, last_name text, email text ); SELECT password_hash FROM customers WHERE email = ? InvalidRequest: code=2200 [Invalid query] message="Cannot execute this query as it might involve data filtering and thus may have unpredictable performance.
  • 16. Customer login by email 1. Check if user exists and password matches query by email © 2016 DataStax, All Rights Reserved. 16 CREATE TABLE customers_by_email ( email text PRIMARY KEY, password_hash text, first_name text, last_name text, username text ); SELECT password_hash FROM customers_by_email WHERE email = ? This works
  • 17. Modeling delivery addresses © 2016 DataStax, All Rights Reserved. 17 CREATE TABLE customer_addresses ( username text, address_type text, street text, zip text, city text, PRIMARY KEY ( username, address_type ) ); SELECT street,zip,city FROM customer_addresses WHERE username = ?; SELECT street,zip,city FROM customer_addresses WHERE username = ? AND address_type = ?;
  • 18. Modeling delivery addresses 1. Print delivery address label query by user by user name query delivery address by user and type © 2016 DataStax, All Rights Reserved. 18 SELECT first_name, last_name FROM customers WHERE username = ?; SELECT street,zip,city FROM customer_addresses WHERE username = ? AND address_type = ?; This works, But it’s not great.
  • 19. Modeling delivery addresses © 2016 DataStax, All Rights Reserved. 19 CREATE TYPE delivery_address ( street text, zip text, city text); Just 1 read CREATE TABLE customers ( username text PRIMARY KEY, password_hash text, first_name text, last_name text, email text, delivery_addrs map < text, frozen < delivery_address > > ); SELECT first_name, last_name, delivery_addrs FROM customers WHERE username = ?;
  • 20. Customer registration – the problem SELECT username FROM customers WHERE username = ? (no results) © 2016 DataStax, All Rights Reserved. 20 SELECT username FROM customers WHERE username = ? (no results) INSERT INTO customers (username, first_name, last_name) VALUES (‘snazy’, ‘Robert’, ‘Stupp’) (success) INSERT INTO customers (username, first_name, last_name) VALUES (‘snazy’, ‘Not’, ‘Robert’) (success) This one wins This one gets overwritten
  • 21. Customer registration – the solution SELECT username FROM customers WHERE username = ? (no results) © 2016 DataStax, All Rights Reserved. 21 SELECT username FROM customers WHERE username = ? (no results) INSERT INTO customers … IF NOT EXISTS  [applied] = true INSERT INTO customers … IF NOT EXISTS  [applied] = false Sorry, dude OK
  • 22. Customer registration – the even better solution © 2016 DataStax, All Rights Reserved. 22 INSERT INTO customers … IF NOT EXISTS  [applied] = true INSERT INTO customers … IF NOT EXISTS  [applied] = false Sorry, dude OK
  • 23. Customer login by email – w/ DSE 5.0 1. Check if user exists and password matches query by email © 2016 DataStax, All Rights Reserved. 23 CREATE TABLE customers ( username text PRIMARY KEY, password_hash text, first_name text, last_name text, email text ); CREATE MATERIALIZED VIEW customers_by_email AS SELECT email, username, first_name, last_name, password_hash FROM customers WHERE email IS NOT NULL PRIMARY KEY ( email, username ); SELECT password_hash FROM customers_by_email WHERE email = ?;
  • 24. May the node be with you! Robert Stupp Solutions Architect @ DataStax robert.stupp@datastax.com Committer to Apache Cassandra @snazy

Editor's Notes

  1. Frankly, "the cloud" started with... the iPhone Think the "cloud way" Nothing worse than customers not reaching your service –> lose money Users’ apps are always on – so should your database Answers must come really quick - https://www.nngroup.com/articles/website-response-times/ 0.1 seconds gives the feeling of instantaneous response 1 second keeps the user's flow of thought seamless 10 seconds keeps the user's attention Amount of different devices Netflix example Network latency – bring the data to the users - http://www.verizonenterprise.com/about/network/latency/ 45ms within US 30ms within Europe 90ms London – New York 160ms Trans Pacific 250ms Europe – Asia CANNOT BEAT THAT – IT’S BARE PHYSICS Add more nodes for more transactions , more data
  2. EC means: There is a time gap between the first write until the data is available on all replicas MENTION: Replication to other data center
  3. QUORUM means MAJORITY MAJORITY of 3 is 2 AFTER: Mention LOCAL_ONE, LOCAL_QUORUM, TWO, THREE, ALL, EACH_QUORUM
  4. 1. DSE write path 2. DSE node 3. Memtable 4. Commit Log 5. Application want to write some data 6. ... goes to the memtable 7. ... written to CL (node restart) --------- 8. (hint: SSTables) 9. much data written over time --> memtable grows 10. memtable flushed to SSTable 11. more sstables (ANIMATED!)
  5. Take some similar sized SSTables and compact them to one, bigger one That’s STCS
  6. STCS – size tiered compaction strategy Default Multiple, similar sized SSTables compacted to one LCS – leveled compaction strategy Many writes to same partitions Works fine with SSDs DTCS – date tiered compaction strategy Time series data TTL’d data never overwritten Old SSTables can just be dropped
  7. MENTION: Keyspace, Table Partition Key: determines the replica nodes Clustering Key: identifies the CQL row in the partition MENTION: Size restrictions
  8. 1) “Logical” means: Entities Relations between entities 2) When you know what you ask for, you know: your queries the workflow of your application the data you really need 3) Combine conceptual model and queries Declare tables and their keys Add additional views to tables 4) Depending on the workload Add bucketing (split partitions logically) Choose the “right” compaction strategy Consider TTLs
  9. Guide through some standard use cases
  10. Partition key not included --> does not know the nodes to ask
  11. Needs two writes: - to "customers" table - to "customers_by_email" table
  12. ( THE NAIVE, RELATIONAL WAY ) - query all addresses - query address by user and type Access by partition key --> fine
  13. That’s relational That’s client side join
  14. EXPLAIN : UDTs EXPLAIN : collections MENTION : frozen Just ONE read - not TWO reads as before
  15. Registration pre-check - THE NAIVE WAY CLASSICAL RACE CONDITION
  16. LWT MENTION: Expensive Paxos
  17. Pre-checks w/ read not necessary
  18. RECALL: the customers table RECALL: the customers_by_email table