user experiencesapp development data platform 8.
-
Upload
charlene-cobb -
Category
Documents
-
view
220 -
download
0
Transcript of user experiencesapp development data platform 8.
Spark the future.
May 4 – 8, 2015Chicago, IL
SELECT Latest FROM Microsoft Azure DocumentDBJohn MacintyreAzure DocumentDB@johnmacputs
BRK2551
1B,
“websites” :
85B,
“apps” :
22M
“repos” :
{
}
user experiences app development
{ modern }
data platform
8
{ modern }
SQL
SQL
BlobSQL SearchKey Value Document
BlobSQL SearchKey Value Document
Part of NoSQL family Built for simplicity, scale and performance Non-relational, no enforced schema
Document Databases
Part of NoSQL family Built for simplicity, scale and performance Non-relational, no enforced schema
Document Databases
Great for these documents …
{ "name": "SmugMug", "permalink": "smugmug", "homepage_url": "http://www.smugmug.com", "blog_url": "http://blogs.smugmug.com/", "category_code": "photo_video", "products": [ { "name": "SmugMug", "permalink": "smugmug" } ], "offices": [ { "description": "", "address1": "67 E. Evelyn Ave, Suite 200", "address2": "", "zip_code": "94041", "city": "Mountain View", "state_code": "CA", "country_code": "USA", "latitude": 37.390056, "longitude": -122.067692 } ] }
Part of NoSQL family Built for simplicity, scale and performance Non-relational, no enforced schema
Document Databases
Not ideal for these documents …
{ “id": “itemdata2344", “data": “TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhp cyByZWFzb24sIGJ1dCBieSB0aGlzHNpbmd1bGFyIHBhc3Npb24gZ nJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaW
dodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdl bmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9y
dCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=” }
Part of NoSQL family Built for simplicity, scale and performance Non-relational, no enforced schema
Document Databases
Definitely not these documents …
Common use cases
Catalog Data
Preferences & State
Events & Logging
User Data & Content
Data Exchange
Azure DocumentDB
Flexible schema for iterative application development
Automatic indexing with a SQL interface Transactional support for multi-document
operations Scalable database storage with predictable
performance
fully managed NoSQL document database service built for the cloud
Get Started …
Application
Collections
Document 1 Document 2
Document 3 Document 4
DocumentDB Database
{ "name": "John", "country": "Canada", "age": 43, "lastUse": "March 4, 2014"}
{ "name": “Andrew", "country": “America", "age": 22, "firstUse": “June 17, 2014"}
{ "docCount": 3, "last": "May 1, 2014"}
{ "name": "Eva", "country": "Germany", "age": 25}
JSON
Application Access
Application
Create / Read / Update / Delete
Collections
Document 1 Document 2
Document 3 Document 4
DocumentDB Database
{ "name": "John", "country": "Canada", "age": 43, "lastUse": "March 4, 2014"}
{ "name": “Andrew", "country": “America", "age": 22, "firstUse": “June 17, 2014"}
{ "docCount": 3, "last": "May 1, 2014"}
{ "name": "Eva", "country": "Germany", "age": 25}
JSON
Application Access
Application
SQL
Collections
Document 1 Document 2
Document 3 Document 4
DocumentDB Database
{ "name": "John", "country": "Canada", "age": 43, "lastUse": "March 4, 2014"}
{ "name": “Andrew", "country": “America", "age": 22, "firstUse": “June 17, 2014"}
{ "docCount": 3, "last": "May 1, 2014"}
{ "name": "Eva", "country": "Germany", "age": 25}
JSON
Application Access
Application
Sprocs / Triggers
Collections
Document 1 Document 2
Document 3 Document 4
DocumentDB Database
{ "name": "John", "country": "Canada", "age": 43, "lastUse": "March 4, 2014"}
{ "name": “Andrew", "country": “America", "age": 22, "firstUse": “June 17, 2014"}
{ "docCount": 3, "last": "May 1, 2014"}
{ "name": "Eva", "country": "Germany", "age": 25}
JSON
Application Access
Build an app …
DocumentDB Resources
The Basics
Database Account
{ }{ }
Databases
Users
Permissions
Collections Documents
JS
JS
JS
Stored Procedures
Triggers
User Defined Functions
Database Account Unique DNS namespace Access boundary (master key) Billable entity Assigned default consistency
DocumentDB Resources
The Basics
Database Account Databases
Users
Permissions
Collections Documents
JS
JS
JS
Stored Procedures
Triggers
User Defined Functions
Databases Authorization namespace Container for data collections Scale out with more
collections
{ }
{ }
DocumentDB Resources
The Basics
Database Account Databases
Users
Permissions
Collections Documents
JS
JS
JS
Stored Procedures
Triggers
User Defined Functions
Collections Container for
heterogeneous documents Data partition* for
document storage – 10GB partition size
Scope for queries and transactions
Billable resource (S1, S2, S3)
* Collection != Table
{ }{ }
DocumentDB Resources
The Basics
Database Account Databases
Users
Permissions
Collections Documents
JS
JS
JS
Stored Procedures
Triggers
User Defined Functions
Documents Application defined JSON No enforced schema All properties indexed by
default Optimized for many small
documents
{ }{ }
DocumentDB Resources
The Basics
Database Account Databases
Users
Permissions
Collections Documents
JS
JS
JS
Stored Procedures
Triggers
User Defined Functions
Resource Attributes Addressable by logical URI Represented as JSON Partitioned for scale out Replicated for HA RESTful interaction over HTTP HTTP and TCP connectivity
{ }{ }
SDKs and Tooling
SDKs
Azure Portal Data Migration
Studio
Import data …
Migrate existing data into DocumentDB Support for SQL, MongoDB, CSV files, JSON files NEW – import data from Azure Tables and internet accessible
endpoints
DocumentDB Data Migration Tool
http://aka.ms/docdbimport
Query over JSON documents
All properties indexed for query Write optimized for consistent
queries Expression evaluation and JS user
defined functions Predicates, projections, hierarchy,
array iteration and JSON construction
LINQ and SQL interfaces Parametrized SQL
http://aka.ms/docdbsql
Query over JSON …
Query over JSON …
NEW! IN operator andsystem functions
Integrated JavaScript
Multi-document transactions through stored procedures and triggers
JS app logic executed in the database for high performance batching and sequencing
Scoped to a collection Language integrated, throw
statements rollback transactions
http://aka.ms/docdbjs
JS stored procedure …
Performance Levels
each collection is assigned a performance level for throughput
S2 S3S1
Performance Levels
S1 S2 S3
each collection is assigned a performance level for throughput
Performance Levels
adjust to meet the performance needs of your app
S1 S2 S3S3
http://aka.ms/docdbperf
Performance levels …
Performance Levels
Request “Units”, not to be confused with requests
Normalized unit to express work required to complete a request
Abstracts CPU, IO and memory consumption
Not all requests are created equal
Scaling through Collections
Databases are not limited in size Collections are allocated with 10GB
each Distribute data across collections for
storage and throughput scaling
Scaling through Collections
SDK Partition Resolver
NEW!
http://aka.ms/docdbshard
Enriched app experiences
DocumentDB + Search
http://aka.ms/docdbsearch
Big data and analytics
DocumentDB + HDInsight
http://aka.ms/docdbhdi
Get Started Today
build an appexplore the playground
import some data
select * from playground p where p.name = “DocumentDB”
http://aka.ms/docdbplayground http://aka.ms/docdbstarter http://aka.ms/docdbimport
Get Started with DocumentDB http://aka.ms/docdbstart
Documentation and videos http://aka.ms/docdbdocs
How does pricing work? http://aka.ms/docdbpricing
Get help on the forums http://aka.ms/docdbforum
Find us on twitter @DocumentDB
More Resources
THANK YOU!
More at Ignite DocumentDB and HDInsight
Wednesday, May 6th 10:45 – 12:00PM Hands on Lab – Building an ASP.NET MVC app
using Azure DocumentDB
Ignite Azure Challenge Sweepstakes
Attend Azure sessions and activities, track your progress online, win raffle tickets for great prizes!
Aka.ms/MyAzureChallenge
Enter this session code online: BRK2551
NO PURCHASE NECESSARY. Open only to event attendees. Winners must be present to win. Game ends May 9th, 2015. For Official Rules, see The Cloud and Enterprise Lounge or myignite.com/challenge
Visit Myignite at http://myignite.microsoft.com or download and use the Ignite Mobile App with the QR code above.
Please evaluate this sessionYour feedback is important to us!
© 2015 Microsoft Corporation. All rights reserved.