SlideShare ist ein Scribd-Unternehmen logo
1 von 84
Downloaden Sie, um offline zu lesen
Microsoft Azure DocumentDB
SATO Naoki (@satonaoki)
Azure Technologist, Microsoft Japan
SATO Naoki (さとうなおき)
• Twitter @satonaoki
• https://satonaoki.wordpress.com/
• Azure Technologist/Evangelist at Microsoft (2010-)
• Ex-Oracle (Java Evangelist/Engineer)
• Writer/Translation Supervisor/Translator
• 「RDB技術者のためのNoSQLガイド」(共著) – 2016/02/26 発売
• 「マイクロサービスアーキテクチャ」(監訳) – 2016/02/25 発売
• 「グラフデータベース」(監訳) - 2015/03/25発売
The Azure Platform Strategy
Public, Global, Shared DatacentersMicrosoft Azure Stack
& Cloud Platform System
Security&
Management
SaaS
(Software as a Service)
O365, CRM, VSO etc…
+
3rd Party SaaS Solutions
Public
Cloud
Platform
Hybrid
Operations
Security&
Management
Hybrid
Operations
Hyper scale Infrastructure is the enabler
30 Regions Worldwide, 22 Generally Available…
 100+ datacenters
 Top 3 networks in the world
 2.5x AWS, 7x Google DC Regions
 G Series – Largest VM in World, 32 cores, 448GB Ram, SSD…
