BRK2551: SELECT Latest FROM Microsoft Azure DocumentDB
By
Office Mix
Created 2 years ago
Duration 1:25:14
[Speaker: John Macintyre] Get hands on with one of Azure’s newest data platform services. Azure DocumentDB, is a fully managed NoSQL document database service designed to keep pace with the demands of modern application development. DocumentDB offers full indexing of JSON documents, SQL query capabilities and multi-document transactions. Learn how to get started with Azure DocumentDB and hear about some of the recent improvements to the service.
-
Embed
-
Social
Select the file type you wish to download
Slide Content
-
Slide 1 - SELECT Latest FROM Microsoft Azure DocumentDB
- John Macintyre
- Azure DocumentDB
- @johnmacputs
- BRK2551
-
Slide 2 - 1B,
- “websites” :
- 85B,
- “apps” :
- 22M
- “repos” :
- {
- }
-
Slide 3
- user experiences
- app development
- { modern }
-
Slide 4
- data platform
- 8
- { modern }
-
Slide 5 - SQL
-
Slide 6
- SQL
-
Slide 7 - Blob
- NOTE: update image with tool box with different tools, some without labels …
- SQL
- Search
- Key Value
- Document
-
Slide 8 - Blob
- NOTE: update image with tool box with different tools, some without labels …
- SQL
- Search
- Key Value
- Document
-
Slide 9 - Part of NoSQL family
- Built for simplicity, scale and performance
- Non-relational, no enforced schema
- Document Databases
-
Slide 10 - 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
- }
- ]
- }
-
Slide 11 - 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=”
- }
-
Slide 12
- Part of NoSQL family
- Built for simplicity, scale and performance
- Non-relational, no enforced schema
- Document Databases
- Definitely not these documents …
-
Slide 13 - Common use cases
- Catalog Data
- Preferences
- & State
- Events & Logging
- User Data & Content
- Data Exchange
-
Slide 14
- 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
-
Slide 15 - Get Started …
-
Slide 16 - 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
-
Slide 17 - 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
-
Slide 18 - 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
-
Slide 19 - 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
-
Slide 20 - Build an app …
-
Slide 21 - 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
-
Slide 22 - 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
- { }
- { }
-
Slide 23 - 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
- { }
- { }
-
Slide 24 - 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
- { }
- { }
-
Slide 25 - 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
- { }
- { }
-
Slide 26
- SDKs and Tooling
- SDKs
- Azure Portal
- Data Migration
- Studio
-
Slide 27 - Import data …
-
Slide 28 - 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
-
Slide 29 - 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
-
Slide 30 - Query over JSON …
-
Slide 31 - Query over JSON …
- NEW!
- IN operator and
- system functions
-
Slide 32 - 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
-
Slide 33 - JS stored procedure …
-
Slide 34
- Performance Levels
- each collection is assigned a performance level for throughput
- S2
- S3
- S1
-
Slide 35
- Performance Levels
- S1
- S2
- S3
- each collection is assigned a performance level for throughput
-
Slide 36
- Performance Levels
- adjust to meet the performance needs of your app
- S1
- S2
- S3
- S3
- http://aka.ms/docdbperf
-
Slide 37 - Performance levels …
-
Slide 38 - 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
-
Slide 39 - Scaling through Collections
- Databases are not limited in size
- Collections are allocated with 10GB each
- Distribute data across collections for storage and throughput scaling
-
Slide 40 - Scaling through Collections
- SDK Partition Resolver
- NEW!
- http://aka.ms/docdbshard
-
Slide 41
- Enriched app experiences
- DocumentDB + Search
- http://aka.ms/docdbsearch
-
Slide 42
- Big data and analytics
- DocumentDB + HDInsight
- http://aka.ms/docdbhdi
-
Slide 43 - Get Started Today
- build an app
- explore 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
-
Slide 44 - 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 appusing Azure DocumentDB
-
Slide 45
- 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