SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Cool NoSQL on Azure with 
DocumentDB 
Azure User Group Belgium
Who am I 
• Jan Hentschel 
• Senior Software Development Lead – Ultra Tendency UG 
• @Horizon_Net 
• http://janatdevelopment.com 
• Microsoft MVP for Azure
What Microsoft says about DocumentDB 
Fully managed, scalable, queryable, schemafree JSON document 
service for modern application … 
What?
What DocumentDB really is 
• Fully managed = Work on JSON data without managing VM or cluster 
infrastructure 
• Scalable = Runs on Azure  
• Queryable = JavaScript as a modern T-SQL 
• Schemafree = Document Store
What you need to know about document 
stores 
• It’s all about collections and documents 
• A collection stores a bunch of documents 
• Documents are schema-free 
• You can put any kind of documents into one collection 
• It was never easier to store your cook recipes together with your financial 
data 
• And don’t try to use your “relational mind”!!!
What you also need to know 
• Transactional support with ACID semantics 
• API exposed as REST over HTTP 
• All entities uniquely addressable by a logical URI 
• Tunable consistency 
• Tune and trade off consistency through well defined levels to suit application 
scenarios and performance needs 
• Consistency level can be weakened per read/query request
What … tunable consistency? 
Level Writes Reads 
Strong Sync quorum writes Quorum reads 
Bounded Async replication Quorum reads 
Session Async replication Session bound replica 
Eventual Async replication Any replica
Some theory … with BASE in mind 
• Eventual consistency 
• All changes will be propagated in some point in the future 
• Quorum 
• Response after data is written on (replication_factor / 2 + 1) nodes
What’s important for a developer? 
• JavaScript UDFs, Triggers, Stored Procedures 
• Language integrated transactions 
• The entire procedure is wrapped in an implicit ACID transaction 
• JavaScript exception results into aborting the transaction 
• “document oriented” SQL grammar 
• REST/HTTP APIs and client SDKs 
• .NET, Node.js, JavaScript, Python 
• C++ and Java planned 
• Asynchronous support for all operations
What’s the resource model like? 
src: http://azure.microsoft.com/en-us/ 
documentation/articles/documentdb-interactions- 
with-resources/
Resource addressing 
• API URL: 
• https://{database account}.documents.azure.com 
• Document Path: 
• /dbs/{database id}/colls/{collection id}/docs/{document id}
Current quotas 
• # of stored procedures, triggers and UDFs per collection = 25 
• # of AND clauses per query = 5 
• # of OR clauses per query = 5 
• request size of document = 256Kb 
• request size of stored procedure, trigger and UDF = 256Kb 
• For more see - http://azure.microsoft.com/en-us/ 
documentation/articles/documentdb-limits/
What’s more important for a C# developer? 
• Support gateway and direct connectivity 
• Async APIs for all operations 
• HTTP and TCP transports available 
• POCOs, inherited document types and dynamics 
LINQ!!! 
LINQ!!! 
LINQ!!!
The small print 
It’s all sandboxed so … 
… no imports are allowed 
… eval() is disallowed 
… execution is time boxed 
… resource governed for CPU, IO and memory
Enough talk! 
Lets get our hands dirty
When should you use DocumentDB 
In General 
• You don’t want to do replication and scale-out by yourself 
• You want to have tunable consistency 
• You want to do rapid development 
Compared to relational databases 
• You don’t want predefined columns 
Compared to other document stores 
• You want to use a SQL-like grammar
Last words 
DocumentDB is still preview … 
… expect some things to change 
… give feedback 
… SDKs open sourced through GitHub 
Samples available here! 
Watch out for CloudBrew on November 29th

Weitere ähnliche Inhalte

Was ist angesagt?

The CIOs Guide to NoSQL
The CIOs Guide to NoSQLThe CIOs Guide to NoSQL
The CIOs Guide to NoSQL
DATAVERSITY
 