Operational
Announced/Not Operational
Central US
Iowa
West US
California
East US
Virginia
US Gov
Virginia
North Central US
Illinois
US Gov
Iowa
South Central US
Texas
Brazil South
Sao Paulo State
West Europe
Netherlands
China North *
Beijing
China South *
Shanghai
Japan East
Tokyo, Saitama
Japan West
Osaka
India South
Chennai
East Asia
Hong Kong
SE Asia
Singapore
Australia South East
Victoria
Australia East
New South Wales
India Central
Pune
Canada East
Quebec City
Canada Central
Toronto
India West
Mumbai
Germany North East **
Magdeburg
Germany Central **
Frankfurt
North Europe
Ireland
East US 2
Virginia
United Kingdom
RegionsUnited Kingdom
Regions
US DoD East
TBD
US DoD West
TBD
* Operated by 21Vianet ** Data Stewardship by Deutsche Telekom
1 Trillion
Messages delivered every
month with Event Hubs
100,000
New Azure customer
subscriptions/month
20Million
SQL database hours
used every day
>5Trillion
Storage transactions
every month
60Billion
Hits to Websites run on
Azure Web App Service
425Million
Azure Active
Directory Users
Azure Momentum
57%
Of Fortune 500 Companies
use Microsoft Azure
>50Trillion
Storage objects
in Azure
1.4 Million
SQL Databases Deployed
In Azure
“Microsoft is
growing its cloud
revenue faster than
Amazon” – Business
Insider 2016
AWS revenue grew about
69% but Microsoft Azure
revenue grew by 127%
Applications
Clients
Infrastructure
Management
Databases &
Middleware
App Frameworks
& Tools
DevOps
PaaS &
DevOps
Platform Services
Infrastructure Services
Web Apps
Infrastructure
Mobile
Backends
API
Management
API App
Infrastructure
Business Process
Automation
Push
Notifications
Content
Delivery
Network (CDN)
Live & OD
Media
Streaming
B2B
Integration
Hybrid
Connections
Pub/Sub
Queuing
Simple
Queuing
Hybrid
Operations
Server Data
Backup
Hybrid/Intelligent
Data Backup
Disaster
Recovery
Bulk Data Import
And Export
Relational
SQL Database
Document
Database
Service
Distributed
In-Memory
Cache
Search
Simple
Key/Value
Store
Data
Warehouse Directory
Health Monitoring
Privileged
Identity
Management
Operational
Analytics
Stateless
Compute
Scheduled
Compute
Jobs
Virtual App
Streaming
Distributed
Compute
Development
Tools
Application
Instrumentation
Software
Development
Kits
Software Lifecycle
Management
Domain Join &
Policy Management
Big Data
Analytics
Predictive
Analytics
Data Stream
Analytics
Data
Pipelines
Device Data
Collection
Mobile
Analytics
Big Data
Storage
IoT Device
Management
Data Source
Management
Security &
Management
User/Group
Directory Store
Multi-Factor
Authentication
Scheduled Service
Management
Service Creation
& Configuration
Encryption Key
Store
Software/Solution
Marketplace
Pre-Build VM
Images
Identity Sign-Up
and sign-in
Task
Scheduler
Not only SQL vs SQL overview
SQL Server Database Engine
Azure SQL Database
Relational (SQL)Non-relational (NoSQL)
Analytical
Azure managed data service
Operational
Microsoft Analytics Platform System
Fast, predictable performance
Tunable consistency
Elastic scale
DocumentDB overview
A NoSQL document database-as-a-service, fully managed by Microsoft Azure.
For cloud-designed apps when query over schema-free data; reliable and predictable performance; and rapid development are key.
First of its kind database service to offer native support for JavaScript, SQL query and transactions over JSON documents.
Perfect for cloud architects and developers who need an enterprise-ready NoSQL document database.
Query JSON data with no secondary
indices
Native JavaScript transactional
processing
Familiar SQL-based query language
Build with familiar tools – REST, JSON,
JavaScript
Easy to start and fully-managed
Enterprise-grade Azure platform
DocumentDB
A document store Collections
Document 1 Document 2
Document 3 Document 4
DocumentDB
Application
{
"name": "John",
"country": "Canada",
"age": 43,
"lastUse": "March 4, 2014"
}
{
"name": "Lou",
"country": "Australia",
"age": 51,
"firstUse": "May 8, 2013"
}
{
"docCount": 3,
"last": "May 1, 2014"
}
{
"name": "Eva",
"country": "Germany",
"age": 25
}
JSON
Application example
Azure Websites
Autoscale enabled
Auth: Facebook,
Twitter, Microsoft,
User/password
DocumentDB
Scale via collections
Product catalog
Community posts
SQL Database
Scale via Elastic Scale
Product orders
Media Services +
Blob Storage
Uploaded community videos
Azure WebJob (Search)
Pulls data from DocumentDB to
populate search (search indexer is now
available)
Search
Scale via search units
Product catalog
Community posts
Azure Redis Cache
Product catalog
Value proposition over MongoDB
• -
Capability Advantage
Managed service Spin up on demand with no setup and availability guarantee of 99.95%. Smooth
linear price curve without VM step functions. Integration with other managed Azure
services like HDInsight and Search.
SQL query language Leverage SQL experience and .NET LINQ
ACID transaction control
through stored procedures
Simpler programing model versus using state variables
JavaScript triggers Simple programing model for running JavaScript code as part of
insert/update/delete actions
Greater consistency control Four levels provide more options for consistency, availability, and performance
requirements
Access rights down to document
level
Greater control for access of all documents and attachments within collections
Open API with RESTful HTTP and
standards based
Open standards protocol for accessing and managing DocumentDB databases. Uses
JSON standard – no mapping of BSON to JSON needed
DocumentDB case studies
Customer Case study Quote Industry
Breeze Leading Integrator Gives
Multinational Firms Global
Insight in Minutes with Flexible
Cloud Technologies
“In terms of technology, we find that we work with Azure DocumentDB
more intuitively than we do with something like MongoDB. We also
estimate that we saved approximately 70 percent in implementation
costs.”
Mick Badran, Breeze, Chief Technology Officer
Professional
Services
News
Republic
Adding intelligence to the news
to provide information with
purpose for engaged citizens
"Many people read the news passively, but we have built micro
personalization and macro interactivity into our app with Azure
DocumentDB. This is definitely a great way to get more people using the
app and keep existing users interested.“
Marc Tonnes, News Republic, Database Administrator
Media & Cable
Telecommunicatio
ns
SGS
International
For consistent color across the
globe, major brands turn to
SGS. And SGS turns to Azure.
“The teams no longer worry about having to coordinate their work. And
we don’t have to manage the hardware—Microsoft does that in the cloud
and, given their SLAs, this makes perfect sense.”
Shane Davis, SGS International, Senior Director
Retail and
Consumer Goods
Telenor Global leader Telenor uses the
cloud to move with the speed
of a startup
“With Azure DocumentDB, we didn’t have to say ‘no’ to the business, and
we weren’t a bottleneck to launching the promotion—in fact, we came in
ahead of schedule.”
Andreas Helland, Telenor, Mobility Architect
Telecommunicatio
ns
XOMNI The store of the future runs on
speedy search and the easy
flow of data
“But we can’t run our highest resources all the time. With DocumentDB
and Azure Search, we can scale dynamically to meet spikes in demand
and pay only for what we consume.”
Daron Yöndem, XOMNI, Chief Technology Officer
Professional
Services
DocumentDB at Microsoft
over 425 million unique users
store 20TB of JSON document data
under 15ms writes and single digit ms reads
store for 40+ app / device combinations
available globally to serve all markets
user data store
Pricing for General
Availability
Standard pricing tier with hourly billing
S1, S2 and S3 units differentiated by
performance (good, better, best)
Performance levels assigned during
collection (data partition) creation
Performance levels can be adjusted based
on application needs
Each collection includes 10GB of SSD
storage
Limit of 100 collections (1 TB) for each
account – can be lifted as needed
What does DocumentDB cost?
The basics
Resource model
Entities addressable by logical URI
Partitioned for scale out
Replicated for high availability
Entities represented as JSON
Accounts scale out through addition of capacity
units
Interaction model
RESTful interaction over HTTP
HTTP and TCP connectivity
Standard HTTP verbs and semantics
Development
.Net, Node, Python, Java and JavaScript clients
SQL for query expression, .Net LINQ
JavaScript for server-side app logic
101
010
DocumentDB account Databases
Users
Permissions
Collections Documents Attachments
Stored procedures
Triggers
User-defined functions
your
Documents
here
{ }
{ }
JS
JS
JS
Collections != tables
Unit of partitioning
Transaction boundary
No enforced schema,
flexible
Queried or updated stay
together in one collection -
Size of 10 Gb
DocumentDB collections
Collections Documents
101
010
Attachments
Stored procedures
Triggers
User-defined functions
your
Documents
here
JS
JS
JS
JSON
Intersection of most modern type
systems
JSON values
Self-describable, self-contained
values
Do not have behavior,
polymorphism, inheritance, access,
and visibility rules”
Are trivially serialized to/from text
DocumentDB makes a deep
commitment to JSON for storage,
indexing, query, and JavaScript
execution
DocumentDB JSON documents
{
“locations”:
[
{“country”: “Germany”, “city”: “Berlin”},
{“country”: “France”, “city”: “Paris”},
],
“headquarter”: “Belgium”,
“exports”:[{“city”; “Moscow”},{“city: ”Athens”}]
};
JSON document as tree
Locations Headquarter
Belgium
Country City Country City
Germany Berlin France Paris
Exports
CityCity
Moscow Athens
0 10 1
DocumentDB JSON documents
JavaScript Object
Literals
JSON
value
object
array
string
numbers
object
array
true
false
null
string value
value
Data modeling with RDBMS
Doing it the RDBMS way: normalize,
normalize, normalize…
Joins needed to query for Person with
related tables
SELECT p.name, p.lastName, p.age,
cd.detail , cdt.type, a.street,
a.city,
a.state, a.zip
FROM Person p
INNER JOIN Address a
ON a.person_id = p.id
INNER JOIN ContactDetail cd
ON cd.person_id = p.id
INNER JOIN ContactDetailType cdt
ON cd.type_id = cdt.id
Updating Person, ContactDetail, and
Address requires updates to many tables
{
id_: <ObjectId1>,
username: "123xyz",
contact:
{
phone: "555-121-1212",
email: "xyx@abc.com"
},
access:
{
level: 5,
group: "dev"
}
}
Applications may need to issue
fewer queries and updates
Generally, use embedded data
models when:
There are “contains” relationships
between entities
There are one-to-few relationships
between entities
Embedded data changes infrequently
Embedded data won’t grow without
bound
Embedded data is integral to data in a
document
Denormalizing typically provides
better read performance
Data modeling with denormalization
In general, use normalized data
models when:
Write performance for duplication is
more important
Representing one-to-many relationships
Representing many-to-many
relationships
Related data changes frequently
Provides more flexibility than
embedding
More round trips
Normalizing typically provides
better write performance
Data modeling with referencing
{
_id: <OnjectID1>,
username: "123xyz"
}
{
_id: <ObjectID2>,
user_id: <objectId1>,
phone: "555-121-1212",
email: "abc@cyx.com"
}
{
_id: <ObjectID3>,
user_id: <objectId1>,
level: 5,
group: “dev"
}
Create a new account
Start from the Azure Preview
portal to create a
DocumentDB service under
your Azure subscription.
Provide the service name
Provide a name for your
service that will be used as
part of the endpoint URI.
You can also define resource
groups, capacity units, and
service location.
Complete provisioning
The Azure portal provides
notifications to let you know
the provisioning status.
DocumentDB account blade
The account blade provides
you with essential
information about your
service.
Check out DocumentDB
Quick Start by clicking on All
settings in the Essentials
section of the blade.
Viewing service keys
Click All settings to display
the Keys and Read-Only
Keys blades.
Use the URI and service keys
in your application for the
endpoint and authentication.
Like other services,
DocumentDB includes
primary and secondary keys
for rolling key updates.
Rich query over
JSON data
No forced, pre-defined indices allow for
differentiated queryingBuild modern, scalable apps with robust
transactional querying and data
processing on JSON documents. Unlike
other document database options,
DocumentDB provides a full-featured
NoSQL document database service with
transactional processing over multiple
documents using a SQL-like query
grammar and native JavaScript support.
-- Nested lookup against index
SELECT B.Author
FROM Books B
WHERE B.Author.Name = "Leo Tolstoy"
-- Transformation, Filters, Array access
SELECT { Name: B.Title, Author: B.Author.Name }
FROM Books B
WHERE B.Price > 10 AND B.Language[0] = "English"
-- Joins, User Defined Functions (UDF)
SELECT CalculateRegionalTax(B.Price, "USA", "WA")
FROM Books B
JOIN L IN B.Languages
WHERE L.Language = "Russian"
Query over heterogeneous
documents
Query arbitrary paths, properties, and values
without specifying secondary indexes or
indexing hints
Execute queries with consistent results in the
face of sustained writes
Query through fluent language integration,
including LINQ for .NET developers and a
“document oriented“ SQL grammar for
traditional SQL developers
Extend query execution through application-
supplied JavaScript UDFs
Supported SQL features; predicates, iterations
(arrays), sub-queries, logical operators, UDFs,
intra-document JOINs, or JSON transforms
SQL grammar examples
Simple predicate query
SQL SELECT *
FROM company C
WHERE C.headquarter = 'Belgium'
Results [ {
"locations": [{ "country": "Germany", "city": "Berlin" },{ "country": "France", "city": "Paris" }],
"headquarter": "Belgium",
"exports": [{ "city": "Moscow" },{ "city": "Athens" } ]
}]
Var company1= { “locations” : [
{“country”: “Germany”, “city”: “Berlin”},
{“country”: “France”, “city”: “Paris”},
], “headquarter”: “Belgium”, “exports”: [
{ “city”; “Moscow” },{ “city: ”Athens” }]
};
Var company2= { “locations” :
[{“country”: “Germany”, “city”: “Bonn”,
revenue”: 200 } ], “headquarter”: “Italy”,
“exports”: [ { “city”; “Berlin” },{ “dealers”:
[{“name”: “Hans”}] }, {city”: ”Athens” }]
};
Locations Headquarter Exports
City CityDealers
Germany Bonn 200 Berlin Name Athens
0 Italy 0 1
Hans
Country City Revenue
Locations Headquarter
Belgium
Country City Country City
Germany Berlin France Paris
Exports
CityCity
Moscow Athens
0 10 1
Querying array with predicates
SQL SELECT location.country FROM location IN company.locations
WHERE location.city = 'Berlin'
Results
[
{"country": "Germany"}
]
Var company1= { “locations” : [
{“country”: “Germany”, “city”: “Berlin”},
{“country”: “France”, “city”: “Paris”},
], “headquarter”: “Belgium”, “exports”: [
{ “city”; “Moscow” },{ “city: ”Athens” }]
};
Var company2= { “locations” :
[{“country”: “Germany”, “city”: “Bonn”,
revenue”: 200 } ], “headquarter”: “Italy”,
“exports”: [ { “city”; “Berlin” },{ “dealers”:
[{“name”: “Hans”}] }, {city”: ”Athens” }]
};
Locations Headquarter Exports
City CityDealers
Germany Bonn 200 Berlin Name Athens
0 Italy 0 1
Hans
Country City Revenue
Locations Headquarter
Belgium
Country City Country City
Germany Berlin France Paris
Exports
CityCity
Moscow Athens
0 10 1
DocumentDB query with logical operators
SQL SELECT location.country
FROM location IN company.locations
WHERE location.city='Bonn' AND location.revenue >100
Results
[
{"country": "Germany"}
]
Var company1= { “locations” : [
{“country”: “Germany”, “city”: “Berlin”},
{“country”: “France”, “city”: “Paris”},
], “headquarter”: “Belgium”, “exports”: [
{ “city”; “Moscow” },{ “city: ”Athens” }]
};
Var company2= { “locations” :
[{“country”: “Germany”, “city”: “Bonn”,
revenue”: 200 } ], “headquarter”: “Italy”,
“exports”: [ { “city”; “Berlin” },{ “dealers”:
[{“name”: “Hans”}] }, {city”: ”Athens” }]
};
Locations Headquarter Exports
City CityDealers
Germany Bonn 200 Berlin Name Athens
0 Italy 0 1
Hans
Country City Revenue
Locations Headquarter
Belgium
Country City Country City
Germany Berlin France Paris
Exports
CityCity
Moscow Athens
0 10 1
SQL SELECT GermanTax(location) FROM location in company.locations
Results [
{"country": "Germany", "city":"Bonn", "tax":50},
{"country": "Germany", "city":"Berlin", "tax":0},
]
Query with UDFs
function GermanTax(income) {
if(income < 1000) return income * 0.1;
else if(income < 10000) return income * 0.2;
return income * 0.4;
}
Var company1= { “locations” : [
{“country”: “Germany”, “city”: “Berlin”},
{“country”: “France”, “city”: “Paris”},
], “headquarter”: “Belgium”, “exports”: [
{ “city”; “Moscow” },{ “city: ”Athens” }]
};
Var company2= { “locations” :
[{“country”: “Germany”, “city”: “Bonn”,
revenue”: 200 } ], “headquarter”: “Italy”,
“exports”: [ { “city”; “Berlin” },{ “dealers”:
[{“name”: “Hans”}] }, {city”: ”Athens” }]
};
Locations Headquarter Exports
City CityDealers
Germany Bonn 200 Berlin Name Athens
0 Italy 0 1
Hans
Country City Revenue
Locations Headquarter
Belgium
Country City Country City
Germany Berlin France Paris
Exports
CityCity
Moscow Athens
0 10 1
Query performance – Pagination
When performing a bulk read of documents or issuing a query, the server
returns results in a segmented fashion if the result set is too large. In order
to reduce round-trips, clients may override the page size.
Bounded execution time of 5 seconds per batch
Default page size is 100 (server returns results in chunks of at most 100)
Desired page size can be specified:
Use x-ms-max-item-count request header
Use FeedOptions.MaxItemCount property
IQueryable<Book>
queryable = client.CreateDocumentQuery<Book>(
collectionSelfLink,
new SqlQuerySpec
{
QueryText = "SELECT * FROM books b WHERE
(b.Author.Name = @name)",
Parameters = new SqlParameterCollection()
{
new SqlParameter( "@name",
"Herman Melville")
}
}
);
.NET example
SQL parameters in DocumentDB use
the familiar @ notation borrowed
from T-SQL.
Parameter values can be any valid
JSON values (strings, numbers,
Booleans, null, even arrays or nested
JSON).
Since DocumentDB is schema-less,
parameters are not validated against
any type.
Just as easily supply additional
parameters by adding additional
SqlParameters to the
SqlParameterCollection.
SQL parameterization in DocumentDB
POST
https://contosomarketing.documents.azure.com/dbs/XP0mAA==/co
lls/XP0mAJ3H-AA=/docs
HTTP/1.1 x-ms-documentdb-isquery: True
x-ms-date: Mon, 18 Aug 2014 13:05:49 GMT
authorization:
type%3dmaster%26ver%3d1.0%26sig%3dkOU%2bBn2vkvIlHypfE8AA5ful
pn8zKjLwdrxBqyg0YGQ%3d
x-ms-version: 2014-08-21
Accept: application/json
Content-Type: application/query+json
Host: contosomarketing.documents.azure.com
Content-Length: 50
{
"query": "SELECT * FROM books b WHERE
(b.Author.Name = @name)",
"parameters":
[
{
"name": "@name",
"value": "Herman Melville“
}
]
}
REST API example
To use parameterized queries, specify
the Content-Type Header as
application/query+json and the
query as JSON in the body.
SQL parameterization with REST
http://www.documentdb.com/sql/demo
Go to
http://www.documentdb.com/sql/demo
Test out sample queries or
write your own against the
dataset
Using DocumentDB Query Playground
// User Defined Function
function tax(doc) {
// Use simple formula to compute the tax: use income multiplied
by factor based on country of headquarters.
var factor =
doc.headquarters == "USA" ? 0.35 :
doc.headquarters == "Germany" ? 0.3 :
doc.headquarters == "Russia" ? 0.2 :
0;
// Check for bad data.
if (factor == 0)
{
throw new Error("Unsupported country: " +
doc.headquarters);
}
// Use simple formula and return.
return doc.income * factor;
}
// Execute UDF with additional condition
var results = client.CreateDocumentQuery<dynamic>(colSelfLink,
string.Format("SELECT r.name AS company, Tax(r) AS tax FROM root
r WHERE r.type='Company'", udfId));
The complexity of a query impacts the
request units consumed for an
operation:
Number of predicates
In general, more predicates result in a larger
request charge.
Additional predicates can help if they result in
narrowing the overall result set.
Use of user-defined functions (UDFs)
To take advantage of indexing, try and have at
least one filter against an indexed property when
leveraging a UDF.
Tip: For all operations, the cost of any given
request can be inferred by inspecting the x-
ms-request-charge response header.
Query with user-defined function
JavaScript transactions
Transactionally
process multiple
documents with
application-defined
stored procedures
and triggers
JavaScript as the procedural language
Language integrated
Execution wrapped in an implicit transaction
Preregistered and scoped to a collection
Performed with ACID guarantees
Triggers invoked as pre- or post-operations
Stored
procedures
Triggers
JS
client.executeStoredProcedureAsync
("procs/1234", "MasterChief", "SolidSnake")
.then(function (response) {
console.log(“success!");
}, function (err) {
console.log("Failed to swap!", error);
}
);
Stored procedures and triggers
Familiar programming model constructs for executing
application logic
Registered as named, URI addressable, durable
resources
Scoped to a DocumentDB collection
JavaScript as a procedural language to express
business logic
Language integration
JavaScript throw statement aborts the transaction
Execution
JavaScript runtime is hosted on each replica
Pre-compiled on registration
Entire procedure is wrapped in an implicit database
transaction
Execution is fully resource governed and sandboxed
JavaScript transactions
function(playerId1, playerId2) {
var collection = getContext().getCollection();
var playersToSwap = collection.filterDocuments(function (document) {
return (document.id == playerId1 || document.id == playerId2);
});
var player1 = playersToSwap[0], player2 = playersToSwap[1];
var player1ItemTemp = player1.item;
player1.item = player2.item;
player2.item = player1ItemTemp;
collection.replaceDocument(player1)
.then(function() { return collection.replaceDocument(player2); })
.fail(function(error){ throw 'Unable to update players, abort';
});
}
Client
Database
JavaScript transaction tips
Understand transaction costs, and mind the 5 second rule: batched execution with
continuation
Test with expected data volumes
Develop a strategy for versioning and code management
Document myDoc = await
client.ReadDocumentAsync(documentLink, new
RequestOptions { ConsistencyLevel =
ConsistencyLevel.Eventual });
DocumentDB currently offers
4 consistency levels:
Strong: Guarantees that a write is only visible
after it is committed durably by the majority
quorum of replicas and reads are always
acknowledged by the majority read quorum
Session: Provides predictable read consistency
for a session while offering the low latency
writes; reads are also low latency as a read will
be served by a single replica
Bounded Staleness: Bounded Staleness
consistency guarantees the total order of
propagation of writes but reads may lag writes
by N seconds or operations (configurable)
Eventual: Eventual consistency is the weakest
form of consistency wherein a client may get the
values which are older than the ones it had seen
before, over time
Consistency levels
Lower consistency level on read operation
The choice of consistency level
has performance implications for
both read and write operations:
Write operations
Consistency level changes impact request latency
Stronger consistency levels result in higher write
latencies
Read operations
Consistency level changes impact throughput
Weaker consistency levels result in higher read
throughput
Tip: You can lower the consistency level of a
specific read or query request by specifying [x-
ms-consistency-level] request header or by using
RequestOptions in the SDKs.
Consistency levels and performance
Query consistency levels
Data consistency policy
Strong Bounded
Staleness
Session Eventual
Indexing
mode
Lazy Eventual Eventual Eventual Eventual
Consistent Strong Bounded
Staleness
Session Eventual
DocumentDB lets you trade off latency vs. consistency for direct reads and queries
Indexing
The “write” index for consistent
queries
Highly concurrent, lock free, log structured
indexing technology developed with
Microsoft Research
Optimized for SSD
Resource governed for tenant isolation
Automatic indexing of JSON
documents without requiring schema
or secondary indices, but
configurable via:
Modes
Policies
Paths
Types
value
object
array
string
numbers
object
array
true
false
null
string value
value
Indexing modes
Consistent
Default mode
Index updated synchronously on
writes
Lazy
Useful for bulk ingestion scenarios
Indexing policies
Automatic
Default
Manual
Can choose to index documents via
RequestOptions
IndexingDirective =
IndexingDirective.Include
Can read non-indexed documents via
selflink
Set indexing mode
Set indexing policy
var collection = new DocumentCollection
{
Id = “lazyCollection”
};
collection.IndexingPolicy.IndexingMode =
IndexingMode.Lazy;
collection = await
client.CreateDocumentCollectionAsync(databaseLink, collection);
Indexing – Modes and policies
var collection = new DocumentCollection
{
Id = “manualCollection”
};
collection.IndexingPolicy.Automatic = false;
collection = await
client.CreateDocumentCollectionAsync(databaseLink, collection);
Setting paths, types, and precision
var collection = new DocumentCollection
{
Id = “Orders”
};
collection.IndexingPolicy.IncludedPaths.Add(new
IndexingPath
{
IndexType = IndexType.Hash,
Path = "/",
});
collection.IndexingPolicy.IncludedPaths.Add(new
IndexingPath
{
IndexType = IndexType.Range,
Path = @"/""shippedTimestamp""/?",
NumericPrecision = 7
});
collection.IndexingPolicy.ExcludedPaths.Add("/"metaData"/*");
collection = await
client.CreateDocumentCollectionAsync(databaseLink, collection);
Index paths
Included
Excluded
Index types
Hash
Supported for strings and numbers
Optimized for equality matches
Range
Supported for numbers
Optimized for comparison queries
Index precision
String precision
Default is 3
Numeric precision
Default is 3
Increase for larger number fields (epoch
timestamps)
Indexing – Paths and types
Query and indexing tips
Consider query needs and index policies (index policies are
immutable, for now)
Understand query costs and limits, and avoid scans
Pre-aggregate where possible
Security model
Master key
Access control on resources
User operations
Permission operations
Code execution
Reliable and
predictable
performance
Defined throughput levels that scale linearly with
application needs
DocumentDB is born in the cloud to
achieve fast, predictable performance
with reserved resources to deliver on
your throughput needs. Benefit from
reliable, tunable consistency to increase
performance based on application
needs.
Monitor an account
How to:
View performance metrics for a DocumentDB account
Customize performance metric views for a DocumentDB account
Create side-by-side performance metric charts
View usage metrics for a DocumentDB account
Set up performance metric alerts for a DocumentDB account
In the Azure Preview portal, click
Browse, DocumentDB Accounts, and
then click the name of the
DocumentDB account for which you
would like to view performance
metrics.
Within the Monitoring lens you can,
by default, see:
Total requests for the current day
Average requests per second for the
current day
View performance metrics
View total requests
To open a detailed Metric blade, click
Total Requests or Average Requests per
Second.
The Metric blade shows you details about
the metrics you have selected. At the top
of the blade is a graph and below that a
table which shows aggregation values of
the selected metrics, such as average,
minimum, and maximum. The metric
blade also shows the list of alerts which
have been defined, filtered to the metrics
that appear on the current metric blade
(that way, if you have a number of alerts,
you'll only see the relevant ones
presented here).
To customize the metrics
that display in a particular
part, right-click the metric
chart, and then select Edit
Chart.
Customize performance metric views
On the Edit Chart blade,
there are options to modify
the metrics that display in
the part, as well as their time
range.
Customize performance metric views
Customize performance metric views
To change the metrics
displayed in the part, simply
select or clear the available
performance metrics, and then
click Save at the bottom of the
blade.
To change the time range,
choose a different range (for
example, Past Hour), and then
click Save at the bottom of the
blade.
Create side-by-side performance metric charts
The Azure Preview portal
allows you to create side-by-
side metric charts.
Right-click on the chart you
want to clone or modify and
then click Customize.
Create side-by-side performance metric charts
Click Clone on the menu to
copy the part, and then click
Done customizing.
Create side-by-side performance metric charts
You may now treat this part as
any other metric part,
customizing the metrics and
time range displayed in the
part. This allows you to see
two different metrics charts
side-by-side at the same time.
View usage metrics
In the Azure Preview portal, click
Browse, DocumentDB Accounts, and
then click the name of the
DocumentDB account for which you
would like to see usage metrics.
Within the Usage lens you can view
the following by default:
Estimated cost
Storage consumed within the account
Maximum available storage of the
account
User information
Attachment usage
Set up performance metric alerts
In the Azure Preview portal,
click Browse, DocumentDB
Accounts, and then click the
name of the DocumentDB
account for which you would
like to set up performance
metric alerts.
Within the Operations lens,
click the Alert rules part.
Set up performance metric alerts
In the Alert rules blade, click
Add Alert.
Set up performance metric alerts
In the Add an alert rule blade,
specify:
The name of the alert rule you are
setting up.
A description of the new alert rule.
The metric for the alert rule.
The condition, threshold, and period
that determine when the alert
activates. For example, a server error
count greater than 5 over the last 15
minutes.
Whether the service administrator and
co-administrators are emailed when
the alert fires.
Additional email addresses for alert
notifications.
Manage an account
How to:
View, copy, and regenerate DocumentDB access keys
Manage DocumentDB consistency settings
Manage DocumentDB capacity settings
Delete a DocumentDB account
View, copy, and regenerate access keys
When you create a DocumentDB
account, the service generates two
master access keys that can be used for
authentication when the DocumentDB
account is accessed. By providing two
access keys, DocumentDB enables you to
regenerate the keys with no interruption
to your DocumentDB account.
In the Azure management preview portal,
access the Keys part from your
DocumentDB Account blade All settings
command to view, copy, and regenerate
the access keys that are used to access
your DocumentDB account.
View and copy an access key
In the Azure Preview portal, access
your DocumentDB account.
In the Summary lens, click Keys.
On the Keys blade, click the Copy
button to the right of the key you
wish to copy.
Regenerate access keys
Change the access keys to your
DocumentDB account periodically to help
keep your connections more secure. Two
access keys are assigned to enable you to
maintain connections to the
DocumentDB account using one access
key while you regenerate the other
access key.
If you have applications or cloud services
using your DocumentDB account, you will
lose the connections if you regenerate
keys, unless you roll your keys.
Specify the default consistency
In the Azure management preview portal,
access your DocumentDB account.
In the Configuration lens, click Default
Consistency.
On the Default Consistency blade, select the
default consistency level you want for your
DocumentDB account.
Click Save.
Monitor the progress of the operation via the
Azure management preview portal
Notifications hub.
Note that it can take several minutes before a
change to the default consistency setting takes
affect across your DocumentDB account.
Delete a DocumentDB account
In the Azure management preview portal,
access the DocumentDB account you wish to
delete.
On the DocumentDB Account blade, click
Delete.
On the resulting confirmation blade, type the
DocumentDB account name to confirm that
you want to delete the account.
On the confirmation blade, click Delete.
Warning: There is no way to restore the
content from a deleted DocumentDB account.
Deleting a DocumentDB account will delete all
of the account’s resources, including
databases, collections, documents, and
attachments.
Rapid
development Develop with a broad choice of popular
platforms and technologies using industry
standard protocols.
Reduce development friction &
complexity when building new business-
class applications by leveraging familiar
tools and industry standard platforms.
Combine DocumentDB with a portfolio
of complementary cloud services on the
Azure platform, such as the HDInsight
Connector and Search Indexer
POST
https://contosomarketing.documents.azure.com/dbs/e
hszAA==/colls/ehszALxRRgA=/docs HTTP/1.1
Host: contosomarketing.documents.azure.com
{"id":"Book2","Title":"About
Seattle","Language":{"id":"English"},"Author":{"id
":"Fred","Location":{"City":"Seattle","Country":"U
nited States"}},"Synopsis":"Seattle, the largest
city in the U.S. Pacific
Northwest...","Pages":400,"Topics":[{"Title":"Hist
ory of Seattle"},{"Title":"Places to see in in
Seattle"}]}
A new document can be created by
executing an HTTPS POST request
against the URI resource path docs.
There is a document size limit to
observe. For information on the
allowable document size limit, please
see the DocumentDB Limits and
Quotas article.
By default, a document is
automatically indexed.
If automatic indexing is turned off at
the collection level, you can manually
include or exclude documents from
being indexed by using the x-ms-
indexing-directive header during
POST.
Create a document
GET
https://contosomarketing.documents.azure.com/dbs/-
yI8AA==/colls/-yI8AKNuyAA=/docs/-
yI8AKNuyAANAAAAAAAAAA== HTTP/1.1
Host: contosomarketing.documents.azure.com
RESPONSE
{"Title":"About St.
Louis","Language":{"id":"English"},"id":"ISBN0-
8800-1599-1","_rid":"-
yI8AKNuyAANAAAAAAAAAA==","_ts":1408333905,"_self":
"dbs/-yI8AA==/colls/-yI8AKNuyAA=/docs/-
yI8AKNuyAANAAAAAAAAAA==/","_etag":"00005c00-0000-
0000-0000-
53f178510000","_attachments":"attachments/"}
Performing a GET on a specific
document resource will retrieve the
user-defined JSON elements and
system properties of the document.
While consistency level is defined at
the database account level during
account creation, read consistency
can be overridden to meet the needs
of the application. The override is set
per GET operation by setting the x-
ms-consistency-level header to the
desired level.
The rule of thumb is that consistency
override can only be the same or
weaker than the level that was set
during account creation.
Get a document
PUT
https://contosomarketing.documents.azure.com/dbs/e
hszAA==/colls/ehszALxRRgA=/docs/XP0mAJ3H-
AACAAAAAAAAAA== HTTP/1.1
Host: contosomarketing.documents.azure.com
{"id":"ISBDN 0-1231-1231-1","Title":"About
Seattle","Language":{"id":"English"},"Author":{"id
":"Fred","Location":{"City":"Seattle","Country":"U
nited States"}},"Synopsis":"Seattle, the largest
city in the U.S. Pacific
Northwest...","Pages":400,"Topics":[{"Title":"Hist
ory of Seattle"},{"Title":"Places to see in in
Seattle"}]}
Performing a PUT on a specific
document resource will replace the
entire document resource.
All user settable properties, including
the id and the user-defined JSON
elements, must be submitted in the
body to perform the replacement.
Any element omissions will result in
unintended data loss as this
operation is a full replace operation.
The x-ms-indexing-directive header
can be set and submitted for the
operation to include or exclude the
document from being indexed.
Replace a document
DELETE
https://contosomarketing.documents.azure.com/dbs/X
P0mAA==/colls/XP0mAJ3H-AA=/docs/XP0mAJ3H-
AAFAAAAAAAAAA== HTTP/1.1
Accept: application/json
Host: contosomarketing.documents.azure.com
RESPONSE
HTTP/1.1 204 No Content
Content-Length: 0
Content-Type: application/json
Content-Location:
https://contosomarketing.documents.azure.com/dbs/X
P0mAA==/colls/XP0mAJ3H-AA=/docs/XP0mAJ3H-
AAFAAAAAAAAAA==
Performing a DELETE on a specific
document resource will delete the
document resource from the
collection.
204 is returned when the delete
operation is successful.
404 is returned when the document
no longer exists (that is, the
document may have already been
deleted).
Delete a document
Tools
Document Explorer in Azure Portal Azure DocumentDB Studio
http://portal.azure.com https://github.com/mingaliu/DocumentDBStudio
DocumentDB
is particularly
suited for web
and mobile
applications
Catalog data
Preferences and state
Event store
User generated content
Data exchange
DocumentDB service summary
Unique among NoSQL stores
It was developed for the cloud and to be delivered as a service.
It’s truly query-able and is a native JSON store.
It has transactional processing through language integrated JavaScript.
It has predictable performance and tunable consistency.
Consider DocumentDB for these development scenarios
Customers building new web and mobile cloud based applications.
Rapid development and high scalability requirements.
Query and processing of user and device-generated data.
Customers using K-V stores needing more query and processing support.
Customers running a document store in virtual machines looking for a managed service.
Build your first DocumentDB app today
Get Started …
Sign up for DocumentDB at http://aka.ms/docdbstart
Access and configure your account through http://portal.azure.com
Download an SDK http://aka.ms/docdbsdks, and build a sample at http://aka.ms/docdbsample
Give Feedback …
Ask questions through the forum http://aka.ms/docdbforum
Suggest an idea and vote up other ideas for DocumentDB http://aka.ms/docdbideas
On twitter @documentdb
Thank you!

Weitere ähnliche Inhalte

Was ist angesagt?

Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...
Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...
Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...
GeeksLab Odessa
 
Windowsazureplatform Overviewlatest
Windowsazureplatform OverviewlatestWindowsazureplatform Overviewlatest
Windowsazureplatform Overviewlatest
rajramab
 
Cloud Service Models
Cloud Service ModelsCloud Service Models
Cloud Service Models
maharajdey
 

Was ist angesagt? (20)

Windows Virtual Desktop - Desktops on Cloud !
Windows Virtual Desktop - Desktops on Cloud ! Windows Virtual Desktop - Desktops on Cloud !
Windows Virtual Desktop - Desktops on Cloud !
 
Getting the most from Windows Virtual Desktop in Azure
Getting the most from Windows Virtual Desktop in AzureGetting the most from Windows Virtual Desktop in Azure
Getting the most from Windows Virtual Desktop in Azure
 
Cnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesCnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile services
 
04 Azure IAAS 101
04 Azure IAAS 10104 Azure IAAS 101
04 Azure IAAS 101
 
Microsoft Azure Ağ Servisleri
Microsoft Azure Ağ ServisleriMicrosoft Azure Ağ Servisleri
Microsoft Azure Ağ Servisleri
 
Migrate to WVD and Beyond
Migrate to WVD and BeyondMigrate to WVD and Beyond
Migrate to WVD and Beyond
 
The Microsoft AI platform: a State of the Union
The Microsoft AI platform: a State of the UnionThe Microsoft AI platform: a State of the Union
The Microsoft AI platform: a State of the Union
 
Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...
Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...
Java/Scala Lab: Anton Vidishchev - Microsoft Azure как облачная платформа для...
 
Scott Guthrie's Windows Azure Overview
Scott Guthrie's Windows Azure Overview Scott Guthrie's Windows Azure Overview
Scott Guthrie's Windows Azure Overview
 
Windowsazureplatform Overviewlatest
Windowsazureplatform OverviewlatestWindowsazureplatform Overviewlatest
Windowsazureplatform Overviewlatest
 
Introduzione al cloud computing e microsoft azure
Introduzione al cloud computing e microsoft azureIntroduzione al cloud computing e microsoft azure
Introduzione al cloud computing e microsoft azure
 
Microsoft Azure User Group - Lessons Learned
Microsoft Azure User Group - Lessons Learned Microsoft Azure User Group - Lessons Learned
Microsoft Azure User Group - Lessons Learned
 
Microsoft Azure catch-up
Microsoft Azure catch-upMicrosoft Azure catch-up
Microsoft Azure catch-up
 
Cosmos DB - Database for Serverless era
Cosmos DB - Database for Serverless eraCosmos DB - Database for Serverless era
Cosmos DB - Database for Serverless era
 
Citrix with Microsoft EMS
Citrix with Microsoft EMSCitrix with Microsoft EMS
Citrix with Microsoft EMS
 
RDS & Windows Virtual Desktop - Desktop in 2019+
RDS & Windows Virtual Desktop - Desktop in 2019+RDS & Windows Virtual Desktop - Desktop in 2019+
RDS & Windows Virtual Desktop - Desktop in 2019+
 
Cloud Service Models
Cloud Service ModelsCloud Service Models
Cloud Service Models
 
A Lap Around Azure
A Lap Around AzureA Lap Around Azure
A Lap Around Azure
 
Understanding The Azure Platform March 2010
Understanding The Azure Platform   March 2010Understanding The Azure Platform   March 2010
Understanding The Azure Platform March 2010
 
Windows Azure
Windows AzureWindows Azure
Windows Azure
 

Andere mochten auch

[Azure Council Experts (ACE) 第12回定例会] Microsoft Azureアップデート情報 (2015/06/18-201...
[Azure Council Experts (ACE) 第12回定例会] Microsoft Azureアップデート情報 (2015/06/18-201...[Azure Council Experts (ACE) 第12回定例会] Microsoft Azureアップデート情報 (2015/06/18-201...
[Azure Council Experts (ACE) 第12回定例会] Microsoft Azureアップデート情報 (2015/06/18-201...
Naoki (Neo) SATO
 
[Azure Council Experts (ACE) 第13回定例会] Microsoft Azureアップデート情報 (2015/08/20-201...
[Azure Council Experts (ACE) 第13回定例会] Microsoft Azureアップデート情報 (2015/08/20-201...[Azure Council Experts (ACE) 第13回定例会] Microsoft Azureアップデート情報 (2015/08/20-201...
[Azure Council Experts (ACE) 第13回定例会] Microsoft Azureアップデート情報 (2015/08/20-201...
Naoki (Neo) SATO
 
[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...
[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...
[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...
Naoki (Neo) SATO
 
【Build 記念】Windows Azure 最新情報 ~2013 年上半期の総括~ > 「Windows Azure 最新情報」
【Build 記念】Windows Azure 最新情報 ~2013 年上半期の総括~ > 「Windows Azure 最新情報」【Build 記念】Windows Azure 最新情報 ~2013 年上半期の総括~ > 「Windows Azure 最新情報」
【Build 記念】Windows Azure 最新情報 ~2013 年上半期の総括~ > 「Windows Azure 最新情報」
Naoki (Neo) SATO
 
[Azure Council Experts (ACE) 第10回定例会] Microsoft Azureアップデート情報 (2015/02/19-201...
[Azure Council Experts (ACE) 第10回定例会] Microsoft Azureアップデート情報 (2015/02/19-201...[Azure Council Experts (ACE) 第10回定例会] Microsoft Azureアップデート情報 (2015/02/19-201...
[Azure Council Experts (ACE) 第10回定例会] Microsoft Azureアップデート情報 (2015/02/19-201...
Naoki (Neo) SATO
 
[Azure Council Experts (ACE) 第14回定例会] Microsoft Azureアップデート情報 (2015/10/22-201...
[Azure Council Experts (ACE) 第14回定例会] Microsoft Azureアップデート情報 (2015/10/22-201...[Azure Council Experts (ACE) 第14回定例会] Microsoft Azureアップデート情報 (2015/10/22-201...
[Azure Council Experts (ACE) 第14回定例会] Microsoft Azureアップデート情報 (2015/10/22-201...
Naoki (Neo) SATO
 
[Azure Council Experts (ACE) 第15回定例会] Microsoft Azureアップデート情報 (2015/12/11-201...
[Azure Council Experts (ACE) 第15回定例会] Microsoft Azureアップデート情報 (2015/12/11-201...[Azure Council Experts (ACE) 第15回定例会] Microsoft Azureアップデート情報 (2015/12/11-201...
[Azure Council Experts (ACE) 第15回定例会] Microsoft Azureアップデート情報 (2015/12/11-201...
Naoki (Neo) SATO
 

Andere mochten auch (20)

[Azure Council Experts (ACE) 第12回定例会] Microsoft Azureアップデート情報 (2015/06/18-201...
[Azure Council Experts (ACE) 第12回定例会] Microsoft Azureアップデート情報 (2015/06/18-201...[Azure Council Experts (ACE) 第12回定例会] Microsoft Azureアップデート情報 (2015/06/18-201...
[Azure Council Experts (ACE) 第12回定例会] Microsoft Azureアップデート情報 (2015/06/18-201...
 
[Rakuten TechTalk] Microsoft Azure (August 20, 2014)
[Rakuten TechTalk] Microsoft Azure (August 20, 2014)[Rakuten TechTalk] Microsoft Azure (August 20, 2014)
[Rakuten TechTalk] Microsoft Azure (August 20, 2014)
 
OSS on Azure - Microsoft Open Technologies の Ross Gardler さんを囲む会 改め 『Microsof...
OSS on Azure - Microsoft Open Technologies の Ross Gardler さんを囲む会 改め 『Microsof...OSS on Azure - Microsoft Open Technologies の Ross Gardler さんを囲む会 改め 『Microsof...
OSS on Azure - Microsoft Open Technologies の Ross Gardler さんを囲む会 改め 『Microsof...
 
[Azure Council Experts (ACE) 第18回定例会] Microsoft Azureアップデート情報 (2016/06/17-201...
[Azure Council Experts (ACE) 第18回定例会] Microsoft Azureアップデート情報 (2016/06/17-201...[Azure Council Experts (ACE) 第18回定例会] Microsoft Azureアップデート情報 (2016/06/17-201...
[Azure Council Experts (ACE) 第18回定例会] Microsoft Azureアップデート情報 (2016/06/17-201...
 
Java/Android開発者のためのWindows Azure入門 (パート2)
Java/Android開発者のためのWindows Azure入門 (パート2)Java/Android開発者のためのWindows Azure入門 (パート2)
Java/Android開発者のためのWindows Azure入門 (パート2)
 
[Azure Council Experts (ACE) 第16回定例会] Microsoft Azureアップデート情報 (2016/02/19-201...
[Azure Council Experts (ACE) 第16回定例会] Microsoft Azureアップデート情報 (2016/02/19-201...[Azure Council Experts (ACE) 第16回定例会] Microsoft Azureアップデート情報 (2016/02/19-201...
[Azure Council Experts (ACE) 第16回定例会] Microsoft Azureアップデート情報 (2016/02/19-201...
 
[Azure Council Experts (ACE) 第13回定例会] Microsoft Azureアップデート情報 (2015/08/20-201...
[Azure Council Experts (ACE) 第13回定例会] Microsoft Azureアップデート情報 (2015/08/20-201...[Azure Council Experts (ACE) 第13回定例会] Microsoft Azureアップデート情報 (2015/08/20-201...
[Azure Council Experts (ACE) 第13回定例会] Microsoft Azureアップデート情報 (2015/08/20-201...
 
[日本DCの本命、大阪でWindows Azureを愛でる会] Windows Azure 概要 & 最新情報
[日本DCの本命、大阪でWindows Azureを愛でる会] Windows Azure 概要 & 最新情報[日本DCの本命、大阪でWindows Azureを愛でる会] Windows Azure 概要 & 最新情報
[日本DCの本命、大阪でWindows Azureを愛でる会] Windows Azure 概要 & 最新情報
 
[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...
[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...
[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...
 
【Build 記念】Windows Azure 最新情報 ~2013 年上半期の総括~ > 「Windows Azure 最新情報」
【Build 記念】Windows Azure 最新情報 ~2013 年上半期の総括~ > 「Windows Azure 最新情報」【Build 記念】Windows Azure 最新情報 ~2013 年上半期の総括~ > 「Windows Azure 最新情報」
【Build 記念】Windows Azure 最新情報 ~2013 年上半期の総括~ > 「Windows Azure 最新情報」
 
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
 
[Azure Council Experts (ACE) 第10回定例会] Microsoft Azureアップデート情報 (2015/02/19-201...
[Azure Council Experts (ACE) 第10回定例会] Microsoft Azureアップデート情報 (2015/02/19-201...[Azure Council Experts (ACE) 第10回定例会] Microsoft Azureアップデート情報 (2015/02/19-201...
[Azure Council Experts (ACE) 第10回定例会] Microsoft Azureアップデート情報 (2015/02/19-201...
 
[Azure Council Experts (ACE) 第14回定例会] Microsoft Azureアップデート情報 (2015/10/22-201...
[Azure Council Experts (ACE) 第14回定例会] Microsoft Azureアップデート情報 (2015/10/22-201...[Azure Council Experts (ACE) 第14回定例会] Microsoft Azureアップデート情報 (2015/10/22-201...
[Azure Council Experts (ACE) 第14回定例会] Microsoft Azureアップデート情報 (2015/10/22-201...
 
[Azure Council Experts (ACE) 第15回定例会] Microsoft Azureアップデート情報 (2015/12/11-201...
[Azure Council Experts (ACE) 第15回定例会] Microsoft Azureアップデート情報 (2015/12/11-201...[Azure Council Experts (ACE) 第15回定例会] Microsoft Azureアップデート情報 (2015/12/11-201...
[Azure Council Experts (ACE) 第15回定例会] Microsoft Azureアップデート情報 (2015/12/11-201...
 
[Azure Council Experts (ACE) 第17回定例会] Microsoft Azureアップデート情報 (2016/04/15-201...
[Azure Council Experts (ACE) 第17回定例会] Microsoft Azureアップデート情報 (2016/04/15-201...[Azure Council Experts (ACE) 第17回定例会] Microsoft Azureアップデート情報 (2016/04/15-201...
[Azure Council Experts (ACE) 第17回定例会] Microsoft Azureアップデート情報 (2016/04/15-201...
 
JAZUG沖縄第二回 Azure App Service Web Apps
JAZUG沖縄第二回 Azure App Service Web AppsJAZUG沖縄第二回 Azure App Service Web Apps
JAZUG沖縄第二回 Azure App Service Web Apps
 
[Azure Council Experts (ACE) 第19回定例会] Microsoft Azureアップデート情報 (2016/08/19-201...
[Azure Council Experts (ACE) 第19回定例会] Microsoft Azureアップデート情報 (2016/08/19-201...[Azure Council Experts (ACE) 第19回定例会] Microsoft Azureアップデート情報 (2016/08/19-201...
[Azure Council Experts (ACE) 第19回定例会] Microsoft Azureアップデート情報 (2016/08/19-201...
 
Azure 最新情報アップデート 2016年4月 (Build 2016での新機能)
Azure 最新情報アップデート 2016年4月 (Build 2016での新機能)Azure 最新情報アップデート 2016年4月 (Build 2016での新機能)
Azure 最新情報アップデート 2016年4月 (Build 2016での新機能)
 
[BPStudy#80] パブリック クラウド プラットフォーム「Microsoft Azure」 最新アップデート #bpstudy
[BPStudy#80] パブリック クラウド プラットフォーム「Microsoft Azure」 最新アップデート #bpstudy[BPStudy#80] パブリック クラウド プラットフォーム「Microsoft Azure」 最新アップデート #bpstudy
[BPStudy#80] パブリック クラウド プラットフォーム「Microsoft Azure」 最新アップデート #bpstudy
 
[Docker Tokyo - DockerCon Recap] Updates from Microsoft
[Docker Tokyo - DockerCon Recap] Updates from Microsoft[Docker Tokyo - DockerCon Recap] Updates from Microsoft
[Docker Tokyo - DockerCon Recap] Updates from Microsoft
 

Ähnlich wie [「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB

Clouds clouds everywhere
Clouds clouds everywhereClouds clouds everywhere
Clouds clouds everywhere
Matt Deacon
 
Azure Overview Csco
Azure Overview CscoAzure Overview Csco
Azure Overview Csco
rajramab
 

Ähnlich wie [「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB (20)

Ralph Kemperdick – IT-Tage 2015 – Microsoft Azure als Datenplattform
Ralph Kemperdick – IT-Tage 2015 – Microsoft Azure als DatenplattformRalph Kemperdick – IT-Tage 2015 – Microsoft Azure als Datenplattform
Ralph Kemperdick – IT-Tage 2015 – Microsoft Azure als Datenplattform
 
Azure Data Explorer deep dive - review 04.2020
Azure Data Explorer deep dive - review 04.2020Azure Data Explorer deep dive - review 04.2020
Azure Data Explorer deep dive - review 04.2020
 
High-performance database technology for rock-solid IoT solutions
High-performance database technology for rock-solid IoT solutionsHigh-performance database technology for rock-solid IoT solutions
High-performance database technology for rock-solid IoT solutions
 
Benefits of the Azure Cloud
Benefits of the Azure CloudBenefits of the Azure Cloud
Benefits of the Azure Cloud
 
Benefits of the Azure cloud
Benefits of the Azure cloudBenefits of the Azure cloud
Benefits of the Azure cloud
 
How leading financial services organisations are winning with tech
How leading financial services organisations are winning with techHow leading financial services organisations are winning with tech
How leading financial services organisations are winning with tech
 
Clouds clouds everywhere
Clouds clouds everywhereClouds clouds everywhere
Clouds clouds everywhere
 
Azure 10 major services
Azure 10 major servicesAzure 10 major services
Azure 10 major services
 
Cross platform mobile backend with mobile services
Cross platform mobile backend with mobile servicesCross platform mobile backend with mobile services
Cross platform mobile backend with mobile services
 
How does Microsoft solve Big Data?
How does Microsoft solve Big Data?How does Microsoft solve Big Data?
How does Microsoft solve Big Data?
 
Technology Overview
Technology OverviewTechnology Overview
Technology Overview
 
Building IoT and Big Data Solutions on Azure
Building IoT and Big Data Solutions on AzureBuilding IoT and Big Data Solutions on Azure
Building IoT and Big Data Solutions on Azure
 
2014.10.22 Building Azure Solutions with Office 365
2014.10.22 Building Azure Solutions with Office 3652014.10.22 Building Azure Solutions with Office 365
2014.10.22 Building Azure Solutions with Office 365
 
Windows Azure Platform - Jonathan Wong
Windows Azure Platform - Jonathan WongWindows Azure Platform - Jonathan Wong
Windows Azure Platform - Jonathan Wong
 
Data Virtualization: Introduction and Business Value (UK)
Data Virtualization: Introduction and Business Value (UK)Data Virtualization: Introduction and Business Value (UK)
Data Virtualization: Introduction and Business Value (UK)
 
Azure Overview Csco
Azure Overview CscoAzure Overview Csco
Azure Overview Csco
 
USQL Trivadis Azure Data Lake Event
USQL Trivadis Azure Data Lake EventUSQL Trivadis Azure Data Lake Event
USQL Trivadis Azure Data Lake Event
 
A1 keynote oracle_infrastructure_as_a_service_move_any_workload_to_the_cloud
A1 keynote oracle_infrastructure_as_a_service_move_any_workload_to_the_cloudA1 keynote oracle_infrastructure_as_a_service_move_any_workload_to_the_cloud
A1 keynote oracle_infrastructure_as_a_service_move_any_workload_to_the_cloud
 
Building a Real-Time IoT monitoring application with Azure
Building a Real-Time IoT monitoring application with AzureBuilding a Real-Time IoT monitoring application with Azure
Building a Real-Time IoT monitoring application with Azure
 
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS Summit
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS SummitDiscover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS Summit
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS Summit
 

Mehr von Naoki (Neo) SATO

How to work with technology to survive as an engineer (エンジニアとして生き残るためのテクノロジーと...
How to work with technology to survive as an engineer (エンジニアとして生き残るためのテクノロジーと...How to work with technology to survive as an engineer (エンジニアとして生き残るためのテクノロジーと...
How to work with technology to survive as an engineer (エンジニアとして生き残るためのテクノロジーと...
Naoki (Neo) SATO
 

Mehr von Naoki (Neo) SATO (20)

LLMOps with Azure Machine Learning prompt flow
LLMOps with Azure Machine Learning prompt flowLLMOps with Azure Machine Learning prompt flow
LLMOps with Azure Machine Learning prompt flow
 
Microsoft Copilot, your everyday AI companion (Machine Learning 15minutes! Br...
Microsoft Copilot, your everyday AI companion (Machine Learning 15minutes! Br...Microsoft Copilot, your everyday AI companion (Machine Learning 15minutes! Br...
Microsoft Copilot, your everyday AI companion (Machine Learning 15minutes! Br...
 
Microsoft Build 2023 Updates – Copilot Stack and Azure OpenAI Service (Machin...
Microsoft Build 2023 Updates – Copilot Stack and Azure OpenAI Service (Machin...Microsoft Build 2023 Updates – Copilot Stack and Azure OpenAI Service (Machin...
Microsoft Build 2023 Updates – Copilot Stack and Azure OpenAI Service (Machin...
 
Microsoft + OpenAI: Recent Updates (Machine Learning 15minutes! Broadcast #74)
Microsoft + OpenAI: Recent Updates (Machine Learning 15minutes! Broadcast #74)Microsoft + OpenAI: Recent Updates (Machine Learning 15minutes! Broadcast #74)
Microsoft + OpenAI: Recent Updates (Machine Learning 15minutes! Broadcast #74)
 
30分でわかるマイクロサービスアーキテクチャ 第2版
30分でわかるマイクロサービスアーキテクチャ 第2版30分でわかるマイクロサービスアーキテクチャ 第2版
30分でわかるマイクロサービスアーキテクチャ 第2版
 
[Machine Learning 15minutes! Broadcast #67] Azure AI - Build 2022 Updates and...
[Machine Learning 15minutes! Broadcast #67] Azure AI - Build 2022 Updates and...[Machine Learning 15minutes! Broadcast #67] Azure AI - Build 2022 Updates and...
[Machine Learning 15minutes! Broadcast #67] Azure AI - Build 2022 Updates and...
 
[Machine Learning 15minutes! #61] Azure OpenAI Service
[Machine Learning 15minutes! #61] Azure OpenAI Service[Machine Learning 15minutes! #61] Azure OpenAI Service
[Machine Learning 15minutes! #61] Azure OpenAI Service
 
[第50回 Machine Learning 15minutes! Broadcast] Azure Machine Learning - Ignite ...
[第50回 Machine Learning 15minutes! Broadcast] Azure Machine Learning - Ignite ...[第50回 Machine Learning 15minutes! Broadcast] Azure Machine Learning - Ignite ...
[第50回 Machine Learning 15minutes! Broadcast] Azure Machine Learning - Ignite ...
 
[Developers Festa Sapporo 2020] Microsoft/GitHubが提供するDeveloper Cloud (Develop...
[Developers Festa Sapporo 2020] Microsoft/GitHubが提供するDeveloper Cloud (Develop...[Developers Festa Sapporo 2020] Microsoft/GitHubが提供するDeveloper Cloud (Develop...
[Developers Festa Sapporo 2020] Microsoft/GitHubが提供するDeveloper Cloud (Develop...
 
[第2回 Azure Cosmos DB 勉強会] Data modelling and partitioning in Azure Cosmos DB ...
[第2回 Azure Cosmos DB 勉強会] Data modelling and partitioning in Azure Cosmos DB ...[第2回 Azure Cosmos DB 勉強会] Data modelling and partitioning in Azure Cosmos DB ...
[第2回 Azure Cosmos DB 勉強会] Data modelling and partitioning in Azure Cosmos DB ...
 
[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates
[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates
[第45回 Machine Learning 15minutes! Broadcast] Azure AI - Build 2020 Updates
 
[第43回 Machine Learning 15minutes! × 2] Azure AI Updates
[第43回 Machine Learning 15minutes! × 2] Azure AI Updates[第43回 Machine Learning 15minutes! × 2] Azure AI Updates
[第43回 Machine Learning 15minutes! × 2] Azure AI Updates
 
[Developers Festa Sapporo 2019] Azure Updates - Ignite 2019
[Developers Festa Sapporo 2019] Azure Updates - Ignite 2019[Developers Festa Sapporo 2019] Azure Updates - Ignite 2019
[Developers Festa Sapporo 2019] Azure Updates - Ignite 2019
 
[Serverless OpenHack Tokyo] Azure Serverless (Japanese)
[Serverless OpenHack Tokyo] Azure Serverless (Japanese)[Serverless OpenHack Tokyo] Azure Serverless (Japanese)
[Serverless OpenHack Tokyo] Azure Serverless (Japanese)
 
[Serverless OpenHack Tokyo] Azure Serverless (English)
[Serverless OpenHack Tokyo] Azure Serverless (English)[Serverless OpenHack Tokyo] Azure Serverless (English)
[Serverless OpenHack Tokyo] Azure Serverless (English)
 
[Azure Council Experts (ACE) 第37回定例会] Microsoft Azureアップデート情報 (2019/08/22-201...
[Azure Council Experts (ACE) 第37回定例会] Microsoft Azureアップデート情報 (2019/08/22-201...[Azure Council Experts (ACE) 第37回定例会] Microsoft Azureアップデート情報 (2019/08/22-201...
[Azure Council Experts (ACE) 第37回定例会] Microsoft Azureアップデート情報 (2019/08/22-201...
 
[db tech showcase Tokyo 2019] Azure Cosmos DB Deep Dive ~ Partitioning, Globa...
[db tech showcase Tokyo 2019] Azure Cosmos DB Deep Dive ~ Partitioning, Globa...[db tech showcase Tokyo 2019] Azure Cosmos DB Deep Dive ~ Partitioning, Globa...
[db tech showcase Tokyo 2019] Azure Cosmos DB Deep Dive ~ Partitioning, Globa...
 
How to work with technology to survive as an engineer (エンジニアとして生き残るためのテクノロジーと...
How to work with technology to survive as an engineer (エンジニアとして生き残るためのテクノロジーと...How to work with technology to survive as an engineer (エンジニアとして生き残るためのテクノロジーと...
How to work with technology to survive as an engineer (エンジニアとして生き残るためのテクノロジーと...
 
[Azure Council Experts (ACE) 第36回定例会] Microsoft Azureアップデート情報 (2019/06/14-201...
[Azure Council Experts (ACE) 第36回定例会] Microsoft Azureアップデート情報 (2019/06/14-201...[Azure Council Experts (ACE) 第36回定例会] Microsoft Azureアップデート情報 (2019/06/14-201...
[Azure Council Experts (ACE) 第36回定例会] Microsoft Azureアップデート情報 (2019/06/14-201...
 
How to work with technology to survive as an engineer (エンジニアとして生き残るためのテクノロジーと...
How to work with technology to survive as an engineer (エンジニアとして生き残るためのテクノロジーと...How to work with technology to survive as an engineer (エンジニアとして生き残るためのテクノロジーと...
How to work with technology to survive as an engineer (エンジニアとして生き残るためのテクノロジーと...
 

Kürzlich hochgeladen

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Kürzlich hochgeladen (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 

[「RDB技術者のためのNoSQLガイド」出版記念セミナー] Azure DocumentDB

  • 1. Microsoft Azure DocumentDB SATO Naoki (@satonaoki) Azure Technologist, Microsoft Japan
  • 2. SATO Naoki (さとうなおき) • Twitter @satonaoki • https://satonaoki.wordpress.com/ • Azure Technologist/Evangelist at Microsoft (2010-) • Ex-Oracle (Java Evangelist/Engineer) • Writer/Translation Supervisor/Translator • 「RDB技術者のためのNoSQLガイド」(共著) – 2016/02/26 発売 • 「マイクロサービスアーキテクチャ」(監訳) – 2016/02/25 発売 • 「グラフデータベース」(監訳) - 2015/03/25発売
  • 3. The Azure Platform Strategy Public, Global, Shared DatacentersMicrosoft Azure Stack & Cloud Platform System Security& Management SaaS (Software as a Service) O365, CRM, VSO etc… + 3rd Party SaaS Solutions Public Cloud Platform Hybrid Operations Security& Management Hybrid Operations
  • 4. Hyper scale Infrastructure is the enabler 30 Regions Worldwide, 22 Generally Available…  100+ datacenters  Top 3 networks in the world  2.5x AWS, 7x Google DC Regions  G Series – Largest VM in World, 32 cores, 448GB Ram, SSD… Operational Announced/Not Operational Central US Iowa West US California East US Virginia US Gov Virginia North Central US Illinois US Gov Iowa South Central US Texas Brazil South Sao Paulo State West Europe Netherlands China North * Beijing China South * Shanghai Japan East Tokyo, Saitama Japan West Osaka India South Chennai East Asia Hong Kong SE Asia Singapore Australia South East Victoria Australia East New South Wales India Central Pune Canada East Quebec City Canada Central Toronto India West Mumbai Germany North East ** Magdeburg Germany Central ** Frankfurt North Europe Ireland East US 2 Virginia United Kingdom RegionsUnited Kingdom Regions US DoD East TBD US DoD West TBD * Operated by 21Vianet ** Data Stewardship by Deutsche Telekom
  • 5. 1 Trillion Messages delivered every month with Event Hubs 100,000 New Azure customer subscriptions/month 20Million SQL database hours used every day >5Trillion Storage transactions every month 60Billion Hits to Websites run on Azure Web App Service 425Million Azure Active Directory Users Azure Momentum 57% Of Fortune 500 Companies use Microsoft Azure >50Trillion Storage objects in Azure 1.4 Million SQL Databases Deployed In Azure “Microsoft is growing its cloud revenue faster than Amazon” – Business Insider 2016 AWS revenue grew about 69% but Microsoft Azure revenue grew by 127%
  • 7. Platform Services Infrastructure Services Web Apps Infrastructure Mobile Backends API Management API App Infrastructure Business Process Automation Push Notifications Content Delivery Network (CDN) Live & OD Media Streaming B2B Integration Hybrid Connections Pub/Sub Queuing Simple Queuing Hybrid Operations Server Data Backup Hybrid/Intelligent Data Backup Disaster Recovery Bulk Data Import And Export Relational SQL Database Document Database Service Distributed In-Memory Cache Search Simple Key/Value Store Data Warehouse Directory Health Monitoring Privileged Identity Management Operational Analytics Stateless Compute Scheduled Compute Jobs Virtual App Streaming Distributed Compute Development Tools Application Instrumentation Software Development Kits Software Lifecycle Management Domain Join & Policy Management Big Data Analytics Predictive Analytics Data Stream Analytics Data Pipelines Device Data Collection Mobile Analytics Big Data Storage IoT Device Management Data Source Management Security & Management User/Group Directory Store Multi-Factor Authentication Scheduled Service Management Service Creation & Configuration Encryption Key Store Software/Solution Marketplace Pre-Build VM Images Identity Sign-Up and sign-in Task Scheduler
  • 8. Not only SQL vs SQL overview SQL Server Database Engine Azure SQL Database Relational (SQL)Non-relational (NoSQL) Analytical Azure managed data service Operational Microsoft Analytics Platform System
  • 9. Fast, predictable performance Tunable consistency Elastic scale DocumentDB overview A NoSQL document database-as-a-service, fully managed by Microsoft Azure. For cloud-designed apps when query over schema-free data; reliable and predictable performance; and rapid development are key. First of its kind database service to offer native support for JavaScript, SQL query and transactions over JSON documents. Perfect for cloud architects and developers who need an enterprise-ready NoSQL document database. Query JSON data with no secondary indices Native JavaScript transactional processing Familiar SQL-based query language Build with familiar tools – REST, JSON, JavaScript Easy to start and fully-managed Enterprise-grade Azure platform
  • 10. DocumentDB A document store Collections Document 1 Document 2 Document 3 Document 4 DocumentDB Application { "name": "John", "country": "Canada", "age": 43, "lastUse": "March 4, 2014" } { "name": "Lou", "country": "Australia", "age": 51, "firstUse": "May 8, 2013" } { "docCount": 3, "last": "May 1, 2014" } { "name": "Eva", "country": "Germany", "age": 25 } JSON
  • 11. Application example Azure Websites Autoscale enabled Auth: Facebook, Twitter, Microsoft, User/password DocumentDB Scale via collections Product catalog Community posts SQL Database Scale via Elastic Scale Product orders Media Services + Blob Storage Uploaded community videos Azure WebJob (Search) Pulls data from DocumentDB to populate search (search indexer is now available) Search Scale via search units Product catalog Community posts Azure Redis Cache Product catalog
  • 12. Value proposition over MongoDB • - Capability Advantage Managed service Spin up on demand with no setup and availability guarantee of 99.95%. Smooth linear price curve without VM step functions. Integration with other managed Azure services like HDInsight and Search. SQL query language Leverage SQL experience and .NET LINQ ACID transaction control through stored procedures Simpler programing model versus using state variables JavaScript triggers Simple programing model for running JavaScript code as part of insert/update/delete actions Greater consistency control Four levels provide more options for consistency, availability, and performance requirements Access rights down to document level Greater control for access of all documents and attachments within collections Open API with RESTful HTTP and standards based Open standards protocol for accessing and managing DocumentDB databases. Uses JSON standard – no mapping of BSON to JSON needed
  • 13. DocumentDB case studies Customer Case study Quote Industry Breeze Leading Integrator Gives Multinational Firms Global Insight in Minutes with Flexible Cloud Technologies “In terms of technology, we find that we work with Azure DocumentDB more intuitively than we do with something like MongoDB. We also estimate that we saved approximately 70 percent in implementation costs.” Mick Badran, Breeze, Chief Technology Officer Professional Services News Republic Adding intelligence to the news to provide information with purpose for engaged citizens "Many people read the news passively, but we have built micro personalization and macro interactivity into our app with Azure DocumentDB. This is definitely a great way to get more people using the app and keep existing users interested.“ Marc Tonnes, News Republic, Database Administrator Media & Cable Telecommunicatio ns SGS International For consistent color across the globe, major brands turn to SGS. And SGS turns to Azure. “The teams no longer worry about having to coordinate their work. And we don’t have to manage the hardware—Microsoft does that in the cloud and, given their SLAs, this makes perfect sense.” Shane Davis, SGS International, Senior Director Retail and Consumer Goods Telenor Global leader Telenor uses the cloud to move with the speed of a startup “With Azure DocumentDB, we didn’t have to say ‘no’ to the business, and we weren’t a bottleneck to launching the promotion—in fact, we came in ahead of schedule.” Andreas Helland, Telenor, Mobility Architect Telecommunicatio ns XOMNI The store of the future runs on speedy search and the easy flow of data “But we can’t run our highest resources all the time. With DocumentDB and Azure Search, we can scale dynamically to meet spikes in demand and pay only for what we consume.” Daron Yöndem, XOMNI, Chief Technology Officer Professional Services
  • 14. DocumentDB at Microsoft over 425 million unique users store 20TB of JSON document data under 15ms writes and single digit ms reads store for 40+ app / device combinations available globally to serve all markets user data store
  • 15. Pricing for General Availability Standard pricing tier with hourly billing S1, S2 and S3 units differentiated by performance (good, better, best) Performance levels assigned during collection (data partition) creation Performance levels can be adjusted based on application needs Each collection includes 10GB of SSD storage Limit of 100 collections (1 TB) for each account – can be lifted as needed What does DocumentDB cost?
  • 16. The basics Resource model Entities addressable by logical URI Partitioned for scale out Replicated for high availability Entities represented as JSON Accounts scale out through addition of capacity units Interaction model RESTful interaction over HTTP HTTP and TCP connectivity Standard HTTP verbs and semantics Development .Net, Node, Python, Java and JavaScript clients SQL for query expression, .Net LINQ JavaScript for server-side app logic 101 010 DocumentDB account Databases Users Permissions Collections Documents Attachments Stored procedures Triggers User-defined functions your Documents here { } { } JS JS JS
  • 17. Collections != tables Unit of partitioning Transaction boundary No enforced schema, flexible Queried or updated stay together in one collection - Size of 10 Gb DocumentDB collections Collections Documents 101 010 Attachments Stored procedures Triggers User-defined functions your Documents here JS JS JS
  • 18. JSON Intersection of most modern type systems JSON values Self-describable, self-contained values Do not have behavior, polymorphism, inheritance, access, and visibility rules” Are trivially serialized to/from text DocumentDB makes a deep commitment to JSON for storage, indexing, query, and JavaScript execution DocumentDB JSON documents { “locations”: [ {“country”: “Germany”, “city”: “Berlin”}, {“country”: “France”, “city”: “Paris”}, ], “headquarter”: “Belgium”, “exports”:[{“city”; “Moscow”},{“city: ”Athens”}] }; JSON document as tree Locations Headquarter Belgium Country City Country City Germany Berlin France Paris Exports CityCity Moscow Athens 0 10 1
  • 19. DocumentDB JSON documents JavaScript Object Literals JSON value object array string numbers object array true false null string value value
  • 20. Data modeling with RDBMS Doing it the RDBMS way: normalize, normalize, normalize… Joins needed to query for Person with related tables SELECT p.name, p.lastName, p.age, cd.detail , cdt.type, a.street, a.city, a.state, a.zip FROM Person p INNER JOIN Address a ON a.person_id = p.id INNER JOIN ContactDetail cd ON cd.person_id = p.id INNER JOIN ContactDetailType cdt ON cd.type_id = cdt.id Updating Person, ContactDetail, and Address requires updates to many tables
  • 21. { id_: <ObjectId1>, username: "123xyz", contact: { phone: "555-121-1212", email: "xyx@abc.com" }, access: { level: 5, group: "dev" } } Applications may need to issue fewer queries and updates Generally, use embedded data models when: There are “contains” relationships between entities There are one-to-few relationships between entities Embedded data changes infrequently Embedded data won’t grow without bound Embedded data is integral to data in a document Denormalizing typically provides better read performance Data modeling with denormalization
  • 22. In general, use normalized data models when: Write performance for duplication is more important Representing one-to-many relationships Representing many-to-many relationships Related data changes frequently Provides more flexibility than embedding More round trips Normalizing typically provides better write performance Data modeling with referencing { _id: <OnjectID1>, username: "123xyz" } { _id: <ObjectID2>, user_id: <objectId1>, phone: "555-121-1212", email: "abc@cyx.com" } { _id: <ObjectID3>, user_id: <objectId1>, level: 5, group: “dev" }
  • 23.
  • 24. Create a new account Start from the Azure Preview portal to create a DocumentDB service under your Azure subscription.
  • 25. Provide the service name Provide a name for your service that will be used as part of the endpoint URI. You can also define resource groups, capacity units, and service location.
  • 26. Complete provisioning The Azure portal provides notifications to let you know the provisioning status.
  • 27. DocumentDB account blade The account blade provides you with essential information about your service. Check out DocumentDB Quick Start by clicking on All settings in the Essentials section of the blade.
  • 28. Viewing service keys Click All settings to display the Keys and Read-Only Keys blades. Use the URI and service keys in your application for the endpoint and authentication. Like other services, DocumentDB includes primary and secondary keys for rolling key updates.
  • 29. Rich query over JSON data No forced, pre-defined indices allow for differentiated queryingBuild modern, scalable apps with robust transactional querying and data processing on JSON documents. Unlike other document database options, DocumentDB provides a full-featured NoSQL document database service with transactional processing over multiple documents using a SQL-like query grammar and native JavaScript support.
  • 30. -- Nested lookup against index SELECT B.Author FROM Books B WHERE B.Author.Name = "Leo Tolstoy" -- Transformation, Filters, Array access SELECT { Name: B.Title, Author: B.Author.Name } FROM Books B WHERE B.Price > 10 AND B.Language[0] = "English" -- Joins, User Defined Functions (UDF) SELECT CalculateRegionalTax(B.Price, "USA", "WA") FROM Books B JOIN L IN B.Languages WHERE L.Language = "Russian" Query over heterogeneous documents Query arbitrary paths, properties, and values without specifying secondary indexes or indexing hints Execute queries with consistent results in the face of sustained writes Query through fluent language integration, including LINQ for .NET developers and a “document oriented“ SQL grammar for traditional SQL developers Extend query execution through application- supplied JavaScript UDFs Supported SQL features; predicates, iterations (arrays), sub-queries, logical operators, UDFs, intra-document JOINs, or JSON transforms SQL grammar examples
  • 31. Simple predicate query SQL SELECT * FROM company C WHERE C.headquarter = 'Belgium' Results [ { "locations": [{ "country": "Germany", "city": "Berlin" },{ "country": "France", "city": "Paris" }], "headquarter": "Belgium", "exports": [{ "city": "Moscow" },{ "city": "Athens" } ] }] Var company1= { “locations” : [ {“country”: “Germany”, “city”: “Berlin”}, {“country”: “France”, “city”: “Paris”}, ], “headquarter”: “Belgium”, “exports”: [ { “city”; “Moscow” },{ “city: ”Athens” }] }; Var company2= { “locations” : [{“country”: “Germany”, “city”: “Bonn”, revenue”: 200 } ], “headquarter”: “Italy”, “exports”: [ { “city”; “Berlin” },{ “dealers”: [{“name”: “Hans”}] }, {city”: ”Athens” }] }; Locations Headquarter Exports City CityDealers Germany Bonn 200 Berlin Name Athens 0 Italy 0 1 Hans Country City Revenue Locations Headquarter Belgium Country City Country City Germany Berlin France Paris Exports CityCity Moscow Athens 0 10 1
  • 32. Querying array with predicates SQL SELECT location.country FROM location IN company.locations WHERE location.city = 'Berlin' Results [ {"country": "Germany"} ] Var company1= { “locations” : [ {“country”: “Germany”, “city”: “Berlin”}, {“country”: “France”, “city”: “Paris”}, ], “headquarter”: “Belgium”, “exports”: [ { “city”; “Moscow” },{ “city: ”Athens” }] }; Var company2= { “locations” : [{“country”: “Germany”, “city”: “Bonn”, revenue”: 200 } ], “headquarter”: “Italy”, “exports”: [ { “city”; “Berlin” },{ “dealers”: [{“name”: “Hans”}] }, {city”: ”Athens” }] }; Locations Headquarter Exports City CityDealers Germany Bonn 200 Berlin Name Athens 0 Italy 0 1 Hans Country City Revenue Locations Headquarter Belgium Country City Country City Germany Berlin France Paris Exports CityCity Moscow Athens 0 10 1
  • 33. DocumentDB query with logical operators SQL SELECT location.country FROM location IN company.locations WHERE location.city='Bonn' AND location.revenue >100 Results [ {"country": "Germany"} ] Var company1= { “locations” : [ {“country”: “Germany”, “city”: “Berlin”}, {“country”: “France”, “city”: “Paris”}, ], “headquarter”: “Belgium”, “exports”: [ { “city”; “Moscow” },{ “city: ”Athens” }] }; Var company2= { “locations” : [{“country”: “Germany”, “city”: “Bonn”, revenue”: 200 } ], “headquarter”: “Italy”, “exports”: [ { “city”; “Berlin” },{ “dealers”: [{“name”: “Hans”}] }, {city”: ”Athens” }] }; Locations Headquarter Exports City CityDealers Germany Bonn 200 Berlin Name Athens 0 Italy 0 1 Hans Country City Revenue Locations Headquarter Belgium Country City Country City Germany Berlin France Paris Exports CityCity Moscow Athens 0 10 1
  • 34. SQL SELECT GermanTax(location) FROM location in company.locations Results [ {"country": "Germany", "city":"Bonn", "tax":50}, {"country": "Germany", "city":"Berlin", "tax":0}, ] Query with UDFs function GermanTax(income) { if(income < 1000) return income * 0.1; else if(income < 10000) return income * 0.2; return income * 0.4; } Var company1= { “locations” : [ {“country”: “Germany”, “city”: “Berlin”}, {“country”: “France”, “city”: “Paris”}, ], “headquarter”: “Belgium”, “exports”: [ { “city”; “Moscow” },{ “city: ”Athens” }] }; Var company2= { “locations” : [{“country”: “Germany”, “city”: “Bonn”, revenue”: 200 } ], “headquarter”: “Italy”, “exports”: [ { “city”; “Berlin” },{ “dealers”: [{“name”: “Hans”}] }, {city”: ”Athens” }] }; Locations Headquarter Exports City CityDealers Germany Bonn 200 Berlin Name Athens 0 Italy 0 1 Hans Country City Revenue Locations Headquarter Belgium Country City Country City Germany Berlin France Paris Exports CityCity Moscow Athens 0 10 1
  • 35. Query performance – Pagination When performing a bulk read of documents or issuing a query, the server returns results in a segmented fashion if the result set is too large. In order to reduce round-trips, clients may override the page size. Bounded execution time of 5 seconds per batch Default page size is 100 (server returns results in chunks of at most 100) Desired page size can be specified: Use x-ms-max-item-count request header Use FeedOptions.MaxItemCount property
  • 36. IQueryable<Book> queryable = client.CreateDocumentQuery<Book>( collectionSelfLink, new SqlQuerySpec { QueryText = "SELECT * FROM books b WHERE (b.Author.Name = @name)", Parameters = new SqlParameterCollection() { new SqlParameter( "@name", "Herman Melville") } } ); .NET example SQL parameters in DocumentDB use the familiar @ notation borrowed from T-SQL. Parameter values can be any valid JSON values (strings, numbers, Booleans, null, even arrays or nested JSON). Since DocumentDB is schema-less, parameters are not validated against any type. Just as easily supply additional parameters by adding additional SqlParameters to the SqlParameterCollection. SQL parameterization in DocumentDB
  • 37. POST https://contosomarketing.documents.azure.com/dbs/XP0mAA==/co lls/XP0mAJ3H-AA=/docs HTTP/1.1 x-ms-documentdb-isquery: True x-ms-date: Mon, 18 Aug 2014 13:05:49 GMT authorization: type%3dmaster%26ver%3d1.0%26sig%3dkOU%2bBn2vkvIlHypfE8AA5ful pn8zKjLwdrxBqyg0YGQ%3d x-ms-version: 2014-08-21 Accept: application/json Content-Type: application/query+json Host: contosomarketing.documents.azure.com Content-Length: 50 { "query": "SELECT * FROM books b WHERE (b.Author.Name = @name)", "parameters": [ { "name": "@name", "value": "Herman Melville“ } ] } REST API example To use parameterized queries, specify the Content-Type Header as application/query+json and the query as JSON in the body. SQL parameterization with REST
  • 38.
  • 40. Go to http://www.documentdb.com/sql/demo Test out sample queries or write your own against the dataset Using DocumentDB Query Playground
  • 41. // User Defined Function function tax(doc) { // Use simple formula to compute the tax: use income multiplied by factor based on country of headquarters. var factor = doc.headquarters == "USA" ? 0.35 : doc.headquarters == "Germany" ? 0.3 : doc.headquarters == "Russia" ? 0.2 : 0; // Check for bad data. if (factor == 0) { throw new Error("Unsupported country: " + doc.headquarters); } // Use simple formula and return. return doc.income * factor; } // Execute UDF with additional condition var results = client.CreateDocumentQuery<dynamic>(colSelfLink, string.Format("SELECT r.name AS company, Tax(r) AS tax FROM root r WHERE r.type='Company'", udfId)); The complexity of a query impacts the request units consumed for an operation: Number of predicates In general, more predicates result in a larger request charge. Additional predicates can help if they result in narrowing the overall result set. Use of user-defined functions (UDFs) To take advantage of indexing, try and have at least one filter against an indexed property when leveraging a UDF. Tip: For all operations, the cost of any given request can be inferred by inspecting the x- ms-request-charge response header. Query with user-defined function
  • 42. JavaScript transactions Transactionally process multiple documents with application-defined stored procedures and triggers JavaScript as the procedural language Language integrated Execution wrapped in an implicit transaction Preregistered and scoped to a collection Performed with ACID guarantees Triggers invoked as pre- or post-operations Stored procedures Triggers JS
  • 43. client.executeStoredProcedureAsync ("procs/1234", "MasterChief", "SolidSnake") .then(function (response) { console.log(“success!"); }, function (err) { console.log("Failed to swap!", error); } ); Stored procedures and triggers Familiar programming model constructs for executing application logic Registered as named, URI addressable, durable resources Scoped to a DocumentDB collection JavaScript as a procedural language to express business logic Language integration JavaScript throw statement aborts the transaction Execution JavaScript runtime is hosted on each replica Pre-compiled on registration Entire procedure is wrapped in an implicit database transaction Execution is fully resource governed and sandboxed JavaScript transactions function(playerId1, playerId2) { var collection = getContext().getCollection(); var playersToSwap = collection.filterDocuments(function (document) { return (document.id == playerId1 || document.id == playerId2); }); var player1 = playersToSwap[0], player2 = playersToSwap[1]; var player1ItemTemp = player1.item; player1.item = player2.item; player2.item = player1ItemTemp; collection.replaceDocument(player1) .then(function() { return collection.replaceDocument(player2); }) .fail(function(error){ throw 'Unable to update players, abort'; }); } Client Database
  • 44. JavaScript transaction tips Understand transaction costs, and mind the 5 second rule: batched execution with continuation Test with expected data volumes Develop a strategy for versioning and code management
  • 45. Document myDoc = await client.ReadDocumentAsync(documentLink, new RequestOptions { ConsistencyLevel = ConsistencyLevel.Eventual }); DocumentDB currently offers 4 consistency levels: Strong: Guarantees that a write is only visible after it is committed durably by the majority quorum of replicas and reads are always acknowledged by the majority read quorum Session: Provides predictable read consistency for a session while offering the low latency writes; reads are also low latency as a read will be served by a single replica Bounded Staleness: Bounded Staleness consistency guarantees the total order of propagation of writes but reads may lag writes by N seconds or operations (configurable) Eventual: Eventual consistency is the weakest form of consistency wherein a client may get the values which are older than the ones it had seen before, over time Consistency levels Lower consistency level on read operation
  • 46. The choice of consistency level has performance implications for both read and write operations: Write operations Consistency level changes impact request latency Stronger consistency levels result in higher write latencies Read operations Consistency level changes impact throughput Weaker consistency levels result in higher read throughput Tip: You can lower the consistency level of a specific read or query request by specifying [x- ms-consistency-level] request header or by using RequestOptions in the SDKs. Consistency levels and performance
  • 47. Query consistency levels Data consistency policy Strong Bounded Staleness Session Eventual Indexing mode Lazy Eventual Eventual Eventual Eventual Consistent Strong Bounded Staleness Session Eventual DocumentDB lets you trade off latency vs. consistency for direct reads and queries
  • 48. Indexing The “write” index for consistent queries Highly concurrent, lock free, log structured indexing technology developed with Microsoft Research Optimized for SSD Resource governed for tenant isolation Automatic indexing of JSON documents without requiring schema or secondary indices, but configurable via: Modes Policies Paths Types value object array string numbers object array true false null string value value
  • 49. Indexing modes Consistent Default mode Index updated synchronously on writes Lazy Useful for bulk ingestion scenarios Indexing policies Automatic Default Manual Can choose to index documents via RequestOptions IndexingDirective = IndexingDirective.Include Can read non-indexed documents via selflink Set indexing mode Set indexing policy var collection = new DocumentCollection { Id = “lazyCollection” }; collection.IndexingPolicy.IndexingMode = IndexingMode.Lazy; collection = await client.CreateDocumentCollectionAsync(databaseLink, collection); Indexing – Modes and policies var collection = new DocumentCollection { Id = “manualCollection” }; collection.IndexingPolicy.Automatic = false; collection = await client.CreateDocumentCollectionAsync(databaseLink, collection);
  • 50. Setting paths, types, and precision var collection = new DocumentCollection { Id = “Orders” }; collection.IndexingPolicy.IncludedPaths.Add(new IndexingPath { IndexType = IndexType.Hash, Path = "/", }); collection.IndexingPolicy.IncludedPaths.Add(new IndexingPath { IndexType = IndexType.Range, Path = @"/""shippedTimestamp""/?", NumericPrecision = 7 }); collection.IndexingPolicy.ExcludedPaths.Add("/"metaData"/*"); collection = await client.CreateDocumentCollectionAsync(databaseLink, collection); Index paths Included Excluded Index types Hash Supported for strings and numbers Optimized for equality matches Range Supported for numbers Optimized for comparison queries Index precision String precision Default is 3 Numeric precision Default is 3 Increase for larger number fields (epoch timestamps) Indexing – Paths and types
  • 51. Query and indexing tips Consider query needs and index policies (index policies are immutable, for now) Understand query costs and limits, and avoid scans Pre-aggregate where possible
  • 52. Security model Master key Access control on resources User operations Permission operations Code execution
  • 53. Reliable and predictable performance Defined throughput levels that scale linearly with application needs DocumentDB is born in the cloud to achieve fast, predictable performance with reserved resources to deliver on your throughput needs. Benefit from reliable, tunable consistency to increase performance based on application needs.
  • 54.
  • 55. Monitor an account How to: View performance metrics for a DocumentDB account Customize performance metric views for a DocumentDB account Create side-by-side performance metric charts View usage metrics for a DocumentDB account Set up performance metric alerts for a DocumentDB account
  • 56. In the Azure Preview portal, click Browse, DocumentDB Accounts, and then click the name of the DocumentDB account for which you would like to view performance metrics. Within the Monitoring lens you can, by default, see: Total requests for the current day Average requests per second for the current day View performance metrics
  • 57. View total requests To open a detailed Metric blade, click Total Requests or Average Requests per Second. The Metric blade shows you details about the metrics you have selected. At the top of the blade is a graph and below that a table which shows aggregation values of the selected metrics, such as average, minimum, and maximum. The metric blade also shows the list of alerts which have been defined, filtered to the metrics that appear on the current metric blade (that way, if you have a number of alerts, you'll only see the relevant ones presented here).
  • 58. To customize the metrics that display in a particular part, right-click the metric chart, and then select Edit Chart. Customize performance metric views
  • 59. On the Edit Chart blade, there are options to modify the metrics that display in the part, as well as their time range. Customize performance metric views
  • 60. Customize performance metric views To change the metrics displayed in the part, simply select or clear the available performance metrics, and then click Save at the bottom of the blade. To change the time range, choose a different range (for example, Past Hour), and then click Save at the bottom of the blade.
  • 61. Create side-by-side performance metric charts The Azure Preview portal allows you to create side-by- side metric charts. Right-click on the chart you want to clone or modify and then click Customize.
  • 62. Create side-by-side performance metric charts Click Clone on the menu to copy the part, and then click Done customizing.
  • 63. Create side-by-side performance metric charts You may now treat this part as any other metric part, customizing the metrics and time range displayed in the part. This allows you to see two different metrics charts side-by-side at the same time.
  • 64. View usage metrics In the Azure Preview portal, click Browse, DocumentDB Accounts, and then click the name of the DocumentDB account for which you would like to see usage metrics. Within the Usage lens you can view the following by default: Estimated cost Storage consumed within the account Maximum available storage of the account User information Attachment usage
  • 65. Set up performance metric alerts In the Azure Preview portal, click Browse, DocumentDB Accounts, and then click the name of the DocumentDB account for which you would like to set up performance metric alerts. Within the Operations lens, click the Alert rules part.
  • 66. Set up performance metric alerts In the Alert rules blade, click Add Alert.
  • 67. Set up performance metric alerts In the Add an alert rule blade, specify: The name of the alert rule you are setting up. A description of the new alert rule. The metric for the alert rule. The condition, threshold, and period that determine when the alert activates. For example, a server error count greater than 5 over the last 15 minutes. Whether the service administrator and co-administrators are emailed when the alert fires. Additional email addresses for alert notifications.
  • 68. Manage an account How to: View, copy, and regenerate DocumentDB access keys Manage DocumentDB consistency settings Manage DocumentDB capacity settings Delete a DocumentDB account
  • 69. View, copy, and regenerate access keys When you create a DocumentDB account, the service generates two master access keys that can be used for authentication when the DocumentDB account is accessed. By providing two access keys, DocumentDB enables you to regenerate the keys with no interruption to your DocumentDB account. In the Azure management preview portal, access the Keys part from your DocumentDB Account blade All settings command to view, copy, and regenerate the access keys that are used to access your DocumentDB account.
  • 70. View and copy an access key In the Azure Preview portal, access your DocumentDB account. In the Summary lens, click Keys. On the Keys blade, click the Copy button to the right of the key you wish to copy.
  • 71. Regenerate access keys Change the access keys to your DocumentDB account periodically to help keep your connections more secure. Two access keys are assigned to enable you to maintain connections to the DocumentDB account using one access key while you regenerate the other access key. If you have applications or cloud services using your DocumentDB account, you will lose the connections if you regenerate keys, unless you roll your keys.
  • 72. Specify the default consistency In the Azure management preview portal, access your DocumentDB account. In the Configuration lens, click Default Consistency. On the Default Consistency blade, select the default consistency level you want for your DocumentDB account. Click Save. Monitor the progress of the operation via the Azure management preview portal Notifications hub. Note that it can take several minutes before a change to the default consistency setting takes affect across your DocumentDB account.
  • 73. Delete a DocumentDB account In the Azure management preview portal, access the DocumentDB account you wish to delete. On the DocumentDB Account blade, click Delete. On the resulting confirmation blade, type the DocumentDB account name to confirm that you want to delete the account. On the confirmation blade, click Delete. Warning: There is no way to restore the content from a deleted DocumentDB account. Deleting a DocumentDB account will delete all of the account’s resources, including databases, collections, documents, and attachments.
  • 74. Rapid development Develop with a broad choice of popular platforms and technologies using industry standard protocols. Reduce development friction & complexity when building new business- class applications by leveraging familiar tools and industry standard platforms. Combine DocumentDB with a portfolio of complementary cloud services on the Azure platform, such as the HDInsight Connector and Search Indexer
  • 75.
  • 76. POST https://contosomarketing.documents.azure.com/dbs/e hszAA==/colls/ehszALxRRgA=/docs HTTP/1.1 Host: contosomarketing.documents.azure.com {"id":"Book2","Title":"About Seattle","Language":{"id":"English"},"Author":{"id ":"Fred","Location":{"City":"Seattle","Country":"U nited States"}},"Synopsis":"Seattle, the largest city in the U.S. Pacific Northwest...","Pages":400,"Topics":[{"Title":"Hist ory of Seattle"},{"Title":"Places to see in in Seattle"}]} A new document can be created by executing an HTTPS POST request against the URI resource path docs. There is a document size limit to observe. For information on the allowable document size limit, please see the DocumentDB Limits and Quotas article. By default, a document is automatically indexed. If automatic indexing is turned off at the collection level, you can manually include or exclude documents from being indexed by using the x-ms- indexing-directive header during POST. Create a document
  • 77. GET https://contosomarketing.documents.azure.com/dbs/- yI8AA==/colls/-yI8AKNuyAA=/docs/- yI8AKNuyAANAAAAAAAAAA== HTTP/1.1 Host: contosomarketing.documents.azure.com RESPONSE {"Title":"About St. Louis","Language":{"id":"English"},"id":"ISBN0- 8800-1599-1","_rid":"- yI8AKNuyAANAAAAAAAAAA==","_ts":1408333905,"_self": "dbs/-yI8AA==/colls/-yI8AKNuyAA=/docs/- yI8AKNuyAANAAAAAAAAAA==/","_etag":"00005c00-0000- 0000-0000- 53f178510000","_attachments":"attachments/"} Performing a GET on a specific document resource will retrieve the user-defined JSON elements and system properties of the document. While consistency level is defined at the database account level during account creation, read consistency can be overridden to meet the needs of the application. The override is set per GET operation by setting the x- ms-consistency-level header to the desired level. The rule of thumb is that consistency override can only be the same or weaker than the level that was set during account creation. Get a document
  • 78. PUT https://contosomarketing.documents.azure.com/dbs/e hszAA==/colls/ehszALxRRgA=/docs/XP0mAJ3H- AACAAAAAAAAAA== HTTP/1.1 Host: contosomarketing.documents.azure.com {"id":"ISBDN 0-1231-1231-1","Title":"About Seattle","Language":{"id":"English"},"Author":{"id ":"Fred","Location":{"City":"Seattle","Country":"U nited States"}},"Synopsis":"Seattle, the largest city in the U.S. Pacific Northwest...","Pages":400,"Topics":[{"Title":"Hist ory of Seattle"},{"Title":"Places to see in in Seattle"}]} Performing a PUT on a specific document resource will replace the entire document resource. All user settable properties, including the id and the user-defined JSON elements, must be submitted in the body to perform the replacement. Any element omissions will result in unintended data loss as this operation is a full replace operation. The x-ms-indexing-directive header can be set and submitted for the operation to include or exclude the document from being indexed. Replace a document
  • 79. DELETE https://contosomarketing.documents.azure.com/dbs/X P0mAA==/colls/XP0mAJ3H-AA=/docs/XP0mAJ3H- AAFAAAAAAAAAA== HTTP/1.1 Accept: application/json Host: contosomarketing.documents.azure.com RESPONSE HTTP/1.1 204 No Content Content-Length: 0 Content-Type: application/json Content-Location: https://contosomarketing.documents.azure.com/dbs/X P0mAA==/colls/XP0mAJ3H-AA=/docs/XP0mAJ3H- AAFAAAAAAAAAA== Performing a DELETE on a specific document resource will delete the document resource from the collection. 204 is returned when the delete operation is successful. 404 is returned when the document no longer exists (that is, the document may have already been deleted). Delete a document
  • 80. Tools Document Explorer in Azure Portal Azure DocumentDB Studio http://portal.azure.com https://github.com/mingaliu/DocumentDBStudio
  • 81. DocumentDB is particularly suited for web and mobile applications Catalog data Preferences and state Event store User generated content Data exchange
  • 82. DocumentDB service summary Unique among NoSQL stores It was developed for the cloud and to be delivered as a service. It’s truly query-able and is a native JSON store. It has transactional processing through language integrated JavaScript. It has predictable performance and tunable consistency. Consider DocumentDB for these development scenarios Customers building new web and mobile cloud based applications. Rapid development and high scalability requirements. Query and processing of user and device-generated data. Customers using K-V stores needing more query and processing support. Customers running a document store in virtual machines looking for a managed service.
  • 83. Build your first DocumentDB app today Get Started … Sign up for DocumentDB at http://aka.ms/docdbstart Access and configure your account through http://portal.azure.com Download an SDK http://aka.ms/docdbsdks, and build a sample at http://aka.ms/docdbsample Give Feedback … Ask questions through the forum http://aka.ms/docdbforum Suggest an idea and vote up other ideas for DocumentDB http://aka.ms/docdbideas On twitter @documentdb