SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved.
Moving from a Relational Model
to NoSQL
Leveraging a Flexible JSON Schema
Matthew Groves – Product Marketing Manager
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 2
Objectives
• Give an overview of migrating an existing relational database to
NoSQL (Couchbase)
• Give you a sense for some of the technical issues / differences
• We will not get into deep details (i.e. dialect details, different ways
to write a query, how indexes are handled, etc)
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved.
1
2
3
4
5
Quick Intro to NoSQL
Quick Intro to Couchbase
Migration Options
Optimizing
Demo
AGENDA
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved.
Quick Intro to NoSQL
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 5
Consider + Purchase Operate + Service
Build + Fulfill
Massively
Interactive
Enterprises
e-Commerce Supply Chain Internet of Things
CUSTOMER EMPLOYEE MACHINE
Drivers of NoSQL
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 6
Application Requirements Are Dramatically Different
NoSQL
Transactions
Interactions
Transactional Analytical
SCALABLE
SECURE
FLEXIBILE
DISTRIBUTED
LOW TCO
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 7
Application Requirements Are Dramatically Different
Oracle
1K:1
Consumer
1:1
1M:1 IoT
Legacy Databases Insufficient
Relational divide
Couchbase
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 8
What is JSON?
JavaScript Object Notation
• Lightweight data interchange format
• Based on a subset of JavaScript
• Uses a hierarchical key/value syntax
Data Types
• Object: Unordered collection of key/value pairs
• Array: ordered list of 0 or more values
• Number: Integer or Float
• String: Unicode in double quotes
• Boolean: true or false
• Null: Empty Value <"">
{
"JSON": "JavaScript Object Notation",
"Desc": [
"Lightweight data interchange format",
"Based on a subset of JavaScript",
"Uses a hierarchical key/value syntax"
],
"DataTypes": {
"Object": {
"Desc": "Unordered collection of key/value pairs",
"Ex01": {
"key": "value"
}
},
"Array": {
"Desc": "Ordered list of 0 or more values",
"Ex01": [
"apples", 12, true
]
},
"Number": {
"Desc": "Integer or Float",
"Ex01": 12,
"Ex02": 1234.56789
},
"String": {
"Desc": "Unicode in double quotes",
"Ex01": "Hello World!"
},
"Boolean": {
"Desc": "true or false",
"Ex01": true,
"Ex02": false
},
"Null": {
"Desc": "Empty Value",
"Ex01": ""
}
}
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 9
Why JSON for Data?
JSON is easy to read and write
JSON is ubiquitous
• ~ 170 JSON parsing libs
• ~ 60 different languages/frameworks
• json.org – resource lists
• Standardizing in RFC 8259
JSON objects make great "documents"
• Object => "document" / "subdocument"
• Internal key/value pairs => "attributes"
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 10
{
'_type': 'user',
'age': 23,
'name': 'Mint, Mikey',
'admin': false
}
Tables vs document sets (simple)
USER
user_id age name admin
blue123-4 42 Blue, Betty true
orange456-7 31 Orange,
Oscar
false
{
'age': 42,
'name': 'Blue, Betty',
'admin': true
}
id: blue123-4
Relational DB
Tables
Rows
{
'_type': 'product',
'qty;: 1966,
'name': 'Blarg Nozzle',
'stock': true
}
{
'qty;: 1966,
'name': 'Blarg Nozzle',
'stock': true
}
id: abc123
PRODUCT
prod_id qty name stock
abc123 1966 Blarg Nozzle true
xyz456 5280 Hepto Shaft false
NoSQL Bucket
Collections
Documents
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 11
Schema “enforcement” vs schema agility
USER
user_id age name admin
blue123-4 42 Blue, Betty true
orange456-7 31 Orange,
Oscar
false
Relational
{
'_type': 'product',
'qty;: 1966,
'name': 'Blarg Nozzle',
'stock': true
}
{
'type': 'product',
'qty;: 1966,
'name': 'Blarg Nozzle',
'stock': true
}
id:
product::
abc123
PRODUCT
prod_id qty name stock
abc123 1966 Blarg Nozzle true
xyz456 5280 Hepto Shaft false
def321 ??? Foo Modulator false
{
'qty': 0,
'name': 'Foo Modulator',
'stock': false,
'restock': true
}
id: def321
restock = true ?
{
'_type': 'user',
'age': 23,
'name': 'Mint, Mikey',
'admin': false
}
{
'age': 42,
'name': 'Blue, Betty',
'admin': true
}
id: blue123-4
NoSQL
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 12
Timestamp format choices
• ISO 8601
• Time component array
• Epoch/Unix
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved.
Quick Intro to Couchbase
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 14
Couchbase | NoEQUAL
Agility/versatility
Performance
Easy to manage
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 15
What is Couchbase?
• NoSQL Database that stores JSON documents
• Includes a Key-Value Store for fast lookups
• Supports SQL and ACID transactions
• Includes Indexing
• Includes Full Text Search capability
• Memory-First, shared-nothing architecture
• Asynchronous architecture
• Masterless
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 16
PRIVATE
CLOUD
Cloud-Native: Deploy On Premise or In Any Cloud
OPTIMIZED FOR FLEXIBILITY,
CUSTOMIZABILITY AND PERFORMANCE
OPTIMIZED FOR SIMPLICITY,
PERFORMANCE AND EASE OF USE
PUBLIC
CLOUD
FULLY MANAGED
DBaaS
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 17
COUCHBASE LITE SYNC GATEWAY COUCHBASE SERVER
Lightweight embedded NoSQL
database with full CRUD and
query functionality.
Secure web gateway with
synchronization, data access,
and data integration APIs for
accessing, integrating, and
synchronizing data
over the web.
Highly scalable, highly available,
high performance NoSQL
database server.
Securely Manage & Sync Data from any Cloud to the Edge
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 18
Cross Data Center Replication (XDCR)
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved.
Migration Options
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 20
Scenario
Existing application architected on an
RDBMS, it works well, but there are a lot of
changes coming and new expected
demands in terms of scalability.
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 21
Issues to consider
• Risk tolerance
• Skills / expertise
• Migration cost
• Performance
• Scale
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 22
How do you migrate?
• 1 Rewrite: No migration, write the whole thing over
• 2 Redesign Schema: Keep your business logic, rewrite your data layer and
schema, totally redesign your schema on NoSQL best practices
• 3 Refactor First: Keep everything but refactor your data logic and RDBMS
schema into a best practices NoSQL schema
• 4 Optimize Later: Host your schema with as few changes as possible, get the
application running on the new technology, refactor/optimize the schema as
necessary for performance
• 5 Just Host It: Host your schema with as few changes as possible.
Risk
Effort
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved.
Migrating Without
Denormalizing
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 24
Conventional relational data
Normalize – model data as minimally
redundant tables, and rely on in-memory
JOINs
✔Storage minimized
✔Schema enforced
✔Ad hoc queries well supported by SQL
✔Record-centric, 2D data paradigm
CustomerID Name Address Email
XYZ234 Acme 9 W. 2nd al@acme
ProductID Name Description
774477 Widget Fit for all uses.
115588 Gadget Just what I need.
PayTypeID Name
001 PayPal
OrderID Customer PayType
123 XYZ234 001
OrderID ProductID Qty
123 774477 2
123 115588 3
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 25
Collection
Relational Database vs Bucket (simple)
USER
user_id age name admin
blue123-4 42 Blue, Betty true
orange456-7 31 Orange,
Oscar
false
Relational
table
{
'type': 'user',
'age': 31,
'name': 'Orange, Oscar',
'admin’: false
}
id:
user::orang
e456-7
{
'age': 42,
'name': 'Blue, Betty',
'admin': true
}
id: blue123-4
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 26
{
'type': 'user',
'age': 31,
'name': 'Orange, Oscar',
'admin’: false
}
id:
user::orang
e456-7
Collection
Rows/records vs documents (simple)
Copyright © 2019 Couchbase,
Inc.
USER
user_id age name admin
blue123-4 42 Blue, Betty true
orange456-7 31 Orange,
Oscar
false
Relational
table
{
'age': 42,
'name': 'Blue, Betty',
'admin': true
}
id: blue123-4
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 27
Collection
Columns vs attributes/parameters/fields
USER
user_id age name admin
blue123-4 42 Blue, Betty true
orange456-7 31 Orange,
Oscar
false
Relational
table
{
'age': 31,
'name': 'Orange, Oscar',
'admin’: false
}
id: orange456-7
{
'age': 42,
'name': 'Blue, Betty',
'admin': true
}
id: blue123-4
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 28
Document data
{
"date" : "2021-01-06",
"orderNum" : "ABC123",
"customer": {
"name": "Acme",
"address": "9 W. 2nd",
"email": "al@acme"
},
"items": [{
"qty": 2,
"name": "Widget",
"description": "Fit for all uses."
},{
"qty": 3,
"name": "Gadget",
"description": "Just what I need."
}]
}
order::123
ORDER
id date orderNum
123 2021-01-06 ABC123
ITEM
order_id qty name description
123 2 Widget Fit for all…
123 3 Gadget Just what I ...
CUSTOMER
order_id name address email
123 Acme 9 W. 2nd al@acme
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 29
Document data
De-normalize – optimize for planned application usage
✔Data can directly align with object model
✔Reduced JOIN and Tx pressure
✔Simpler data-layer code
✔Low latency CRUD and streaming APIs
✔Indexing for alternate access patterns
✔Queries well supported by SQL++ (N1QL)
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 30
The New Query
SELECT l.city
FROM Travel.dbo.LANDMARKS l
WHERE l.city IN
(SELECT city
FROM Travel.dbo.AIRPORTS)
RDBMS Queries
SELECT l.city
FROM Travel._ default.landmark l
WHEREl.city IN
(SELECT VALUE city
FROM Travel._ default.airport )
N1QL Queries
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 31
Query Differences
• Table = collection
• ANSI JOINs and other SQL conventions
are supported.
• There are other “N1QLisms” that are
mainly to do with JSON like “unnest” or
“nest” dealing with embedded
documents.
• Indexes are very important in
Couchbase
SELECT player.name,
player.level,
stats.loadtime,
SUM(CASE WHEN hist.result =
"won" THEN 1 ELSE 0 END) AS wins
FROM jungleville_stats AS stats
UNNEST stats.`pvp - hist` AS hist
JOIN jungleville AS player ON KEYS
stats.uuid
GROUP BY player, stats
ORDER BY wins DESC, player.level
DESC
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 32
Indexes
• meta(bucket) allows you
to refer to the field
names
• GSI = Global Secondary
Index
CREATE INDEX person_role on
profiles(
person_role_name
)
WHERE
meta(profiles).type="person"
USING GSI
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 33
Keys to success
• NoSQL Database feature support (SQL, ACID, Joins)
• Understanding
• Buckets
• Scopes
• Collections
• SQL Dialect transitions
• Optimize Later
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved.
Optimizing
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 35
Key considerations
• Joining and transacting is costly (especially in a distributed
architecture) and doesn’t scale as well horizontally.
• Your well-designed application code is a guide. “Person” contains
“Addresses” but looks up “Orders”
• Think in terms of Entities. In the scope of your application does this
have a “lifecycle” outside of the thing that always references it.
• Can you reduce the number of explicit transactions required?
• Can you reduce the number of joins?
• Have you met your performance/scale requirement
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 36
Key considerations
JOINs / ACID App code as
a guide
Entities
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 37
Reduce Joins/Transactions
{
'acct_no': 'ABC1',
'balances': {
'savings': 100,
'checking': 200
}
}
UPDATE Accounts
SET balances.savings = 100
AND balances.checking = 200
WHERE acct_no = "ABC1"
AND type = "account";
acct_no balance
ABC1 100
UPDATE savings
SET balance = 100
WHERE acct_no = "ABC1";
savings
acct_no balance
ABC1 200
UPDATE checking
SET balance = 200
WHERE acct_no = "ABC1";
checking
N1QL: Atomic document
update
SQL: ACID transaction
START TRANSACTION
COMMIT
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 38
Analyze your logical model
✔Order embeds Items, external Product (1:n) and Paytype (1:1) docs
Customer Order
1:n
Paytype
1:1
Items
1:n
Product
1:1
Name
Name
Quantity Name
Description
Price
Is this your object?
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 39
✔Order embeds Items, external Product (1:n) and Paytype (1:1) docs
Customer Order
1:n
Paytype
1:1
Items
1:n
Product
1:1
Name
Name
Quantity Name
Description
Price
Is this your object?
Embedding
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 40
Analyze your logical model
✔Order embeds Paytype and refs Items which embed Product
Customer Order
1:n
Paytype
1:1
Items
1:n
Product
1:1
Name
Name
Quantity Name
Description
Price
Are these your
objects?
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 41
Embedding + Referring
✔Order embeds Paytype and refs Items which embed Product
Customer Order
1:n
Paytype
1:1
Items
1:n
Product
1:1
Name
Name
Quantity Name
Description
Price
Are these your
objects?
Customer
Paytype
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 42
Objects vs. object arrays
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 43
Conclusions
• Migrate first, optimize later (reduces risk, increases performance/scale)
• Joins / Multi-document transactions are more costly in a distributed
architecture
• Expect a 1-1 migration to be slower, require more hardware
• Embed documents as an optimization
• SQL Queries can be converted
• ACID transactions are available (but not needed as often when
optimized)
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 44
Data Access: N1QL = SQL for JSON
Create User
Get User
Update User
Delete User
SELECT *
FROM users
WHERE users.lastName = “Johnson”
UPDATE users
SET status = “Platinum”
WHERE users.lastName = “Johnson”
DELETE
FROM users
WHERE users.firstName = “Shane”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
INSERT INTO
VALUES
Users (KEY, VALUE)
(
“user::100”,
{
“firstName”: ”Shane”,
“lastName”: ”Johnson”
}
);
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved.
Couchbase Demo
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved.
https://www.couchbase.com/products/cloud

Weitere ähnliche Inhalte

Was ist angesagt?

Emerging Trends in Data Architecture – What’s the Next Big Thing?
Emerging Trends in Data Architecture – What’s the Next Big Thing?Emerging Trends in Data Architecture – What’s the Next Big Thing?
Emerging Trends in Data Architecture – What’s the Next Big Thing?DATAVERSITY
 
DAS Slides: Emerging Trends in Data Architecture – What’s the Next Big Thing?
DAS Slides: Emerging Trends in Data Architecture – What’s the Next Big Thing?DAS Slides: Emerging Trends in Data Architecture – What’s the Next Big Thing?
DAS Slides: Emerging Trends in Data Architecture – What’s the Next Big Thing?DATAVERSITY
 
Data-Ed Online: Data Architecture Requirements
Data-Ed Online: Data Architecture RequirementsData-Ed Online: Data Architecture Requirements
Data-Ed Online: Data Architecture RequirementsDATAVERSITY
 
Data Strategy Best Practices
Data Strategy Best PracticesData Strategy Best Practices
Data Strategy Best PracticesDATAVERSITY
 
ADV Slides: Data Pipelines in the Enterprise and Comparison
ADV Slides: Data Pipelines in the Enterprise and ComparisonADV Slides: Data Pipelines in the Enterprise and Comparison
ADV Slides: Data Pipelines in the Enterprise and ComparisonDATAVERSITY
 
Five Things to Consider About Data Mesh and Data Governance
Five Things to Consider About Data Mesh and Data GovernanceFive Things to Consider About Data Mesh and Data Governance
Five Things to Consider About Data Mesh and Data GovernanceDATAVERSITY
 
ADV Slides: When and How Data Lakes Fit into a Modern Data Architecture
ADV Slides: When and How Data Lakes Fit into a Modern Data ArchitectureADV Slides: When and How Data Lakes Fit into a Modern Data Architecture
ADV Slides: When and How Data Lakes Fit into a Modern Data ArchitectureDATAVERSITY
 
A Tale of 2 BI Standards: One for Data Warehouses and One for Data Lakes
A Tale of 2 BI Standards: One for Data Warehouses and One for Data LakesA Tale of 2 BI Standards: One for Data Warehouses and One for Data Lakes
A Tale of 2 BI Standards: One for Data Warehouses and One for Data LakesArcadia Data
 
Cloud and Analytics -- 2020 sparksummit
Cloud and Analytics -- 2020 sparksummitCloud and Analytics -- 2020 sparksummit
Cloud and Analytics -- 2020 sparksummitMing Yuan
 
Data Catalog for Better Data Discovery and Governance
Data Catalog for Better Data Discovery and GovernanceData Catalog for Better Data Discovery and Governance
Data Catalog for Better Data Discovery and GovernanceDenodo
 
The value of structured data.
The value of structured data.The value of structured data.
The value of structured data.Ole Gulbrandsen
 
The Importance of DataOps in a Multi-Cloud World
The Importance of DataOps in a Multi-Cloud WorldThe Importance of DataOps in a Multi-Cloud World
The Importance of DataOps in a Multi-Cloud WorldDATAVERSITY
 
ADV Slides: Platforming Your Data for Success – Databases, Hadoop, Managed Ha...
ADV Slides: Platforming Your Data for Success – Databases, Hadoop, Managed Ha...ADV Slides: Platforming Your Data for Success – Databases, Hadoop, Managed Ha...
ADV Slides: Platforming Your Data for Success – Databases, Hadoop, Managed Ha...DATAVERSITY
 
ADV Slides: The Data Needed to Evolve an Enterprise Artificial Intelligence S...
ADV Slides: The Data Needed to Evolve an Enterprise Artificial Intelligence S...ADV Slides: The Data Needed to Evolve an Enterprise Artificial Intelligence S...
ADV Slides: The Data Needed to Evolve an Enterprise Artificial Intelligence S...DATAVERSITY
 
Hadoop 2.0 - Solving the Data Quality Challenge
Hadoop 2.0 - Solving the Data Quality ChallengeHadoop 2.0 - Solving the Data Quality Challenge
Hadoop 2.0 - Solving the Data Quality ChallengeInside Analysis
 
A Tale of 2 BI Standards: One for Data Warehouses and One for Data Lakes
A Tale of 2 BI Standards: One for Data Warehouses and One for Data LakesA Tale of 2 BI Standards: One for Data Warehouses and One for Data Lakes
A Tale of 2 BI Standards: One for Data Warehouses and One for Data LakesArcadia Data
 
RWDG Slides: Glossaries, Dictionaries, and Catalogs Result in Data Governance
RWDG Slides: Glossaries, Dictionaries, and Catalogs Result in Data GovernanceRWDG Slides: Glossaries, Dictionaries, and Catalogs Result in Data Governance
RWDG Slides: Glossaries, Dictionaries, and Catalogs Result in Data GovernanceDATAVERSITY
 
Mastering Customer Data on Apache Spark
Mastering Customer Data on Apache SparkMastering Customer Data on Apache Spark
Mastering Customer Data on Apache SparkCaserta
 
Bringing Strategy to Life: Using an Intelligent Data Platform to Become Data ...
Bringing Strategy to Life: Using an Intelligent Data Platform to Become Data ...Bringing Strategy to Life: Using an Intelligent Data Platform to Become Data ...
Bringing Strategy to Life: Using an Intelligent Data Platform to Become Data ...DLT Solutions
 
Blueprint Series: Banking In The Cloud – Ultra-high Reliability Architectures
Blueprint Series: Banking In The Cloud – Ultra-high Reliability ArchitecturesBlueprint Series: Banking In The Cloud – Ultra-high Reliability Architectures
Blueprint Series: Banking In The Cloud – Ultra-high Reliability ArchitecturesMatt Stubbs
 

Was ist angesagt? (20)

Emerging Trends in Data Architecture – What’s the Next Big Thing?
Emerging Trends in Data Architecture – What’s the Next Big Thing?Emerging Trends in Data Architecture – What’s the Next Big Thing?
Emerging Trends in Data Architecture – What’s the Next Big Thing?
 
DAS Slides: Emerging Trends in Data Architecture – What’s the Next Big Thing?
DAS Slides: Emerging Trends in Data Architecture – What’s the Next Big Thing?DAS Slides: Emerging Trends in Data Architecture – What’s the Next Big Thing?
DAS Slides: Emerging Trends in Data Architecture – What’s the Next Big Thing?
 
Data-Ed Online: Data Architecture Requirements
Data-Ed Online: Data Architecture RequirementsData-Ed Online: Data Architecture Requirements
Data-Ed Online: Data Architecture Requirements
 
Data Strategy Best Practices
Data Strategy Best PracticesData Strategy Best Practices
Data Strategy Best Practices
 
ADV Slides: Data Pipelines in the Enterprise and Comparison
ADV Slides: Data Pipelines in the Enterprise and ComparisonADV Slides: Data Pipelines in the Enterprise and Comparison
ADV Slides: Data Pipelines in the Enterprise and Comparison
 
Five Things to Consider About Data Mesh and Data Governance
Five Things to Consider About Data Mesh and Data GovernanceFive Things to Consider About Data Mesh and Data Governance
Five Things to Consider About Data Mesh and Data Governance
 
ADV Slides: When and How Data Lakes Fit into a Modern Data Architecture
ADV Slides: When and How Data Lakes Fit into a Modern Data ArchitectureADV Slides: When and How Data Lakes Fit into a Modern Data Architecture
ADV Slides: When and How Data Lakes Fit into a Modern Data Architecture
 
A Tale of 2 BI Standards: One for Data Warehouses and One for Data Lakes
A Tale of 2 BI Standards: One for Data Warehouses and One for Data LakesA Tale of 2 BI Standards: One for Data Warehouses and One for Data Lakes
A Tale of 2 BI Standards: One for Data Warehouses and One for Data Lakes
 
Cloud and Analytics -- 2020 sparksummit
Cloud and Analytics -- 2020 sparksummitCloud and Analytics -- 2020 sparksummit
Cloud and Analytics -- 2020 sparksummit
 
Data Catalog for Better Data Discovery and Governance
Data Catalog for Better Data Discovery and GovernanceData Catalog for Better Data Discovery and Governance
Data Catalog for Better Data Discovery and Governance
 
The value of structured data.
The value of structured data.The value of structured data.
The value of structured data.
 
The Importance of DataOps in a Multi-Cloud World
The Importance of DataOps in a Multi-Cloud WorldThe Importance of DataOps in a Multi-Cloud World
The Importance of DataOps in a Multi-Cloud World
 
ADV Slides: Platforming Your Data for Success – Databases, Hadoop, Managed Ha...
ADV Slides: Platforming Your Data for Success – Databases, Hadoop, Managed Ha...ADV Slides: Platforming Your Data for Success – Databases, Hadoop, Managed Ha...
ADV Slides: Platforming Your Data for Success – Databases, Hadoop, Managed Ha...
 
ADV Slides: The Data Needed to Evolve an Enterprise Artificial Intelligence S...
ADV Slides: The Data Needed to Evolve an Enterprise Artificial Intelligence S...ADV Slides: The Data Needed to Evolve an Enterprise Artificial Intelligence S...
ADV Slides: The Data Needed to Evolve an Enterprise Artificial Intelligence S...
 
Hadoop 2.0 - Solving the Data Quality Challenge
Hadoop 2.0 - Solving the Data Quality ChallengeHadoop 2.0 - Solving the Data Quality Challenge
Hadoop 2.0 - Solving the Data Quality Challenge
 
A Tale of 2 BI Standards: One for Data Warehouses and One for Data Lakes
A Tale of 2 BI Standards: One for Data Warehouses and One for Data LakesA Tale of 2 BI Standards: One for Data Warehouses and One for Data Lakes
A Tale of 2 BI Standards: One for Data Warehouses and One for Data Lakes
 
RWDG Slides: Glossaries, Dictionaries, and Catalogs Result in Data Governance
RWDG Slides: Glossaries, Dictionaries, and Catalogs Result in Data GovernanceRWDG Slides: Glossaries, Dictionaries, and Catalogs Result in Data Governance
RWDG Slides: Glossaries, Dictionaries, and Catalogs Result in Data Governance
 
Mastering Customer Data on Apache Spark
Mastering Customer Data on Apache SparkMastering Customer Data on Apache Spark
Mastering Customer Data on Apache Spark
 
Bringing Strategy to Life: Using an Intelligent Data Platform to Become Data ...
Bringing Strategy to Life: Using an Intelligent Data Platform to Become Data ...Bringing Strategy to Life: Using an Intelligent Data Platform to Become Data ...
Bringing Strategy to Life: Using an Intelligent Data Platform to Become Data ...
 
Blueprint Series: Banking In The Cloud – Ultra-high Reliability Architectures
Blueprint Series: Banking In The Cloud – Ultra-high Reliability ArchitecturesBlueprint Series: Banking In The Cloud – Ultra-high Reliability Architectures
Blueprint Series: Banking In The Cloud – Ultra-high Reliability Architectures
 

Ähnlich wie Slides: Moving from a Relational Model to NoSQL

SQL Access to NoSQL
SQL Access to NoSQLSQL Access to NoSQL
SQL Access to NoSQLProgress
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octParadigma Digital
 
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
 
Hadoop & no sql new generation database systems
Hadoop & no sql   new generation database systemsHadoop & no sql   new generation database systems
Hadoop & no sql new generation database systemsramazan fırın
 
ER/Studio and DB PowerStudio Launch Webinar: Big Data, Big Models, Big News!
ER/Studio and DB PowerStudio Launch Webinar: Big Data, Big Models, Big News! ER/Studio and DB PowerStudio Launch Webinar: Big Data, Big Models, Big News!
ER/Studio and DB PowerStudio Launch Webinar: Big Data, Big Models, Big News! Embarcadero Technologies
 
Why microservices architectures drive exceptional customer experiences
Why microservices architectures drive exceptional customer experiencesWhy microservices architectures drive exceptional customer experiences
Why microservices architectures drive exceptional customer experiencesDenis Wilson Souza Rosa
 
Empowering the AWS DynamoDB™ application developer with Alternator
Empowering the AWS DynamoDB™ application developer with AlternatorEmpowering the AWS DynamoDB™ application developer with Alternator
Empowering the AWS DynamoDB™ application developer with AlternatorScyllaDB
 
Full-Stack Development with JavaScript and NoSQL
Full-Stack Development with JavaScript and NoSQLFull-Stack Development with JavaScript and NoSQL
Full-Stack Development with JavaScript and NoSQLAaron Benton
 
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksLessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksDatabricks
 
Couchbase Data Platform | Big Data Demystified
Couchbase Data Platform | Big Data DemystifiedCouchbase Data Platform | Big Data Demystified
Couchbase Data Platform | Big Data DemystifiedOmid Vahdaty
 
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital.AI
 
Big Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQL
Big Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQLBig Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQL
Big Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQLMatt Stubbs
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Frederic Descamps
 
SQL Server 2019 Big Data Cluster
SQL Server 2019 Big Data ClusterSQL Server 2019 Big Data Cluster
SQL Server 2019 Big Data ClusterMaximiliano Accotto
 
PartnerSkillUp_Enable a Streaming CDC Solution
PartnerSkillUp_Enable a Streaming CDC SolutionPartnerSkillUp_Enable a Streaming CDC Solution
PartnerSkillUp_Enable a Streaming CDC SolutionTimothy Spann
 
BI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache CassandraBI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache CassandraVictor Coustenoble
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Codemotion
 
From SQL to NoSQL: Structured Querying for JSON
From SQL to NoSQL: Structured Querying for JSONFrom SQL to NoSQL: Structured Querying for JSON
From SQL to NoSQL: Structured Querying for JSONKeshav Murthy
 

Ähnlich wie Slides: Moving from a Relational Model to NoSQL (20)

SQL Access to NoSQL
SQL Access to NoSQLSQL Access to NoSQL
SQL Access to NoSQL
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4oct
 
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...
 
Hadoop & no sql new generation database systems
Hadoop & no sql   new generation database systemsHadoop & no sql   new generation database systems
Hadoop & no sql new generation database systems
 
Couchbase 101
Couchbase 101 Couchbase 101
Couchbase 101
 
ER/Studio and DB PowerStudio Launch Webinar: Big Data, Big Models, Big News!
ER/Studio and DB PowerStudio Launch Webinar: Big Data, Big Models, Big News! ER/Studio and DB PowerStudio Launch Webinar: Big Data, Big Models, Big News!
ER/Studio and DB PowerStudio Launch Webinar: Big Data, Big Models, Big News!
 
Why microservices architectures drive exceptional customer experiences
Why microservices architectures drive exceptional customer experiencesWhy microservices architectures drive exceptional customer experiences
Why microservices architectures drive exceptional customer experiences
 
Empowering the AWS DynamoDB™ application developer with Alternator
Empowering the AWS DynamoDB™ application developer with AlternatorEmpowering the AWS DynamoDB™ application developer with Alternator
Empowering the AWS DynamoDB™ application developer with Alternator
 
Couchbase Day
Couchbase DayCouchbase Day
Couchbase Day
 
Full-Stack Development with JavaScript and NoSQL
Full-Stack Development with JavaScript and NoSQLFull-Stack Development with JavaScript and NoSQL
Full-Stack Development with JavaScript and NoSQL
 
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksLessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
 
Couchbase Data Platform | Big Data Demystified
Couchbase Data Platform | Big Data DemystifiedCouchbase Data Platform | Big Data Demystified
Couchbase Data Platform | Big Data Demystified
 
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
 
Big Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQL
Big Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQLBig Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQL
Big Data LDN 2018: BIG DATA TOO SLOW? SPRINKLE IN SOME NOSQL
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
 
SQL Server 2019 Big Data Cluster
SQL Server 2019 Big Data ClusterSQL Server 2019 Big Data Cluster
SQL Server 2019 Big Data Cluster
 
PartnerSkillUp_Enable a Streaming CDC Solution
PartnerSkillUp_Enable a Streaming CDC SolutionPartnerSkillUp_Enable a Streaming CDC Solution
PartnerSkillUp_Enable a Streaming CDC Solution
 
BI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache CassandraBI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache Cassandra
 
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
 
From SQL to NoSQL: Structured Querying for JSON
From SQL to NoSQL: Structured Querying for JSONFrom SQL to NoSQL: Structured Querying for JSON
From SQL to NoSQL: Structured Querying for JSON
 

Mehr von DATAVERSITY

Architecture, Products, and Total Cost of Ownership of the Leading Machine Le...
Architecture, Products, and Total Cost of Ownership of the Leading Machine Le...Architecture, Products, and Total Cost of Ownership of the Leading Machine Le...
Architecture, Products, and Total Cost of Ownership of the Leading Machine Le...DATAVERSITY
 
Data at the Speed of Business with Data Mastering and Governance
Data at the Speed of Business with Data Mastering and GovernanceData at the Speed of Business with Data Mastering and Governance
Data at the Speed of Business with Data Mastering and GovernanceDATAVERSITY
 
Exploring Levels of Data Literacy
Exploring Levels of Data LiteracyExploring Levels of Data Literacy
Exploring Levels of Data LiteracyDATAVERSITY
 
Building a Data Strategy – Practical Steps for Aligning with Business Goals
Building a Data Strategy – Practical Steps for Aligning with Business GoalsBuilding a Data Strategy – Practical Steps for Aligning with Business Goals
Building a Data Strategy – Practical Steps for Aligning with Business GoalsDATAVERSITY
 
Make Data Work for You
Make Data Work for YouMake Data Work for You
Make Data Work for YouDATAVERSITY
 
Data Catalogs Are the Answer – What is the Question?
Data Catalogs Are the Answer – What is the Question?Data Catalogs Are the Answer – What is the Question?
Data Catalogs Are the Answer – What is the Question?DATAVERSITY
 
Data Catalogs Are the Answer – What Is the Question?
Data Catalogs Are the Answer – What Is the Question?Data Catalogs Are the Answer – What Is the Question?
Data Catalogs Are the Answer – What Is the Question?DATAVERSITY
 
Data Modeling Fundamentals
Data Modeling FundamentalsData Modeling Fundamentals
Data Modeling FundamentalsDATAVERSITY
 
Showing ROI for Your Analytic Project
Showing ROI for Your Analytic ProjectShowing ROI for Your Analytic Project
Showing ROI for Your Analytic ProjectDATAVERSITY
 
How a Semantic Layer Makes Data Mesh Work at Scale
How a Semantic Layer Makes  Data Mesh Work at ScaleHow a Semantic Layer Makes  Data Mesh Work at Scale
How a Semantic Layer Makes Data Mesh Work at ScaleDATAVERSITY
 
Is Enterprise Data Literacy Possible?
Is Enterprise Data Literacy Possible?Is Enterprise Data Literacy Possible?
Is Enterprise Data Literacy Possible?DATAVERSITY
 
The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...
The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...
The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...DATAVERSITY
 
Emerging Trends in Data Architecture – What’s the Next Big Thing?
Emerging Trends in Data Architecture – What’s the Next Big Thing?Emerging Trends in Data Architecture – What’s the Next Big Thing?
Emerging Trends in Data Architecture – What’s the Next Big Thing?DATAVERSITY
 
Data Governance Trends - A Look Backwards and Forwards
Data Governance Trends - A Look Backwards and ForwardsData Governance Trends - A Look Backwards and Forwards
Data Governance Trends - A Look Backwards and ForwardsDATAVERSITY
 
Data Governance Trends and Best Practices To Implement Today
Data Governance Trends and Best Practices To Implement TodayData Governance Trends and Best Practices To Implement Today
Data Governance Trends and Best Practices To Implement TodayDATAVERSITY
 
2023 Trends in Enterprise Analytics
2023 Trends in Enterprise Analytics2023 Trends in Enterprise Analytics
2023 Trends in Enterprise AnalyticsDATAVERSITY
 
Data Strategy Best Practices
Data Strategy Best PracticesData Strategy Best Practices
Data Strategy Best PracticesDATAVERSITY
 
Who Should Own Data Governance – IT or Business?
Who Should Own Data Governance – IT or Business?Who Should Own Data Governance – IT or Business?
Who Should Own Data Governance – IT or Business?DATAVERSITY
 
Data Management Best Practices
Data Management Best PracticesData Management Best Practices
Data Management Best PracticesDATAVERSITY
 
MLOps – Applying DevOps to Competitive Advantage
MLOps – Applying DevOps to Competitive AdvantageMLOps – Applying DevOps to Competitive Advantage
MLOps – Applying DevOps to Competitive AdvantageDATAVERSITY
 

Mehr von DATAVERSITY (20)

Architecture, Products, and Total Cost of Ownership of the Leading Machine Le...
Architecture, Products, and Total Cost of Ownership of the Leading Machine Le...Architecture, Products, and Total Cost of Ownership of the Leading Machine Le...
Architecture, Products, and Total Cost of Ownership of the Leading Machine Le...
 
Data at the Speed of Business with Data Mastering and Governance
Data at the Speed of Business with Data Mastering and GovernanceData at the Speed of Business with Data Mastering and Governance
Data at the Speed of Business with Data Mastering and Governance
 
Exploring Levels of Data Literacy
Exploring Levels of Data LiteracyExploring Levels of Data Literacy
Exploring Levels of Data Literacy
 
Building a Data Strategy – Practical Steps for Aligning with Business Goals
Building a Data Strategy – Practical Steps for Aligning with Business GoalsBuilding a Data Strategy – Practical Steps for Aligning with Business Goals
Building a Data Strategy – Practical Steps for Aligning with Business Goals
 
Make Data Work for You
Make Data Work for YouMake Data Work for You
Make Data Work for You
 
Data Catalogs Are the Answer – What is the Question?
Data Catalogs Are the Answer – What is the Question?Data Catalogs Are the Answer – What is the Question?
Data Catalogs Are the Answer – What is the Question?
 
Data Catalogs Are the Answer – What Is the Question?
Data Catalogs Are the Answer – What Is the Question?Data Catalogs Are the Answer – What Is the Question?
Data Catalogs Are the Answer – What Is the Question?
 
Data Modeling Fundamentals
Data Modeling FundamentalsData Modeling Fundamentals
Data Modeling Fundamentals
 
Showing ROI for Your Analytic Project
Showing ROI for Your Analytic ProjectShowing ROI for Your Analytic Project
Showing ROI for Your Analytic Project
 
How a Semantic Layer Makes Data Mesh Work at Scale
How a Semantic Layer Makes  Data Mesh Work at ScaleHow a Semantic Layer Makes  Data Mesh Work at Scale
How a Semantic Layer Makes Data Mesh Work at Scale
 
Is Enterprise Data Literacy Possible?
Is Enterprise Data Literacy Possible?Is Enterprise Data Literacy Possible?
Is Enterprise Data Literacy Possible?
 
The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...
The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...
The Data Trifecta – Privacy, Security & Governance Race from Reactivity to Re...
 
Emerging Trends in Data Architecture – What’s the Next Big Thing?
Emerging Trends in Data Architecture – What’s the Next Big Thing?Emerging Trends in Data Architecture – What’s the Next Big Thing?
Emerging Trends in Data Architecture – What’s the Next Big Thing?
 
Data Governance Trends - A Look Backwards and Forwards
Data Governance Trends - A Look Backwards and ForwardsData Governance Trends - A Look Backwards and Forwards
Data Governance Trends - A Look Backwards and Forwards
 
Data Governance Trends and Best Practices To Implement Today
Data Governance Trends and Best Practices To Implement TodayData Governance Trends and Best Practices To Implement Today
Data Governance Trends and Best Practices To Implement Today
 
2023 Trends in Enterprise Analytics
2023 Trends in Enterprise Analytics2023 Trends in Enterprise Analytics
2023 Trends in Enterprise Analytics
 
Data Strategy Best Practices
Data Strategy Best PracticesData Strategy Best Practices
Data Strategy Best Practices
 
Who Should Own Data Governance – IT or Business?
Who Should Own Data Governance – IT or Business?Who Should Own Data Governance – IT or Business?
Who Should Own Data Governance – IT or Business?
 
Data Management Best Practices
Data Management Best PracticesData Management Best Practices
Data Management Best Practices
 
MLOps – Applying DevOps to Competitive Advantage
MLOps – Applying DevOps to Competitive AdvantageMLOps – Applying DevOps to Competitive Advantage
MLOps – Applying DevOps to Competitive Advantage
 

Kürzlich hochgeladen

IMA MSN - Medical Students Network (2).pptx
IMA MSN - Medical Students Network (2).pptxIMA MSN - Medical Students Network (2).pptx
IMA MSN - Medical Students Network (2).pptxdolaknnilon
 
办理学位证加利福尼亚大学洛杉矶分校毕业证,UCLA成绩单原版一比一
办理学位证加利福尼亚大学洛杉矶分校毕业证,UCLA成绩单原版一比一办理学位证加利福尼亚大学洛杉矶分校毕业证,UCLA成绩单原版一比一
办理学位证加利福尼亚大学洛杉矶分校毕业证,UCLA成绩单原版一比一F sss
 
1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样
1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样
1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样vhwb25kk
 
Identifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanIdentifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanMYRABACSAFRA2
 
ASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel CanterASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel Cantervoginip
 
Defining Constituents, Data Vizzes and Telling a Data Story
Defining Constituents, Data Vizzes and Telling a Data StoryDefining Constituents, Data Vizzes and Telling a Data Story
Defining Constituents, Data Vizzes and Telling a Data StoryJeremy Anderson
 
Data Factory in Microsoft Fabric (MsBIP #82)
Data Factory in Microsoft Fabric (MsBIP #82)Data Factory in Microsoft Fabric (MsBIP #82)
Data Factory in Microsoft Fabric (MsBIP #82)Cathrine Wilhelmsen
 
专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改
专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改
专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改yuu sss
 
Easter Eggs From Star Wars and in cars 1 and 2
Easter Eggs From Star Wars and in cars 1 and 2Easter Eggs From Star Wars and in cars 1 and 2
Easter Eggs From Star Wars and in cars 1 and 217djon017
 
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGILLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGIThomas Poetter
 
How we prevented account sharing with MFA
How we prevented account sharing with MFAHow we prevented account sharing with MFA
How we prevented account sharing with MFAAndrei Kaleshka
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Seán Kennedy
 
办理(UWIC毕业证书)英国卡迪夫城市大学毕业证成绩单原版一比一
办理(UWIC毕业证书)英国卡迪夫城市大学毕业证成绩单原版一比一办理(UWIC毕业证书)英国卡迪夫城市大学毕业证成绩单原版一比一
办理(UWIC毕业证书)英国卡迪夫城市大学毕业证成绩单原版一比一F La
 
RABBIT: A CLI tool for identifying bots based on their GitHub events.
RABBIT: A CLI tool for identifying bots based on their GitHub events.RABBIT: A CLI tool for identifying bots based on their GitHub events.
RABBIT: A CLI tool for identifying bots based on their GitHub events.natarajan8993
 
Conf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming PipelinesConf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming PipelinesTimothy Spann
 
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024Susanna-Assunta Sansone
 
GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]📊 Markus Baersch
 
办理(Vancouver毕业证书)加拿大温哥华岛大学毕业证成绩单原版一比一
办理(Vancouver毕业证书)加拿大温哥华岛大学毕业证成绩单原版一比一办理(Vancouver毕业证书)加拿大温哥华岛大学毕业证成绩单原版一比一
办理(Vancouver毕业证书)加拿大温哥华岛大学毕业证成绩单原版一比一F La
 
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...Amil Baba Dawood bangali
 
Advanced Machine Learning for Business Professionals
Advanced Machine Learning for Business ProfessionalsAdvanced Machine Learning for Business Professionals
Advanced Machine Learning for Business ProfessionalsVICTOR MAESTRE RAMIREZ
 

Kürzlich hochgeladen (20)

IMA MSN - Medical Students Network (2).pptx
IMA MSN - Medical Students Network (2).pptxIMA MSN - Medical Students Network (2).pptx
IMA MSN - Medical Students Network (2).pptx
 
办理学位证加利福尼亚大学洛杉矶分校毕业证,UCLA成绩单原版一比一
办理学位证加利福尼亚大学洛杉矶分校毕业证,UCLA成绩单原版一比一办理学位证加利福尼亚大学洛杉矶分校毕业证,UCLA成绩单原版一比一
办理学位证加利福尼亚大学洛杉矶分校毕业证,UCLA成绩单原版一比一
 
1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样
1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样
1:1定制(UQ毕业证)昆士兰大学毕业证成绩单修改留信学历认证原版一模一样
 
Identifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanIdentifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population Mean
 
ASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel CanterASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel Canter
 
Defining Constituents, Data Vizzes and Telling a Data Story
Defining Constituents, Data Vizzes and Telling a Data StoryDefining Constituents, Data Vizzes and Telling a Data Story
Defining Constituents, Data Vizzes and Telling a Data Story
 
Data Factory in Microsoft Fabric (MsBIP #82)
Data Factory in Microsoft Fabric (MsBIP #82)Data Factory in Microsoft Fabric (MsBIP #82)
Data Factory in Microsoft Fabric (MsBIP #82)
 
专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改
专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改
专业一比一美国俄亥俄大学毕业证成绩单pdf电子版制作修改
 
Easter Eggs From Star Wars and in cars 1 and 2
Easter Eggs From Star Wars and in cars 1 and 2Easter Eggs From Star Wars and in cars 1 and 2
Easter Eggs From Star Wars and in cars 1 and 2
 
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGILLMs, LMMs, their Improvement Suggestions and the Path towards AGI
LLMs, LMMs, their Improvement Suggestions and the Path towards AGI
 
How we prevented account sharing with MFA
How we prevented account sharing with MFAHow we prevented account sharing with MFA
How we prevented account sharing with MFA
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...
 
办理(UWIC毕业证书)英国卡迪夫城市大学毕业证成绩单原版一比一
办理(UWIC毕业证书)英国卡迪夫城市大学毕业证成绩单原版一比一办理(UWIC毕业证书)英国卡迪夫城市大学毕业证成绩单原版一比一
办理(UWIC毕业证书)英国卡迪夫城市大学毕业证成绩单原版一比一
 
RABBIT: A CLI tool for identifying bots based on their GitHub events.
RABBIT: A CLI tool for identifying bots based on their GitHub events.RABBIT: A CLI tool for identifying bots based on their GitHub events.
RABBIT: A CLI tool for identifying bots based on their GitHub events.
 
Conf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming PipelinesConf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
 
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
FAIR, FAIRsharing, FAIR Cookbook and ELIXIR - Sansone SA - Boston 2024
 
GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]
 
办理(Vancouver毕业证书)加拿大温哥华岛大学毕业证成绩单原版一比一
办理(Vancouver毕业证书)加拿大温哥华岛大学毕业证成绩单原版一比一办理(Vancouver毕业证书)加拿大温哥华岛大学毕业证成绩单原版一比一
办理(Vancouver毕业证书)加拿大温哥华岛大学毕业证成绩单原版一比一
 
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
 
Advanced Machine Learning for Business Professionals
Advanced Machine Learning for Business ProfessionalsAdvanced Machine Learning for Business Professionals
Advanced Machine Learning for Business Professionals
 

Slides: Moving from a Relational Model to NoSQL

  • 1. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. Moving from a Relational Model to NoSQL Leveraging a Flexible JSON Schema Matthew Groves – Product Marketing Manager
  • 2. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 2 Objectives • Give an overview of migrating an existing relational database to NoSQL (Couchbase) • Give you a sense for some of the technical issues / differences • We will not get into deep details (i.e. dialect details, different ways to write a query, how indexes are handled, etc)
  • 3. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2018. All rights reserved. 1 2 3 4 5 Quick Intro to NoSQL Quick Intro to Couchbase Migration Options Optimizing Demo AGENDA
  • 4. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. Quick Intro to NoSQL
  • 5. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 5 Consider + Purchase Operate + Service Build + Fulfill Massively Interactive Enterprises e-Commerce Supply Chain Internet of Things CUSTOMER EMPLOYEE MACHINE Drivers of NoSQL
  • 6. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 6 Application Requirements Are Dramatically Different NoSQL Transactions Interactions Transactional Analytical SCALABLE SECURE FLEXIBILE DISTRIBUTED LOW TCO
  • 7. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 7 Application Requirements Are Dramatically Different Oracle 1K:1 Consumer 1:1 1M:1 IoT Legacy Databases Insufficient Relational divide Couchbase
  • 8. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 8 What is JSON? JavaScript Object Notation • Lightweight data interchange format • Based on a subset of JavaScript • Uses a hierarchical key/value syntax Data Types • Object: Unordered collection of key/value pairs • Array: ordered list of 0 or more values • Number: Integer or Float • String: Unicode in double quotes • Boolean: true or false • Null: Empty Value <""> { "JSON": "JavaScript Object Notation", "Desc": [ "Lightweight data interchange format", "Based on a subset of JavaScript", "Uses a hierarchical key/value syntax" ], "DataTypes": { "Object": { "Desc": "Unordered collection of key/value pairs", "Ex01": { "key": "value" } }, "Array": { "Desc": "Ordered list of 0 or more values", "Ex01": [ "apples", 12, true ] }, "Number": { "Desc": "Integer or Float", "Ex01": 12, "Ex02": 1234.56789 }, "String": { "Desc": "Unicode in double quotes", "Ex01": "Hello World!" }, "Boolean": { "Desc": "true or false", "Ex01": true, "Ex02": false }, "Null": { "Desc": "Empty Value", "Ex01": "" } }
  • 9. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 9 Why JSON for Data? JSON is easy to read and write JSON is ubiquitous • ~ 170 JSON parsing libs • ~ 60 different languages/frameworks • json.org – resource lists • Standardizing in RFC 8259 JSON objects make great "documents" • Object => "document" / "subdocument" • Internal key/value pairs => "attributes"
  • 10. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 10 { '_type': 'user', 'age': 23, 'name': 'Mint, Mikey', 'admin': false } Tables vs document sets (simple) USER user_id age name admin blue123-4 42 Blue, Betty true orange456-7 31 Orange, Oscar false { 'age': 42, 'name': 'Blue, Betty', 'admin': true } id: blue123-4 Relational DB Tables Rows { '_type': 'product', 'qty;: 1966, 'name': 'Blarg Nozzle', 'stock': true } { 'qty;: 1966, 'name': 'Blarg Nozzle', 'stock': true } id: abc123 PRODUCT prod_id qty name stock abc123 1966 Blarg Nozzle true xyz456 5280 Hepto Shaft false NoSQL Bucket Collections Documents
  • 11. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 11 Schema “enforcement” vs schema agility USER user_id age name admin blue123-4 42 Blue, Betty true orange456-7 31 Orange, Oscar false Relational { '_type': 'product', 'qty;: 1966, 'name': 'Blarg Nozzle', 'stock': true } { 'type': 'product', 'qty;: 1966, 'name': 'Blarg Nozzle', 'stock': true } id: product:: abc123 PRODUCT prod_id qty name stock abc123 1966 Blarg Nozzle true xyz456 5280 Hepto Shaft false def321 ??? Foo Modulator false { 'qty': 0, 'name': 'Foo Modulator', 'stock': false, 'restock': true } id: def321 restock = true ? { '_type': 'user', 'age': 23, 'name': 'Mint, Mikey', 'admin': false } { 'age': 42, 'name': 'Blue, Betty', 'admin': true } id: blue123-4 NoSQL
  • 12. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 12 Timestamp format choices • ISO 8601 • Time component array • Epoch/Unix
  • 13. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. Quick Intro to Couchbase
  • 14. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 14 Couchbase | NoEQUAL Agility/versatility Performance Easy to manage
  • 15. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 15 What is Couchbase? • NoSQL Database that stores JSON documents • Includes a Key-Value Store for fast lookups • Supports SQL and ACID transactions • Includes Indexing • Includes Full Text Search capability • Memory-First, shared-nothing architecture • Asynchronous architecture • Masterless
  • 16. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 16 PRIVATE CLOUD Cloud-Native: Deploy On Premise or In Any Cloud OPTIMIZED FOR FLEXIBILITY, CUSTOMIZABILITY AND PERFORMANCE OPTIMIZED FOR SIMPLICITY, PERFORMANCE AND EASE OF USE PUBLIC CLOUD FULLY MANAGED DBaaS
  • 17. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 17 COUCHBASE LITE SYNC GATEWAY COUCHBASE SERVER Lightweight embedded NoSQL database with full CRUD and query functionality. Secure web gateway with synchronization, data access, and data integration APIs for accessing, integrating, and synchronizing data over the web. Highly scalable, highly available, high performance NoSQL database server. Securely Manage & Sync Data from any Cloud to the Edge
  • 18. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 18 Cross Data Center Replication (XDCR)
  • 19. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. Migration Options
  • 20. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 20 Scenario Existing application architected on an RDBMS, it works well, but there are a lot of changes coming and new expected demands in terms of scalability.
  • 21. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 21 Issues to consider • Risk tolerance • Skills / expertise • Migration cost • Performance • Scale
  • 22. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 22 How do you migrate? • 1 Rewrite: No migration, write the whole thing over • 2 Redesign Schema: Keep your business logic, rewrite your data layer and schema, totally redesign your schema on NoSQL best practices • 3 Refactor First: Keep everything but refactor your data logic and RDBMS schema into a best practices NoSQL schema • 4 Optimize Later: Host your schema with as few changes as possible, get the application running on the new technology, refactor/optimize the schema as necessary for performance • 5 Just Host It: Host your schema with as few changes as possible. Risk Effort
  • 23. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. Migrating Without Denormalizing
  • 24. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 24 Conventional relational data Normalize – model data as minimally redundant tables, and rely on in-memory JOINs ✔Storage minimized ✔Schema enforced ✔Ad hoc queries well supported by SQL ✔Record-centric, 2D data paradigm CustomerID Name Address Email XYZ234 Acme 9 W. 2nd al@acme ProductID Name Description 774477 Widget Fit for all uses. 115588 Gadget Just what I need. PayTypeID Name 001 PayPal OrderID Customer PayType 123 XYZ234 001 OrderID ProductID Qty 123 774477 2 123 115588 3
  • 25. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 25 Collection Relational Database vs Bucket (simple) USER user_id age name admin blue123-4 42 Blue, Betty true orange456-7 31 Orange, Oscar false Relational table { 'type': 'user', 'age': 31, 'name': 'Orange, Oscar', 'admin’: false } id: user::orang e456-7 { 'age': 42, 'name': 'Blue, Betty', 'admin': true } id: blue123-4
  • 26. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 26 { 'type': 'user', 'age': 31, 'name': 'Orange, Oscar', 'admin’: false } id: user::orang e456-7 Collection Rows/records vs documents (simple) Copyright © 2019 Couchbase, Inc. USER user_id age name admin blue123-4 42 Blue, Betty true orange456-7 31 Orange, Oscar false Relational table { 'age': 42, 'name': 'Blue, Betty', 'admin': true } id: blue123-4
  • 27. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 27 Collection Columns vs attributes/parameters/fields USER user_id age name admin blue123-4 42 Blue, Betty true orange456-7 31 Orange, Oscar false Relational table { 'age': 31, 'name': 'Orange, Oscar', 'admin’: false } id: orange456-7 { 'age': 42, 'name': 'Blue, Betty', 'admin': true } id: blue123-4
  • 28. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 28 Document data { "date" : "2021-01-06", "orderNum" : "ABC123", "customer": { "name": "Acme", "address": "9 W. 2nd", "email": "al@acme" }, "items": [{ "qty": 2, "name": "Widget", "description": "Fit for all uses." },{ "qty": 3, "name": "Gadget", "description": "Just what I need." }] } order::123 ORDER id date orderNum 123 2021-01-06 ABC123 ITEM order_id qty name description 123 2 Widget Fit for all… 123 3 Gadget Just what I ... CUSTOMER order_id name address email 123 Acme 9 W. 2nd al@acme
  • 29. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 29 Document data De-normalize – optimize for planned application usage ✔Data can directly align with object model ✔Reduced JOIN and Tx pressure ✔Simpler data-layer code ✔Low latency CRUD and streaming APIs ✔Indexing for alternate access patterns ✔Queries well supported by SQL++ (N1QL)
  • 30. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 30 The New Query SELECT l.city FROM Travel.dbo.LANDMARKS l WHERE l.city IN (SELECT city FROM Travel.dbo.AIRPORTS) RDBMS Queries SELECT l.city FROM Travel._ default.landmark l WHEREl.city IN (SELECT VALUE city FROM Travel._ default.airport ) N1QL Queries
  • 31. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 31 Query Differences • Table = collection • ANSI JOINs and other SQL conventions are supported. • There are other “N1QLisms” that are mainly to do with JSON like “unnest” or “nest” dealing with embedded documents. • Indexes are very important in Couchbase SELECT player.name, player.level, stats.loadtime, SUM(CASE WHEN hist.result = "won" THEN 1 ELSE 0 END) AS wins FROM jungleville_stats AS stats UNNEST stats.`pvp - hist` AS hist JOIN jungleville AS player ON KEYS stats.uuid GROUP BY player, stats ORDER BY wins DESC, player.level DESC
  • 32. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 32 Indexes • meta(bucket) allows you to refer to the field names • GSI = Global Secondary Index CREATE INDEX person_role on profiles( person_role_name ) WHERE meta(profiles).type="person" USING GSI
  • 33. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 33 Keys to success • NoSQL Database feature support (SQL, ACID, Joins) • Understanding • Buckets • Scopes • Collections • SQL Dialect transitions • Optimize Later
  • 34. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. Optimizing
  • 35. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 35 Key considerations • Joining and transacting is costly (especially in a distributed architecture) and doesn’t scale as well horizontally. • Your well-designed application code is a guide. “Person” contains “Addresses” but looks up “Orders” • Think in terms of Entities. In the scope of your application does this have a “lifecycle” outside of the thing that always references it. • Can you reduce the number of explicit transactions required? • Can you reduce the number of joins? • Have you met your performance/scale requirement
  • 36. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 36 Key considerations JOINs / ACID App code as a guide Entities
  • 37. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 37 Reduce Joins/Transactions { 'acct_no': 'ABC1', 'balances': { 'savings': 100, 'checking': 200 } } UPDATE Accounts SET balances.savings = 100 AND balances.checking = 200 WHERE acct_no = "ABC1" AND type = "account"; acct_no balance ABC1 100 UPDATE savings SET balance = 100 WHERE acct_no = "ABC1"; savings acct_no balance ABC1 200 UPDATE checking SET balance = 200 WHERE acct_no = "ABC1"; checking N1QL: Atomic document update SQL: ACID transaction START TRANSACTION COMMIT
  • 38. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 38 Analyze your logical model ✔Order embeds Items, external Product (1:n) and Paytype (1:1) docs Customer Order 1:n Paytype 1:1 Items 1:n Product 1:1 Name Name Quantity Name Description Price Is this your object?
  • 39. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 39 ✔Order embeds Items, external Product (1:n) and Paytype (1:1) docs Customer Order 1:n Paytype 1:1 Items 1:n Product 1:1 Name Name Quantity Name Description Price Is this your object? Embedding
  • 40. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 40 Analyze your logical model ✔Order embeds Paytype and refs Items which embed Product Customer Order 1:n Paytype 1:1 Items 1:n Product 1:1 Name Name Quantity Name Description Price Are these your objects?
  • 41. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 41 Embedding + Referring ✔Order embeds Paytype and refs Items which embed Product Customer Order 1:n Paytype 1:1 Items 1:n Product 1:1 Name Name Quantity Name Description Price Are these your objects? Customer Paytype
  • 42. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 42 Objects vs. object arrays
  • 43. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 43 Conclusions • Migrate first, optimize later (reduces risk, increases performance/scale) • Joins / Multi-document transactions are more costly in a distributed architecture • Expect a 1-1 migration to be slower, require more hardware • Embed documents as an optimization • SQL Queries can be converted • ACID transactions are available (but not needed as often when optimized)
  • 44. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. 44 Data Access: N1QL = SQL for JSON Create User Get User Update User Delete User SELECT * FROM users WHERE users.lastName = “Johnson” UPDATE users SET status = “Platinum” WHERE users.lastName = “Johnson” DELETE FROM users WHERE users.firstName = “Shane” 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 INSERT INTO VALUES Users (KEY, VALUE) ( “user::100”, { “firstName”: ”Shane”, “lastName”: ”Johnson” } );
  • 45. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. Couchbase Demo
  • 46. Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2020. All rights reserved. https://www.couchbase.com/products/cloud