SlideShare a Scribd company logo
Introduction to Azure DocumentDB
Alexander Zyl
.NET Developer
azyl@scnsoft.com
A new child
NoSQL solutions in Azure
HBase
TS
• Column Family Store • Key/Value Store
Redis
TS
Features:
• Fully managed
• Schema agnostic
• Scalable
• Tunable consistency levels
• Tunable indexing policies
• Familiar SQL syntax for querying
• JavaScript execution
DocumentDB
DocumentDB resource model
RESTAPI
DocumentDB Infrastructure
Databases
/dbs/{id}
DocumentDB
Account
Databases
/dbs/{id}
DocumentDB
Account
Collections
/colls/{id}
Databases
/dbs/{id}
Users
/users/{id}
Permissions
/permissions/{id}
Collections
/colls/{id}
Databases
/dbs/{id}
Users
/users/{id}
Permissions
/permissions/{id}
Triggers
/triggers/{id}
Functions
/functions/{id}
Stored Procedures
/sprocs/{id}
Attachments
/attachments/{id}
Documents
/docs/{id}
Collections
/colls/{id}
DocumentDB
Account
Users
/users/{id}
Databases
/dbs/{id}
Permissions
/permissions/{id}
Collections
/colls/{id}
Attachments
/attachments/{id}
Documents
/docs/{id}
Triggers
/triggers/{id}
Functions
/functions/{id}
Stored Procedures
/sprocs/{id}
Server ZServer CServer BServer A
Logical containers
Physical containers
DocumentDB
Account
CollectionsCollections Collections Collections
What about cost?
= 𝑓 𝑀𝑒𝑚𝑜𝑟𝑦, 𝐶𝑃𝑈, 𝐼𝑂
Request Unit
Performance levels
RUs per second RUs per second20 20 20RUs per second RUs per second250 RUs per second 1k RUs per second 2.5k RUs per second
How to model data?
{
"Id": 44,
"ReleaseYear": "2014",
"Make": "Aston Martin",
"Vin": "2G1WT58KX79250102",
"Model": "DBS",
"Dealer": {
"Name": "Atlant-M",
"Address": "Some st. 9"
},
"GPSLocation": {
"Latitude": 44.6516185,
"Longitude": -63.5820275
},
"StatusData": […]
}
Vehicle Dealer
StatusData
VehicleIdPK PK
PK
ReleaseYear
Make
DealerId
Name
StatusId
VehicleId
EngineOn
TimeStamp
Address
Vin
Model
Latitude
Longitude
Approaches to document modeling
 Reference data
 Embed data
Modeling relations
Vehicle document:
{
"Id": 44,
"ReleaseYear": "2014",
"Make": "Aston Martin",
"Vin": "2G1WT58KX79250102",
"Model": "DBS",
"Dealer": {
"Name": "Atlant-M",
"Address": "Some st. 9"
},
"GPSLocation": {
"Latitude": 44.6516185,
"Longitude": -63.5820275
},
"StatusData": [
{ "Id": 1, "TimeStamp": "2014-07-04", "EngineOn": true, "FuelLevel": 40 },
{ "Id": 2, "TimeStamp": "2014-07-04", "EngineOn": false, "FuelLevel": 33 },
{ "Id": 999, "TimeStamp": "2014-08-12", "EngineOn": true, "FuelLevel": 23 }
]
}
Bad design
When to embed:
 One-to-few relations
 Infrequent changes
 Embedded data has
bounds
Modeling relations
Vehicle document:
{
"Id": 44,
"ReleaseYear": "2014",
"Make": "Aston Martin",
"Vin": "2G1WT58KX79250102",
"Model": "DBS",
"Dealer": {
"Name": "Atlant-M",
"Address": "Some st. 9"
},
"GPSLocation": {
"Latitude": 44.6516185,
"Longitude": -63.5820275
},
"StatusData": [
{ "Id": 1, "TimeStamp": "2014-07-04", "EngineOn": true, "FuelLevel": 40 },
{ "Id": 2, "TimeStamp": "2014-07-04", "EngineOn": false, "FuelLevel": 33 },
{ "Id": 999, "TimeStamp": "2014-08-12", "EngineOn": true, "FuelLevel": 23 }
]
}
When to embed:
 One-to-few relations
 Infrequent changes
 Embedded data has
