user experiencesapp development data platform 8

Post on 22-Dec-2015

225 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

top related