user experiencesapp development data platform 8.

48
park the future. May 4 – 8, 2015 Chicago, IL

Transcript of user experiencesapp development data platform 8.

Page 1: user experiencesapp development data platform 8.

Spark the future.

May 4 – 8, 2015Chicago, IL

Page 2: user experiencesapp development data platform 8.

SELECT Latest FROM Microsoft Azure DocumentDBJohn MacintyreAzure DocumentDB@johnmacputs

BRK2551

Page 3: user experiencesapp development data platform 8.

1B,

“websites” :

85B,

“apps” :

22M

“repos” :

{

}

Page 4: user experiencesapp development data platform 8.

user experiences app development

{ modern }

Page 5: user experiencesapp development data platform 8.

data platform

8

{ modern }

Page 6: user experiencesapp development data platform 8.

SQL

Page 7: user experiencesapp development data platform 8.

SQL

Page 8: user experiencesapp development data platform 8.

BlobSQL SearchKey Value Document

Page 9: user experiencesapp development data platform 8.

BlobSQL SearchKey Value Document

Page 10: user experiencesapp development data platform 8.

Part of NoSQL family Built for simplicity, scale and performance Non-relational, no enforced schema

Document Databases

Page 11: user experiencesapp development data platform 8.

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 } ] }

Page 12: user experiencesapp development data platform 8.

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=” }

Page 13: user experiencesapp development data platform 8.

Part of NoSQL family Built for simplicity, scale and performance Non-relational, no enforced schema

Document Databases

Definitely not these documents …

Page 14: user experiencesapp development data platform 8.

Common use cases

Catalog Data

Preferences & State

Events & Logging

User Data & Content

Data Exchange

Page 15: user experiencesapp development data platform 8.

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

Page 16: user experiencesapp development data platform 8.

Get Started …

Page 17: user experiencesapp development data platform 8.

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

Page 18: user experiencesapp development data platform 8.

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

Page 19: user experiencesapp development data platform 8.

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

Page 20: user experiencesapp development data platform 8.

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

Page 21: user experiencesapp development data platform 8.

Build an app …

Page 22: user experiencesapp development data platform 8.

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

Page 23: user experiencesapp development data platform 8.

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

{ }

{ }

Page 24: user experiencesapp development data platform 8.

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

{ }{ }

Page 25: user experiencesapp development data platform 8.

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

{ }{ }

Page 26: user experiencesapp development data platform 8.

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

{ }{ }

Page 27: user experiencesapp development data platform 8.

SDKs and Tooling

SDKs

Azure Portal Data Migration

Studio

Page 28: user experiencesapp development data platform 8.

Import data …

Page 29: user experiencesapp development data platform 8.

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

Page 30: user experiencesapp development data platform 8.

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

Page 31: user experiencesapp development data platform 8.

Query over JSON …

Page 32: user experiencesapp development data platform 8.

Query over JSON …

NEW! IN operator andsystem functions

Page 33: user experiencesapp development data platform 8.

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

Page 34: user experiencesapp development data platform 8.

JS stored procedure …

Page 35: user experiencesapp development data platform 8.

Performance Levels

each collection is assigned a performance level for throughput

S2 S3S1

Page 36: user experiencesapp development data platform 8.

Performance Levels

S1 S2 S3

each collection is assigned a performance level for throughput

Page 37: user experiencesapp development data platform 8.

Performance Levels

adjust to meet the performance needs of your app

S1 S2 S3S3

http://aka.ms/docdbperf

Page 38: user experiencesapp development data platform 8.

Performance levels …

Page 39: user experiencesapp development data platform 8.

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

Page 40: user experiencesapp development data platform 8.

Scaling through Collections

Databases are not limited in size Collections are allocated with 10GB

each Distribute data across collections for

storage and throughput scaling

Page 41: user experiencesapp development data platform 8.

Scaling through Collections

SDK Partition Resolver

NEW!

http://aka.ms/docdbshard

Page 42: user experiencesapp development data platform 8.

Enriched app experiences

DocumentDB + Search

http://aka.ms/docdbsearch

Page 43: user experiencesapp development data platform 8.

Big data and analytics

DocumentDB + HDInsight

http://aka.ms/docdbhdi

Page 44: user experiencesapp development data platform 8.

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

Page 45: user experiencesapp development data platform 8.

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

Page 46: user experiencesapp development data platform 8.

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

Page 47: user experiencesapp development data platform 8.

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!

Page 48: user experiencesapp development data platform 8.

© 2015 Microsoft Corporation. All rights reserved.