bounds
When to reference:
 One-to-many relations
 Many-to-many relations
 Data changes frequently
 Unbounded reference
Modeling relations
Vehicle document:
{
"Id": 44,
"ReleaseYear": "2014",
"Make": "Aston Martin",
"Vin": "2G1WT58KX79250102",
"Model": "DBS",
"Dealer": {
"Name": "Atlant-M",
"Address": "Some st. 9"
},
"GPSLocation": {
"Latitude": 44.6516185,
"Longitude": -63.5820275
},
"StatusData": [
{ "Id": 1, "TimeStamp": "2014-07-04", "EngineOn": true, "FuelLevel": 40 },
{ "Id": 2, "TimeStamp": "2014-07-04", "EngineOn": false, "FuelLevel": 33 },
{ "Id": 999, "TimeStamp": "2014-08-12", "EngineOn": true, "FuelLevel": 23 }
]
}
Vehicle document:
{
"Id": 44,
"ReleaseYear": "2014",
"Make": "Aston Martin",
"Vin": "2G1WT58KX79250102",
"Model": "DBS",
"Dealer": {
"Name": "Atlant-M",
"Address": "Some st. 9"
},
"StatusData": [
{ "Id": 1, "TimeStamp": "2014-07-04", "EngineOn": true, "FuelLevel": 40 },
{ "Id": 2, "TimeStamp": "2014-07-04", "EngineOn": false, "FuelLevel": 33 },
{ "Id": 3, "TimeStamp": "2014-07-04", "EngineOn": true, "FuelLevel": 23 },
{ "Id": 999, "TimeStamp": "2014-08-12", "EngineOn": true, "FuelLevel": 23 }
]
}
VehicleLocation document:
{
"VehicleId": 44,
"GPSLocation": {
"Latitude": 44.651617,
"Longitude": -63.582027
}
}
Vehicle
{
"Id": 44,
"ReleaseYear": "2014",
"Make": "Aston Martin",
"Vin": "2G1WT58KX79250102",
"Model": "DBS",
"Dealer": {
"Name": "Atlant-M",
"Address": "Some st. 9"
},
"StatusData"95,: [
{ "Id": 1, "TimeStamp": "2014-07-04", "EngineOn": true, "FuelLevel": 40 },
{ "Id": 2, "TimeStamp": "2014-07-04", "EngineOn": false, "FuelLevel": 33 },
{ "Id": 3, "TimeStamp": "2014-07-04", "EngineOn": true, "FuelLevel": 23 },
{ "Id": 999, "TimeStamp": "2014-08-12", "EngineOn": true, "FuelLevel": 23 }
]
}
Vehicle document:
{
"Id": 44,
"ReleaseYear": "2014",
"Make": "Aston Martin",
"Vin": "2G1WT58KX79250102",
"Model": "DBS",
"Dealer": {
"Name": "Atlant-M",
"Address": "Some st. 9"
},
}
VehicleStatus documents:
{ "Id": 1, "TimeStamp": "2014-07-04", "EngineOn": true, "FuelLevel": 40, "VehicleId": 44 },
{ "Id": 2, "TimeStamp": "2014-07-04", "EngineOn": false, "FuelLevel": 33, "VehicleId": 44 },
{ "Id": 3, "TimeStamp": "2014-07-04", "EngineOn": true, "FuelLevel": 23, "VehicleId": 44 },
{ "Id": 4, "TimeStamp": "2014-07-05", "EngineOn": true, "FuelLevel": 10, "VehicleId": 44 },
{ "Id": 5, "TimeStamp": "2014-07-06", "EngineOn": false, "FuelLevel": 55, "VehicleId": 44 },
{ "Id": 999, "TimeStamp": "2014-08-12", "EngineOn": true, "FuelLevel": 23, "VehicleId": 44 }
Indexing
Documents in a collection
{
"id": 16,
"text": "Bonjour",
"user": {
"name": "Francois",
"nickname": "@franky"
},
"entities": {
"hashtags": [
{
"text": "#heof"
}
]
}
}
{
"id": 4,
"text": "Hello",
"user": {
"name": "Jerome",
"nickname": "@juim"
},
"entities": {
"hashtags": [
{
"text": "#rutib",
"indices": [ 10, 26 ]
}
]
}
}
Index tree
textid userentities
4 16 Hello Bonjourname nickname
Jerome Francois @juim @franky
hashtags
text indices
0
10 26
0
#rutib #heof
What we can controlAutomatic indexing
 Manual include
 Manual exclude