Characteristics of no sql databases
Characteristics of no sql databasesCharacteristics of no sql databases
Characteristics of no sql databases
Dipti Borkar
 

Was ist angesagt? (20)

[PASS Summit 2016] Azure DocumentDB: A Deep Dive into Advanced Features
[PASS Summit 2016] Azure DocumentDB: A Deep Dive into Advanced Features[PASS Summit 2016] Azure DocumentDB: A Deep Dive into Advanced Features
[PASS Summit 2016] Azure DocumentDB: A Deep Dive into Advanced Features
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
Azure DocumentDB for Healthcare Integration
Azure DocumentDB for Healthcare IntegrationAzure DocumentDB for Healthcare Integration
Azure DocumentDB for Healthcare Integration
 
Mongo DB
Mongo DB Mongo DB
Mongo DB
 
The CIOs Guide to NoSQL
The CIOs Guide to NoSQLThe CIOs Guide to NoSQL
The CIOs Guide to NoSQL
 
MongoDB for Coder Training (Coding Serbia 2013)
MongoDB for Coder Training (Coding Serbia 2013)MongoDB for Coder Training (Coding Serbia 2013)
MongoDB for Coder Training (Coding Serbia 2013)
 
An Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDBAn Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDB
 
Apache CouchDB
Apache CouchDBApache CouchDB
Apache CouchDB
 
Session #2, tech session: Build realtime search by Sylvain Utard from Algolia
Session #2, tech session: Build realtime search by Sylvain Utard from AlgoliaSession #2, tech session: Build realtime search by Sylvain Utard from Algolia
Session #2, tech session: Build realtime search by Sylvain Utard from Algolia
 
CouchDB
CouchDBCouchDB
CouchDB
 
Cosmos DB at VLDB 2019
Cosmos DB at VLDB 2019Cosmos DB at VLDB 2019
Cosmos DB at VLDB 2019
 
Characteristics of no sql databases
Characteristics of no sql databasesCharacteristics of no sql databases
Characteristics of no sql databases
 
Mongo db
Mongo dbMongo db
Mongo db
 
Couch db
Couch dbCouch db
Couch db
 
Mongo db
Mongo dbMongo db
Mongo db
 
NOSQL vs SQL
NOSQL vs SQLNOSQL vs SQL
NOSQL vs SQL
 
Non Relational Databases
Non Relational DatabasesNon Relational Databases
Non Relational Databases
 
Azure document db/Cosmos DB
Azure document db/Cosmos DBAzure document db/Cosmos DB
Azure document db/Cosmos DB
 
Mongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorials
Mongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorialsMongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorials
Mongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorials
 
AzureDocumentDB
AzureDocumentDBAzureDocumentDB
AzureDocumentDB
 

Andere mochten auch (8)

Was macht eine gute App aus
Was macht eine gute App ausWas macht eine gute App aus
Was macht eine gute App aus
 
Agile Virtualisierung
Agile VirtualisierungAgile Virtualisierung
Agile Virtualisierung
 
Windows 8 Features
Windows 8 FeaturesWindows 8 Features
Windows 8 Features
 
Windows Azure Mobile Services
Windows Azure Mobile ServicesWindows Azure Mobile Services
Windows Azure Mobile Services
 
dotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Servicesdotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Services
 
Cross Platform Mobile Push Notifications with Azure Notifications Hub
Cross Platform Mobile Push Notifications with Azure Notifications HubCross Platform Mobile Push Notifications with Azure Notifications Hub
Cross Platform Mobile Push Notifications with Azure Notifications Hub
 
Mehrere Apps, ein Backend: Windows Azure Mobile Services in der Praxis
Mehrere Apps, ein Backend: Windows Azure Mobile Services in der PraxisMehrere Apps, ein Backend: Windows Azure Mobile Services in der Praxis
Mehrere Apps, ein Backend: Windows Azure Mobile Services in der Praxis
 
Api services
Api servicesApi services
Api services
 

