BRK2551: SELECT Latest FROM Microsoft Azure DocumentDB

[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.

Whats NewBreakoutIgnite2015
1.0x

BRK2551: SELECT Latest FROM Microsoft Azure DocumentDB

Created 2 years ago

Duration 1:25:14
lesson view count 41
[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.
Select the file type you wish to download
Slide Content
  1. SELECT Latest FROM Microsoft Azure DocumentDB

    Slide 1 - SELECT Latest FROM Microsoft Azure DocumentDB

    • John Macintyre
    • Azure DocumentDB
    • @johnmacputs
    • BRK2551
  2. 1B,

    Slide 2 - 1B,

    • “websites” :
    • 85B,
    • “apps” :
    • 22M
    • “repos” :
    • {
    • }
  3. Slide 3

    • user experiences
    • app development
    • { modern }
  4. Slide 4

    • data platform
    • 8
    • { modern }
  5. SQL

    Slide 5 - SQL

  6. Slide 6

    • SQL
  7. Blob

    Slide 7 - Blob

    • NOTE: update image with tool box with different tools, some without labels …
    • SQL
    • Search
    • Key Value
    • Document
  8. Blob

    Slide 8 - Blob

    • NOTE: update image with tool box with different tools, some without labels …
    • SQL
    • Search
    • Key Value
    • Document
  9. Part of NoSQL family

    Slide 9 - Part of NoSQL family

    • Built for simplicity, scale and performance
    • Non-relational, no enforced schema
    • Document Databases
  10. Part of NoSQL family

    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
    • }
    • ]
    • }
  11. Part of NoSQL family

    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=”
    • }
  12. Slide 12

    • Part of NoSQL family
    • Built for simplicity, scale and performance
    • Non-relational, no enforced schema
    • Document Databases
    • Definitely not these documents …
  13. Common use cases

    Slide 13 - Common use cases

    • Catalog Data
    • Preferences
    • & State
    • Events & Logging
    • User Data & Content
    • Data Exchange
  14. 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
  15. Get Started …

    Slide 15 - Get Started …

  16. Application

    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
  17. Application

    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
  18. Application

    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
  19. Application

    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
  20. Build an app …

    Slide 20 - Build an app …

  21. DocumentDB Resources

    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
  22. DocumentDB Resources

    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
    • { }
    • { }
  23. DocumentDB Resources

    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
    • { }
    • { }
  24. DocumentDB Resources

    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
    • { }
    • { }
  25. DocumentDB Resources

    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
    • { }
    • { }
  26. Slide 26

    • SDKs and Tooling
    • SDKs
    • Azure Portal
    • Data Migration
    • Studio
  27. Import data …

    Slide 27 - Import data …

  28. Migrate existing data into DocumentDB

    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
  29. Query over JSON documents

    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
  30. Query over JSON …

    Slide 30 - Query over JSON …

  31. Query over JSON …

    Slide 31 - Query over JSON …

    • NEW!
    • IN operator and
    • system functions
  32. Integrated JavaScript

    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
  33. JS stored procedure …

    Slide 33 - JS stored procedure …

  34. Slide 34

    • Performance Levels
    • each collection is assigned a performance level for throughput
    • S2
    • S3
    • S1
  35. Slide 35

    • Performance Levels
    • S1
    • S2
    • S3
    • each collection is assigned a performance level for throughput
  36. Slide 36

    • Performance Levels
    • adjust to meet the performance needs of your app
    • S1
    • S2
    • S3
    • S3
    • http://aka.ms/docdbperf
  37. Performance levels …

    Slide 37 - Performance levels …

  38. 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
  39. Scaling through Collections

    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
  40. Scaling through Collections

    Slide 40 - Scaling through Collections

    • SDK Partition Resolver
    • NEW!
    • http://aka.ms/docdbshard
  41. Slide 41

    • Enriched app experiences
    • DocumentDB + Search
    • http://aka.ms/docdbsearch
  42. Slide 42

    • Big data and analytics
    • DocumentDB + HDInsight
    • http://aka.ms/docdbhdi
  43. Get Started Today

    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
  44. Get Started with DocumentDB

    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
  45. 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