What we can control
Automatic indexing
 Manual include
 Manual exclude
What we can control
Indexing modes
 Consistent
 Lazy
 None
What we can control
Indexing modes
 Consistent
 Lazy
 None
Building paths
{
"id": 16,
"text": "Bonjour",
"user": {
"name": "Francois",
"nickname": "@franky"
},
"entities": {
"hashtags": [
{ "text": "#heof" }
]
}
}
_.text
_.user.name
_.entities.hashtags
_.entities.hashtags[0].text
Building paths
Applicable wildcards:
? – single selection
/text/?
/user/nickname/?
/entities/hashtags/[]/text/?
{
"id": 4,
"text": "Hello",
"user": {
"name": "Jerome",
"nickname": "@juim"
},
"entities": {
"hashtags": [
{
"text": "#rutib",
"indices": [ 10, 26 ]
}
]
}
}
/text/?
Building paths: examples
{
"id": 4,
"text": "Hello",
"user": {
"name": "Jerome",
"nickname": "@juim"
},
"entities": {
"hashtags": [
{
"text": "#rutib",
"indices": [ 10, 26 ]
}
]
}
}
/user/nickname/?
Building paths: examples
Building paths
Applicable wildcards:
? – single selection
* – recursive selection/text/?
/user/nickname/?
/entities/hashtags/[]/text/?
/user/*
/entities/*
/entities/hashtags/[]/*
{
"id": 4,
"text": "Hello",
"user": {
"name": "Jerome",
"nickname": "@juim"
},
"entities": {
"hashtags": [
{
"text": "#rutib",
"indices": [ 10, 26 ]
}
]
}
}
/user/*
Building paths: examples
{
"id": 4,
"text": "Hello",
"user": {
"name": "Jerome",
"nickname": "@juim"
},
"entities": {
"hashtags": [
{
"text": "#rutib",
"indices": [ 10, 26 ]
}
]
}
}
/entities/hashtags/*
Building paths: examples
Indexing options:
Include to index
Exclude from index
Applying rules
Index kinds:
Hash – equality queries
Applying rules
SELECT *
FROM collection c
WHERE c.prop = 'value'
Index kinds:
Hash – equality queries
Range – range + OrderBy queries
Applying rules
SELECT *
FROM collection c
WHERE c.prop = 'value'
SELECT *
FROM collection c
WHERE c.prop >= 15
ORDER BY c.prop
Index kinds:
Hash – equality queries
Range – range + OrderBy queries
Spatial – ST_DISTANCE, ST_WITHIN
Applying rules
SELECT *
FROM collection c
WHERE c.prop >= 15
ORDER BY c.prop
SELECT *
FROM collection c
WHERE ST_DISTANCE(c.Location, {
"type": "Point",
"coordinates": [-122.19, 47.36]
}) < 100 * 1000
Index precision:
For numbers: 1-8 bytes
For strings: 1-100 bytes
Applying rules
Data consistency
•Strong consistency
•Eventual consistency
DocumentDB
•Strong consistency
•Eventual consistency
•Session
•Bounded staleness
Offered consistency models
Strong consistency
Strong consistency: Write operation
Version2
Version1
Version2
User
Replica A
Replica B
Replica CGateway
Async
Infra
Version2
Strong consistency: Read operation
Version2
Version1
Version2
User
Replica A
Replica B
Replica CGateway
Infra
Version2
Eventual consistency
Eventual consistency: Write operation
Version2
Version1
Version1
User
Replica A
Replica B
Replica CGateway
Async
Infra
Version2
Eventual consistency: Read operation
Version2
Version1
Version1
User
Replica A
Replica B
Replica CGateway
Infra
Version1
Session consistency
Session: Write operation
Version2
Version1
Version1
User
Replica A
Replica B
Replica CGateway
Async
InfraSession Id
Version2
Session: Read operation
Version2
Version1
Version1
Replica A
Replica B
Replica CGateway
Infra
Version2
User A
User B
Session Id
Version1
Bounded staleness
Bounded staleness: Write operation
Version2
Version1
Version1
User
Replica A
Replica B
Replica CGateway
Async
Infra
Version2
Bounded staleness: Read operation
Version3
Version1
Version2
User
Replica A
Replica B
Replica CGateway
Sync
Infra
Version2
Scalability issues
Out of space
>Data Collection
Scalability issues
Too many requests
Out of space
>Data Collection
Solutions?
Vertical scaling
Horizontal scaling
Vertical scaling
Solutions?
Collection = Partition
Collection
RequestPartitioning our data
Partition 1
Request
Request
Partition 2
Logical grouping
Partitioning our data
Partitioning strategies
Hash partitioning
Partition 1
Partition 3
Partition 2
UserId: 14 Hash(14)=>
P3
Infra
Logical grouping
Partitioning strategies
Range partitioning
Partition 1
Partition 3
Partition 2
Name: David
Infra
K > David >= A
A-I
K-Q
R-Z
Logical grouping
Partitioning strategies
Lookup partitioning
Region name Partition Id
Asia Partition1
Version3Europe Partition2
United States Partition3
Partition 1
Partition 3
Partition 2
Region: Europe
Infra
Logical grouping
Use Cases
Use Cases: user-defined data
Use Cases: storing and analyzing logs
Logs
Use Cases: storing materialized views

More Related Content

What's hot (19)

Schema design short
Schema design shortSchema design short
Schema design short
MongoDB
 
dojo.data, stores and widgets
dojo.data, stores and widgetsdojo.data, stores and widgets
dojo.data, stores and widgets
klipstein
 
Hypermedia API’s
Hypermedia API’s Hypermedia API’s
Hypermedia API’s
3camp
 
03DOM.ppt
03DOM.ppt03DOM.ppt
03DOM.ppt
Bhavani Testone
 
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHPPHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
iMasters
 
James elastic search
James   elastic searchJames   elastic search
James elastic search
LearningTech
 
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDBMongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
MongoDB
 
Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling
rogerbodamer
 
A Novel Approach to Scraping Websites - Rob Ousbey, MozCon 2020
A Novel Approach to Scraping Websites - Rob Ousbey, MozCon 2020A Novel Approach to Scraping Websites - Rob Ousbey, MozCon 2020
A Novel Approach to Scraping Websites - Rob Ousbey, MozCon 2020
Rob Ousbey
 
Terms of endearment - the ElasticSearch Query DSL explained
Terms of endearment - the ElasticSearch Query DSL explainedTerms of endearment - the ElasticSearch Query DSL explained
Terms of endearment - the ElasticSearch Query DSL explained
clintongormley
 
Coding for marketers
Coding for marketersCoding for marketers
Coding for marketers
Robin Lord
 
Domain Specific Languages (EclipseCon 2012)
Domain Specific Languages (EclipseCon 2012)Domain Specific Languages (EclipseCon 2012)
Domain Specific Languages (EclipseCon 2012)
Sven Efftinge
 
MongoDB .local London 2019: Using Client Side Encryption in MongoDB 4.2
MongoDB .local London 2019: Using Client Side Encryption in MongoDB 4.2MongoDB .local London 2019: Using Client Side Encryption in MongoDB 4.2
MongoDB .local London 2019: Using Client Side Encryption in MongoDB 4.2
Lisa Roth, PMP
 
The Ring programming language version 1.3 book - Part 35 of 88
The Ring programming language version 1.3 book - Part 35 of 88The Ring programming language version 1.3 book - Part 35 of 88
The Ring programming language version 1.3 book - Part 35 of 88
Mahmoud Samir Fayed
 
Tuning for Performance: indexes & Queries
Tuning for Performance: indexes & QueriesTuning for Performance: indexes & Queries
Tuning for Performance: indexes & Queries
Keshav Murthy
 
Zen codingcheatsheet
Zen codingcheatsheetZen codingcheatsheet
Zen codingcheatsheet
goldenveizer
 
JLIFF: Where we are, and where we're going
JLIFF: Where we are, and where we're goingJLIFF: Where we are, and where we're going
JLIFF: Where we are, and where we're going
Chase Tingley
 
php string-part 2
php string-part 2php string-part 2
php string-part 2
monikadeshmane
 
Agile Testing Days 2018 - API Fundamentals - postman collection
Agile Testing Days 2018 - API Fundamentals - postman collectionAgile Testing Days 2018 - API Fundamentals - postman collection
Agile Testing Days 2018 - API Fundamentals - postman collection
JoEllen Carter
 
Schema design short
Schema design shortSchema design short
Schema design short
MongoDB
 
dojo.data, stores and widgets
dojo.data, stores and widgetsdojo.data, stores and widgets
dojo.data, stores and widgets
klipstein
 
Hypermedia API’s
Hypermedia API’s Hypermedia API’s
Hypermedia API’s
3camp
 
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHPPHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
iMasters
 
James elastic search
James   elastic searchJames   elastic search
James elastic search
LearningTech
 
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDBMongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
MongoDB.local DC 2018: Tutorial - Data Analytics with MongoDB
MongoDB
 
Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling
rogerbodamer
 
A Novel Approach to Scraping Websites - Rob Ousbey, MozCon 2020
A Novel Approach to Scraping Websites - Rob Ousbey, MozCon 2020A Novel Approach to Scraping Websites - Rob Ousbey, MozCon 2020
A Novel Approach to Scraping Websites - Rob Ousbey, MozCon 2020
Rob Ousbey
 
Terms of endearment - the ElasticSearch Query DSL explained
Terms of endearment - the ElasticSearch Query DSL explainedTerms of endearment - the ElasticSearch Query DSL explained
Terms of endearment - the ElasticSearch Query DSL explained
clintongormley
 
Coding for marketers
Coding for marketersCoding for marketers
Coding for marketers
Robin Lord
 
Domain Specific Languages (EclipseCon 2012)
Domain Specific Languages (EclipseCon 2012)Domain Specific Languages (EclipseCon 2012)
Domain Specific Languages (EclipseCon 2012)
Sven Efftinge
 
MongoDB .local London 2019: Using Client Side Encryption in MongoDB 4.2
MongoDB .local London 2019: Using Client Side Encryption in MongoDB 4.2MongoDB .local London 2019: Using Client Side Encryption in MongoDB 4.2
MongoDB .local London 2019: Using Client Side Encryption in MongoDB 4.2
Lisa Roth, PMP
 
The Ring programming language version 1.3 book - Part 35 of 88
The Ring programming language version 1.3 book - Part 35 of 88The Ring programming language version 1.3 book - Part 35 of 88
The Ring programming language version 1.3 book - Part 35 of 88
Mahmoud Samir Fayed
 
Tuning for Performance: indexes & Queries
Tuning for Performance: indexes & QueriesTuning for Performance: indexes & Queries
Tuning for Performance: indexes & Queries
Keshav Murthy
 
Zen codingcheatsheet
Zen codingcheatsheetZen codingcheatsheet
Zen codingcheatsheet
goldenveizer
 
JLIFF: Where we are, and where we're going
JLIFF: Where we are, and where we're goingJLIFF: Where we are, and where we're going
JLIFF: Where we are, and where we're going
Chase Tingley
 
Agile Testing Days 2018 - API Fundamentals - postman collection
Agile Testing Days 2018 - API Fundamentals - postman collectionAgile Testing Days 2018 - API Fundamentals - postman collection
Agile Testing Days 2018 - API Fundamentals - postman collection
JoEllen Carter
 

Viewers also liked (12)

Analyze and visualize non-relational data with DocumentDB + Power BI
Analyze and visualize non-relational data with DocumentDB + Power BIAnalyze and visualize non-relational data with DocumentDB + Power BI
Analyze and visualize non-relational data with DocumentDB + Power BI
Sriram Hariharan
 
Modeling JSON data for NoSQL document databases
Modeling JSON data for NoSQL document databasesModeling JSON data for NoSQL document databases
Modeling JSON data for NoSQL document databases
Ryan CrawCour
 
Developing Solutions with Azure DocumentDB
Developing Solutions with Azure DocumentDB Developing Solutions with Azure DocumentDB
Developing Solutions with Azure DocumentDB
WinWire Technologies Inc
 
Microsoft Azure DocumentDB - Global Azure Bootcamp 2016
Microsoft Azure DocumentDB -  Global Azure Bootcamp 2016Microsoft Azure DocumentDB -  Global Azure Bootcamp 2016
Microsoft Azure DocumentDB - Global Azure Bootcamp 2016
Sunny Sharma
 
Microsoft azure documentDB
Microsoft azure documentDBMicrosoft azure documentDB
Microsoft azure documentDB
Mohamed Elkhodary
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDB
Denny Lee
 
Azure DocumentDB Overview
Azure DocumentDB OverviewAzure DocumentDB Overview
Azure DocumentDB Overview
Andrew Liu
 
Azure DocumentDB
Azure DocumentDBAzure DocumentDB
Azure DocumentDB
Shiju Varghese
 
Data Modeling for NoSQL
Data Modeling for NoSQLData Modeling for NoSQL
Data Modeling for NoSQL
Tony Tam
 
5 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/25 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/2
Fabio Fumarola
 
Introducing DocumentDB
Introducing DocumentDB Introducing DocumentDB
Introducing DocumentDB
James Serra
 
NoSQL Now! NoSQL Architecture Patterns
NoSQL Now! NoSQL Architecture PatternsNoSQL Now! NoSQL Architecture Patterns
NoSQL Now! NoSQL Architecture Patterns
DATAVERSITY
 
Analyze and visualize non-relational data with DocumentDB + Power BI
Analyze and visualize non-relational data with DocumentDB + Power BIAnalyze and visualize non-relational data with DocumentDB + Power BI
Analyze and visualize non-relational data with DocumentDB + Power BI
Sriram Hariharan
 
Modeling JSON data for NoSQL document databases
Modeling JSON data for NoSQL document databasesModeling JSON data for NoSQL document databases
Modeling JSON data for NoSQL document databases
Ryan CrawCour
 
Developing Solutions with Azure DocumentDB
Developing Solutions with Azure DocumentDB Developing Solutions with Azure DocumentDB
Developing Solutions with Azure DocumentDB
WinWire Technologies Inc
 
Microsoft Azure DocumentDB - Global Azure Bootcamp 2016
Microsoft Azure DocumentDB -  Global Azure Bootcamp 2016Microsoft Azure DocumentDB -  Global Azure Bootcamp 2016
Microsoft Azure DocumentDB - Global Azure Bootcamp 2016
Sunny Sharma
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDB
Denny Lee
 
Azure DocumentDB Overview
Azure DocumentDB OverviewAzure DocumentDB Overview
Azure DocumentDB Overview
Andrew Liu
 
Data Modeling for NoSQL
Data Modeling for NoSQLData Modeling for NoSQL
Data Modeling for NoSQL
Tony Tam
 
5 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/25 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/2
Fabio Fumarola
 
Introducing DocumentDB
Introducing DocumentDB Introducing DocumentDB
Introducing DocumentDB
James Serra
 
NoSQL Now! NoSQL Architecture Patterns
NoSQL Now! NoSQL Architecture PatternsNoSQL Now! NoSQL Architecture Patterns
NoSQL Now! NoSQL Architecture Patterns
DATAVERSITY
 

Similar to Introduction to Azure DocumentDB (20)

Elasticsearch intro output
Elasticsearch intro outputElasticsearch intro output
Elasticsearch intro output
Tom Chen
 
Retail referencearchitecture productcatalog
Retail referencearchitecture productcatalogRetail referencearchitecture productcatalog
Retail referencearchitecture productcatalog
MongoDB
 
Webinar: From Relational Databases to MongoDB - What You Need to Know
Webinar: From Relational Databases to MongoDB - What You Need to KnowWebinar: From Relational Databases to MongoDB - What You Need to Know
Webinar: From Relational Databases to MongoDB - What You Need to Know
MongoDB
 
Elastic tire demo
Elastic tire demoElastic tire demo
Elastic tire demo
Scott Hamilton
 
MongoDB Meetup
MongoDB MeetupMongoDB Meetup
MongoDB Meetup
Maxime Beugnet
 
Abusing text/template for data transformation
Abusing text/template for data transformationAbusing text/template for data transformation
Abusing text/template for data transformation
Arnaud Porterie
 
Analytics with MongoDB Aggregation Framework and Hadoop Connector
Analytics with MongoDB Aggregation Framework and Hadoop ConnectorAnalytics with MongoDB Aggregation Framework and Hadoop Connector
Analytics with MongoDB Aggregation Framework and Hadoop Connector
Henrik Ingo
 
Polyglot Persistence
Polyglot PersistencePolyglot Persistence
Polyglot Persistence
Bryan Reinero
 
Ams adapters
Ams adaptersAms adapters
Ams adapters
Bruno Alló Bacarini
 
SDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - JapanSDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - Japan
tristansokol
 
MongoDB Europe 2016 - Graph Operations with MongoDB
MongoDB Europe 2016 - Graph Operations with MongoDBMongoDB Europe 2016 - Graph Operations with MongoDB
MongoDB Europe 2016 - Graph Operations with MongoDB
MongoDB
 
Avro, la puissance du binaire, la souplesse du JSON
Avro, la puissance du binaire, la souplesse du JSONAvro, la puissance du binaire, la souplesse du JSON
Avro, la puissance du binaire, la souplesse du JSON
Alexandre Victoor
 
Elastic search and Symfony3 - A practical approach
Elastic search and Symfony3 - A practical approachElastic search and Symfony3 - A practical approach
Elastic search and Symfony3 - A practical approach
SymfonyMu
 
Example-driven Web API Specification Discovery
Example-driven Web API Specification DiscoveryExample-driven Web API Specification Discovery
Example-driven Web API Specification Discovery
Javier Canovas
 
Automatic discovery of Web API Specifications: an example-driven approach
Automatic discovery of Web API Specifications: an example-driven approachAutomatic discovery of Web API Specifications: an example-driven approach
Automatic discovery of Web API Specifications: an example-driven approach
Jordi Cabot
 
Simplifying & accelerating application development with MongoDB's intelligent...
Simplifying & accelerating application development with MongoDB's intelligent...Simplifying & accelerating application development with MongoDB's intelligent...
Simplifying & accelerating application development with MongoDB's intelligent...
Maxime Beugnet
 
Real-time search in Drupal with Elasticsearch @Moldcamp
Real-time search in Drupal with Elasticsearch @MoldcampReal-time search in Drupal with Elasticsearch @Moldcamp
Real-time search in Drupal with Elasticsearch @Moldcamp
Alexei Gorobets
 
Eagle6 mongo dc revised
Eagle6 mongo dc revisedEagle6 mongo dc revised
Eagle6 mongo dc revised
MongoDB
 
Eagle6 Enterprise Situational Awareness
Eagle6 Enterprise Situational AwarenessEagle6 Enterprise Situational Awareness
Eagle6 Enterprise Situational Awareness
MongoDB
 
Application development with Oracle NoSQL Database 3.0
Application development with Oracle NoSQL Database 3.0Application development with Oracle NoSQL Database 3.0
Application development with Oracle NoSQL Database 3.0
Anuj Sahni
 
Elasticsearch intro output
Elasticsearch intro outputElasticsearch intro output
Elasticsearch intro output
Tom Chen
 
Retail referencearchitecture productcatalog
Retail referencearchitecture productcatalogRetail referencearchitecture productcatalog
Retail referencearchitecture productcatalog
MongoDB
 
Webinar: From Relational Databases to MongoDB - What You Need to Know
Webinar: From Relational Databases to MongoDB - What You Need to KnowWebinar: From Relational Databases to MongoDB - What You Need to Know
Webinar: From Relational Databases to MongoDB - What You Need to Know
MongoDB
 
Abusing text/template for data transformation
Abusing text/template for data transformationAbusing text/template for data transformation
Abusing text/template for data transformation
Arnaud Porterie
 
Analytics with MongoDB Aggregation Framework and Hadoop Connector
Analytics with MongoDB Aggregation Framework and Hadoop ConnectorAnalytics with MongoDB Aggregation Framework and Hadoop Connector
Analytics with MongoDB Aggregation Framework and Hadoop Connector
Henrik Ingo
 
Polyglot Persistence
Polyglot PersistencePolyglot Persistence
Polyglot Persistence
Bryan Reinero
 
SDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - JapanSDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - Japan
tristansokol
 
MongoDB Europe 2016 - Graph Operations with MongoDB
MongoDB Europe 2016 - Graph Operations with MongoDBMongoDB Europe 2016 - Graph Operations with MongoDB
MongoDB Europe 2016 - Graph Operations with MongoDB
MongoDB
 
Avro, la puissance du binaire, la souplesse du JSON
Avro, la puissance du binaire, la souplesse du JSONAvro, la puissance du binaire, la souplesse du JSON
Avro, la puissance du binaire, la souplesse du JSON
Alexandre Victoor
 
Elastic search and Symfony3 - A practical approach
Elastic search and Symfony3 - A practical approachElastic search and Symfony3 - A practical approach
Elastic search and Symfony3 - A practical approach
SymfonyMu
 
Example-driven Web API Specification Discovery
Example-driven Web API Specification DiscoveryExample-driven Web API Specification Discovery
Example-driven Web API Specification Discovery
Javier Canovas
 
Automatic discovery of Web API Specifications: an example-driven approach
Automatic discovery of Web API Specifications: an example-driven approachAutomatic discovery of Web API Specifications: an example-driven approach
Automatic discovery of Web API Specifications: an example-driven approach
Jordi Cabot
 
Simplifying & accelerating application development with MongoDB's intelligent...
Simplifying & accelerating application development with MongoDB's intelligent...Simplifying & accelerating application development with MongoDB's intelligent...
Simplifying & accelerating application development with MongoDB's intelligent...
Maxime Beugnet
 
Real-time search in Drupal with Elasticsearch @Moldcamp
Real-time search in Drupal with Elasticsearch @MoldcampReal-time search in Drupal with Elasticsearch @Moldcamp
Real-time search in Drupal with Elasticsearch @Moldcamp
Alexei Gorobets
 
Eagle6 mongo dc revised
Eagle6 mongo dc revisedEagle6 mongo dc revised
Eagle6 mongo dc revised
MongoDB
 
Eagle6 Enterprise Situational Awareness
Eagle6 Enterprise Situational AwarenessEagle6 Enterprise Situational Awareness
Eagle6 Enterprise Situational Awareness
MongoDB
 
Application development with Oracle NoSQL Database 3.0
Application development with Oracle NoSQL Database 3.0Application development with Oracle NoSQL Database 3.0
Application development with Oracle NoSQL Database 3.0
Anuj Sahni
 

Recently uploaded (20)

AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 

Introduction to Azure DocumentDB

Editor's Notes