Ähnlich wie Cool NoSQL on Azure with DocumentDB

Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3
Wen-Tien Chang
 
NoSQL and CouchDB: the view from MOO
NoSQL and CouchDB: the view from MOONoSQL and CouchDB: the view from MOO
NoSQL and CouchDB: the view from MOO
James Hollingworth
 

Ähnlich wie Cool NoSQL on Azure with DocumentDB (20)

Microsoft Azure DocumentDB - Global Azure Bootcamp 2016
Microsoft Azure DocumentDB -  Global Azure Bootcamp 2016Microsoft Azure DocumentDB -  Global Azure Bootcamp 2016
Microsoft Azure DocumentDB - Global Azure Bootcamp 2016
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDB
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
 
MongoDB Days UK: Using MongoDB to Build a Fast and Scalable Content Repositor...
MongoDB Days UK: Using MongoDB to Build a Fast and Scalable Content Repositor...MongoDB Days UK: Using MongoDB to Build a Fast and Scalable Content Repositor...
MongoDB Days UK: Using MongoDB to Build a Fast and Scalable Content Repositor...
 
Select Stars: A SQL DBA's Introduction to Azure Cosmos DB (SQL Saturday Orego...
Select Stars: A SQL DBA's Introduction to Azure Cosmos DB (SQL Saturday Orego...Select Stars: A SQL DBA's Introduction to Azure Cosmos DB (SQL Saturday Orego...
Select Stars: A SQL DBA's Introduction to Azure Cosmos DB (SQL Saturday Orego...
 
Reactive Development: Commands, Actors and Events. Oh My!!
Reactive Development: Commands, Actors and Events.  Oh My!!Reactive Development: Commands, Actors and Events.  Oh My!!
Reactive Development: Commands, Actors and Events. Oh My!!
 
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesDropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
 
Webcast: DevOps in AWS is different! How can containers help?
Webcast: DevOps in AWS is different! How can containers help? Webcast: DevOps in AWS is different! How can containers help?
Webcast: DevOps in AWS is different! How can containers help?
 
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...
Select Stars: A DBA's Guide to Azure Cosmos DB (Chicago Suburban SQL Server U...
 
Big Data Developers Moscow Meetup 1 - sql on hadoop
Big Data Developers Moscow Meetup 1  - sql on hadoopBig Data Developers Moscow Meetup 1  - sql on hadoop
Big Data Developers Moscow Meetup 1 - sql on hadoop
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3
 
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
Select Stars: A DBA's Guide to Azure Cosmos DB (SQL Saturday Oslo 2018)
 
Non-Relational Databases at ACCU2011
Non-Relational Databases at ACCU2011Non-Relational Databases at ACCU2011
Non-Relational Databases at ACCU2011
 
Full stack development using javascript what and why - ajay chandravadiya
Full stack development using javascript   what and why - ajay chandravadiyaFull stack development using javascript   what and why - ajay chandravadiya
Full stack development using javascript what and why - ajay chandravadiya
 
Open Source SQL Databases
Open Source SQL DatabasesOpen Source SQL Databases
Open Source SQL Databases
 
NoSQL and CouchDB: the view from MOO
NoSQL and CouchDB: the view from MOONoSQL and CouchDB: the view from MOO
NoSQL and CouchDB: the view from MOO
 
Azure DocumentDB Overview
Azure DocumentDB OverviewAzure DocumentDB Overview
Azure DocumentDB Overview
 
NoSQL for great good [hanoi.rb talk]
NoSQL for great good [hanoi.rb talk]NoSQL for great good [hanoi.rb talk]
NoSQL for great good [hanoi.rb talk]
 
8. Software Development Security
8. Software Development Security8. Software Development Security
8. Software Development Security
 
Oracle OpenWo2014 review part 03 three_paa_s_database
Oracle OpenWo2014 review part 03 three_paa_s_databaseOracle OpenWo2014 review part 03 three_paa_s_database
Oracle OpenWo2014 review part 03 three_paa_s_database
 

Mehr von Jan Hentschel

Datenbindung mit XAML in Windows 8
Datenbindung mit XAML in Windows 8Datenbindung mit XAML in Windows 8
Datenbindung mit XAML in Windows 8
Jan Hentschel
 
Windows 8 für Entwickler
Windows 8 für EntwicklerWindows 8 für Entwickler
Windows 8 für Entwickler
Jan Hentschel
 
Was ist neu an Windows 8
Was ist neu an Windows 8Was ist neu an Windows 8
Was ist neu an Windows 8
Jan Hentschel
 
Grundlagen des UI Designs
Grundlagen des UI DesignsGrundlagen des UI Designs
Grundlagen des UI Designs
Jan Hentschel
 
Einführung in Blend
Einführung in BlendEinführung in Blend
Einführung in Blend
Jan Hentschel
 
Windows Azure SQL Databases
Windows Azure SQL DatabasesWindows Azure SQL Databases
Windows Azure SQL Databases
Jan Hentschel
 
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreibenSQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
Jan Hentschel
 
MongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureMongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows Azure
Jan Hentschel
 

Mehr von Jan Hentschel (8)

Datenbindung mit XAML in Windows 8
Datenbindung mit XAML in Windows 8Datenbindung mit XAML in Windows 8
Datenbindung mit XAML in Windows 8
 
Windows 8 für Entwickler
Windows 8 für EntwicklerWindows 8 für Entwickler
Windows 8 für Entwickler
 
Was ist neu an Windows 8
Was ist neu an Windows 8Was ist neu an Windows 8
Was ist neu an Windows 8
 
Grundlagen des UI Designs
Grundlagen des UI DesignsGrundlagen des UI Designs
Grundlagen des UI Designs
 
Einführung in Blend
Einführung in BlendEinführung in Blend
Einführung in Blend
 
Windows Azure SQL Databases
Windows Azure SQL DatabasesWindows Azure SQL Databases
Windows Azure SQL Databases
 
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreibenSQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
SQL Server auf Infrastructure-as-a-Services (IaaS) in der Cloud betreiben
 
MongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureMongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows Azure
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Kürzlich hochgeladen (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Cool NoSQL on Azure with DocumentDB

  • 1. Cool NoSQL on Azure with DocumentDB Azure User Group Belgium
  • 2. Who am I • Jan Hentschel • Senior Software Development Lead – Ultra Tendency UG • @Horizon_Net • http://janatdevelopment.com • Microsoft MVP for Azure
  • 3. What Microsoft says about DocumentDB Fully managed, scalable, queryable, schemafree JSON document service for modern application … What?
  • 4. What DocumentDB really is • Fully managed = Work on JSON data without managing VM or cluster infrastructure • Scalable = Runs on Azure  • Queryable = JavaScript as a modern T-SQL • Schemafree = Document Store
  • 5. What you need to know about document stores • It’s all about collections and documents • A collection stores a bunch of documents • Documents are schema-free • You can put any kind of documents into one collection • It was never easier to store your cook recipes together with your financial data • And don’t try to use your “relational mind”!!!
  • 6. What you also need to know • Transactional support with ACID semantics • API exposed as REST over HTTP • All entities uniquely addressable by a logical URI • Tunable consistency • Tune and trade off consistency through well defined levels to suit application scenarios and performance needs • Consistency level can be weakened per read/query request
  • 7. What … tunable consistency? Level Writes Reads Strong Sync quorum writes Quorum reads Bounded Async replication Quorum reads Session Async replication Session bound replica Eventual Async replication Any replica
  • 8. Some theory … with BASE in mind • Eventual consistency • All changes will be propagated in some point in the future • Quorum • Response after data is written on (replication_factor / 2 + 1) nodes
  • 9. What’s important for a developer? • JavaScript UDFs, Triggers, Stored Procedures • Language integrated transactions • The entire procedure is wrapped in an implicit ACID transaction • JavaScript exception results into aborting the transaction • “document oriented” SQL grammar • REST/HTTP APIs and client SDKs • .NET, Node.js, JavaScript, Python • C++ and Java planned • Asynchronous support for all operations
  • 10. What’s the resource model like? src: http://azure.microsoft.com/en-us/ documentation/articles/documentdb-interactions- with-resources/
  • 11. Resource addressing • API URL: • https://{database account}.documents.azure.com • Document Path: • /dbs/{database id}/colls/{collection id}/docs/{document id}
  • 12. Current quotas • # of stored procedures, triggers and UDFs per collection = 25 • # of AND clauses per query = 5 • # of OR clauses per query = 5 • request size of document = 256Kb • request size of stored procedure, trigger and UDF = 256Kb • For more see - http://azure.microsoft.com/en-us/ documentation/articles/documentdb-limits/
  • 13. What’s more important for a C# developer? • Support gateway and direct connectivity • Async APIs for all operations • HTTP and TCP transports available • POCOs, inherited document types and dynamics LINQ!!! LINQ!!! LINQ!!!
  • 14. The small print It’s all sandboxed so … … no imports are allowed … eval() is disallowed … execution is time boxed … resource governed for CPU, IO and memory
  • 15. Enough talk! Lets get our hands dirty
  • 16. When should you use DocumentDB In General • You don’t want to do replication and scale-out by yourself • You want to have tunable consistency • You want to do rapid development Compared to relational databases • You don’t want predefined columns Compared to other document stores • You want to use a SQL-like grammar
  • 17. Last words DocumentDB is still preview … … expect some things to change … give feedback … SDKs open sourced through GitHub Samples available here! Watch out for CloudBrew on November 29th

Hinweis der Redaktion

  1. And don’t try to use your “relational mind” Don’t try to put the metaphors you know from the SQL world into a document store
  2. STRONG - all writes are visible to all readers. Writes synchronously committed by a majority quorum of replicas and reads are acknowledged by the majority read quorum BOUNDED STALENESS - guaranteed ordering of writes, reads adhere to minimum freshness. Writes are propagated asynchronously, reads are acknowledged by majority quorum lagging by at most K prefixes SESSION - read your own writes. Writes are propagated asynchronously while reads for a session are issued against the replica that can serve the requested version EVENTUAL - reads eventually converge with writes. Writes are propagated asynchronously while reads can be acknowledged by any replica. Readers may view older data then previously observed. Session - ideal consistency and performance tradeoff for many application scenarios. High performance writes and reads with predictable consistency
  3. BASE basically available = a version can be asked for at any time soft state = version and state of the data is volatile eventual consistency = all change will be propagated in some point in the future
  4. Database Account – A database account is associated with one or more capacity units representing provisioned document storage and throughput, a set of databases and blob storage. You can create one or more database accounts using your Azure subscription. Database - A database is a logical container of document storage partitioned across collections. It is also a users container. User - The logical namespace for scoping/partitioning permissions. Permission - An authorization token associated with a user for authorized access to a specific resource. Collection - A collection is a container of JSON documents and associated JavaScript application logic. Stored Procedure - Application logic written in JavaScript which is registered with a collection and transactionally executed within the database engine. Trigger - Application logic written in JavaScript modeling side effects associated with an insert, replace or delete operations. UDF - A side effect free, application logic written in JavaScript. UDFs enable you to model a custom query operator and thereby extend the core DocumentDB query language. Document - User defined (arbitrary) JSON content. By default, no schema needs to be defined or secondary indices need to be provided for all the documents added to a collection. Attachment - Attachment are special documents containing references and associated metadata to an external blob/media. The developer can choose to have the blob managed by DocumentDB or store it with an external blob service provider such as OneDrive, Dropbox etc.