SlideShare a Scribd company logo
1 of 14
Azure NoSQL approach: DocumentDB
ABC… Azure Best Contents
Davide Benvegnù
davide.benvegnu@gmail.com
blog.dbtek.it
www.davidebenvegnu.com
@davidebenvegnu
#AzureABC
Chi sono
• International Development Manager – Aruba.it
• Freelancer – DBTek.it
• Membro di DotNetToscana
• Speaker a eventi nazionali (Community Days, Festival ICT…)
• Trainer (a breve 2 corsi su Microsoft Virtual Academy)
• Main fields: Azure e VSALM (Team Foundation Server e VSO)
Davide Benvegnù
#AzureABC
• Panoramica su DocumentDB
• Funzionalità
• Struttura ed organizzazione
• Stored Procedure, Trigger e Funzioni
• Sviluppare in .Net su DocumentDB
• Demo
Agenda
#AzureABC
• È un database NoSQL
• Un altro database NoSQL? Non bastavano quelli esistenti?
• NO! Non esiste un servizio come questo
• Fully managed (SaaS)
• Schema free… con data model JSON
• Indicizzato
• Supporta l’esecuzione di JavaScript server-side (attraverso
Stored Procedure, Trigger e funzioni)
DocumentDB
#AzureABC
Ma soprattutto:
SELECT * FROM MyCollection
Killer feature
#AzureABC
• Si può creare e gestire solo dall’Azure Portal (preview)
• Interrogabile via SDK che con REST API
• SDK disponibile per .Net, Node.js, JavaScript e Python
• Multiutente
• È possibile creare utenti con SDK o REST API
• Ogni user può avere permission diverse
• Livello di consistenza personalizzabile
• 4 tipi
• Implementa l’Elastic Scale
Features
#AzureABC
Il servizio espone delle API RESTful con autenticazione HMAC
• Anche l’SDK usa queste API
• API Base Url
https://{account_name}.documents.azure.com
• Document Path:
/dbs/{database_link}/colls/{collection_link}/docs/{document_link}
• Esempio:
https://dbtekddb.documents.azure.com/dbs/QDo9AA==/colls/QDo9AM-
JWAE=/docs/ ju1TAP hIFAAJAAAAAAAAAA==
REST API
#AzureABC
Struttura
#AzureABC
• Ogni risorsa ha un ID => nome
• Ogni risorsa ha un Link univoco => ID
• Per gli attachment sono disponibili al max 2 Gb per account
Struttura
#AzureABC
Organizzazione
1 Capacity Unit comprende:
• 10 Gb di spazio su SSD
• 2.000 richieste per
secondo
• Max 3 collections ???
1 collection «occupa» 3.33 Gb
Preview: max 5 CU
#AzureABC
• Definiti a Collection level
• Scritti in JavaScript, eseguiti server-side
• Stored procedure
• Possono operare su tutti i Document della Collection
• Trigger
• Eseguiti “Pre” oppure “Post”
• Operazioni di Create, Replace e Delete
• Funzioni (UDF)
• Funzioni scalari
• Invocabili solo dentro le query
Stored Procedure,Trigger e Funzioni
#AzureABC
• Nuget:
• Install-Package Microsoft.Azure.Documents.Client -Pre
• Versione corrente: 0.9.0-preview
• Usa «Newtonsoft.Json»
• Supporta LINQ!!!!
• Per la connessione servono:
• Endpoint url
• Master Key (o Secondary Key)
• Praticamente tutte le operazioni sono Async
• Si basa tutto sul “SelfLink”
Sviluppare in .Net su DocumentDB
#AzureABC
demo
WebDocDB
DocumentDB Web Manager
#AzureABC
• Documentazione ufficiale di DocumentDB:
http://documentdb.com
• WebDocDB
https://webdocdb.codeplex.com
• Blog:
http://blog.dbtek.it/search/label/Azure
• Channel9:
http://channel9.msdn.com/Shows/Data-Exposed/Introduction-to-Azure-
DocumentDB
Riferimenti
#AzureABC

More Related Content

What's hot

Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017
MongoDB
 
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
MongoDB
 

What's hot (20)

SQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybaseSQL Server Data Virtualization with polybase
SQL Server Data Virtualization with polybase
 
Dal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developersDal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developers
 
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
Azure Day Rome 2019 Reloaded - Utilizzare Azure Kubernetes Service per i nost...
 
AWS CDK infrastructure is code
AWS CDK infrastructure is codeAWS CDK infrastructure is code
AWS CDK infrastructure is code
 
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
Come utilizzare AWS Database Migration Service per migrare SQL Server ad Amaz...
 
Azure SQL Database Ledger
Azure SQL Database LedgerAzure SQL Database Ledger
Azure SQL Database Ledger
 
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017
 
Azure Mobile Services con il .NET Framework
Azure Mobile Services con il .NET FrameworkAzure Mobile Services con il .NET Framework
Azure Mobile Services con il .NET Framework
 
SQL Server in AWS
SQL Server in AWSSQL Server in AWS
SQL Server in AWS
 
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on AzureSQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
SQL Saturday 871 - Sardegna 2019 - SQL Server DR on Azure
 
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon AuroraCome utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
Come utilizzare AWS DMS per migrare SQL Server ad Amazon Aurora
 
SQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: SicurezzaSQL Server Back to Basics: Sicurezza
SQL Server Back to Basics: Sicurezza
 
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
IaC - Infrastructure as Code, gestire infrastrutture cloud tramite file di co...
 
SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
 
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
Creating Highly-Available MongoDB Microservices with Docker Containers and Ku...
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databases
 
Super-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costsSuper-scaling Magento with Docker, micro-services and micro-costs
Super-scaling Magento with Docker, micro-services and micro-costs
 
Cost Optimization - Global Azure Bootcamp 2019
Cost Optimization - Global Azure Bootcamp 2019Cost Optimization - Global Azure Bootcamp 2019
Cost Optimization - Global Azure Bootcamp 2019
 
Azure sql database
Azure sql databaseAzure sql database
Azure sql database
 

Similar to Azure No-Sql approach: DocumentDB

Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2
Emanuele Zanchettin
 
Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015
Codemotion
 
Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campus
DotNetCampus
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015
Codemotion
 

Similar to Azure No-Sql approach: DocumentDB (20)

Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
Database project alla riscossa
Database project alla riscossaDatabase project alla riscossa
Database project alla riscossa
 
MyTask
MyTaskMyTask
MyTask
 
Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2
 
Applicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore RomeoApplicazioni HTML5 Superveloci - Salvatore Romeo
Applicazioni HTML5 Superveloci - Salvatore Romeo
 
Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.
Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.
Funziona! allora non toccarlo, ovvero l'analisi d'infrastruttura in esercizio.
 
Windows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppoWindows azure - abbattere tempi e costi di sviluppo
Windows azure - abbattere tempi e costi di sviluppo
 
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database2014.11.14 Implementare e mantenere un progetto Azure SQL Database
2014.11.14 Implementare e mantenere un progetto Azure SQL Database
 
Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015
 
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDTYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
 
Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campus
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech Lab
 
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
 
Data flow
Data flowData flow
Data flow
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOps
 
Blazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo GrecoBlazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo Greco
 

More from Davide Benvegnù

More from Davide Benvegnù (20)

DevSecOps Done Right - Strategies and Tools.pptx
DevSecOps Done Right - Strategies and Tools.pptxDevSecOps Done Right - Strategies and Tools.pptx
DevSecOps Done Right - Strategies and Tools.pptx
 
Secure Your Open Source Projects For Free
Secure Your Open Source Projects For FreeSecure Your Open Source Projects For Free
Secure Your Open Source Projects For Free
 
Microsoft Skills Bootcamp - The power of GitHub and Azure
Microsoft Skills Bootcamp - The power of GitHub and AzureMicrosoft Skills Bootcamp - The power of GitHub and Azure
Microsoft Skills Bootcamp - The power of GitHub and Azure
 
All Around Azure: DevOps with GitHub - Managing the Flow of Work
All Around Azure: DevOps with GitHub - Managing the Flow of WorkAll Around Azure: DevOps with GitHub - Managing the Flow of Work
All Around Azure: DevOps with GitHub - Managing the Flow of Work
 
CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions
 CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions  CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions
CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions
 
GitHub Actions: your free CI engine (and much more)
GitHub Actions: your free CI engine (and much more)GitHub Actions: your free CI engine (and much more)
GitHub Actions: your free CI engine (and much more)
 
Life of a Remote Developer - Productivity tips (MSBuild 2020)
Life of a Remote Developer - Productivity tips (MSBuild 2020)Life of a Remote Developer - Productivity tips (MSBuild 2020)
Life of a Remote Developer - Productivity tips (MSBuild 2020)
 
Consolidating Infrastructure with Azure Kubernetes Service - MS Online Tech F...
Consolidating Infrastructure with Azure Kubernetes Service - MS Online Tech F...Consolidating Infrastructure with Azure Kubernetes Service - MS Online Tech F...
Consolidating Infrastructure with Azure Kubernetes Service - MS Online Tech F...
 
Debugging and Interacting with Production Applications - MS Online Tech Forum
Debugging and Interacting with Production Applications - MS Online Tech ForumDebugging and Interacting with Production Applications - MS Online Tech Forum
Debugging and Interacting with Production Applications - MS Online Tech Forum
 
Architect your app modernization journey with containers on Microsoft Azure
Architect your app modernization journey with containers on Microsoft AzureArchitect your app modernization journey with containers on Microsoft Azure
Architect your app modernization journey with containers on Microsoft Azure
 
Build 2019 HK - Deep Dive notable announcements
Build 2019 HK - Deep Dive notable announcementsBuild 2019 HK - Deep Dive notable announcements
Build 2019 HK - Deep Dive notable announcements
 
How I choose which services to use in Azure
How I choose which services to use in AzureHow I choose which services to use in Azure
How I choose which services to use in Azure
 
Secure your applications with Azure AD and Key Vault
Secure your applications with Azure AD and Key VaultSecure your applications with Azure AD and Key Vault
Secure your applications with Azure AD and Key Vault
 
Microservices with Azure Service Fabric
Microservices with Azure Service FabricMicroservices with Azure Service Fabric
Microservices with Azure Service Fabric
 
Develop a Serverless Integration Platform for the Enterprise
Develop a Serverless Integration Platform for the EnterpriseDevelop a Serverless Integration Platform for the Enterprise
Develop a Serverless Integration Platform for the Enterprise
 
.NET microservices with Azure Service Fabric
.NET microservices with Azure Service Fabric.NET microservices with Azure Service Fabric
.NET microservices with Azure Service Fabric
 
SharePoint Disaster Recovery in Microsoft Azure
SharePoint Disaster Recovery in Microsoft AzureSharePoint Disaster Recovery in Microsoft Azure
SharePoint Disaster Recovery in Microsoft Azure
 
Microsoft TechSummit - Deploy your Solution to IaaS and PaaS with VSTS and Az...
Microsoft TechSummit - Deploy your Solution to IaaS and PaaS with VSTS and Az...Microsoft TechSummit - Deploy your Solution to IaaS and PaaS with VSTS and Az...
Microsoft TechSummit - Deploy your Solution to IaaS and PaaS with VSTS and Az...
 
VS2017PI - Le novità di visual studio team services
VS2017PI - Le novità di visual studio team servicesVS2017PI - Le novità di visual studio team services
VS2017PI - Le novità di visual studio team services
 
Accelerate Your Bot Development with DevOps
Accelerate Your Bot Development with DevOpsAccelerate Your Bot Development with DevOps
Accelerate Your Bot Development with DevOps
 

Azure No-Sql approach: DocumentDB

  • 1. Azure NoSQL approach: DocumentDB ABC… Azure Best Contents Davide Benvegnù davide.benvegnu@gmail.com blog.dbtek.it www.davidebenvegnu.com @davidebenvegnu #AzureABC
  • 2. Chi sono • International Development Manager – Aruba.it • Freelancer – DBTek.it • Membro di DotNetToscana • Speaker a eventi nazionali (Community Days, Festival ICT…) • Trainer (a breve 2 corsi su Microsoft Virtual Academy) • Main fields: Azure e VSALM (Team Foundation Server e VSO) Davide Benvegnù #AzureABC
  • 3. • Panoramica su DocumentDB • Funzionalità • Struttura ed organizzazione • Stored Procedure, Trigger e Funzioni • Sviluppare in .Net su DocumentDB • Demo Agenda #AzureABC
  • 4. • È un database NoSQL • Un altro database NoSQL? Non bastavano quelli esistenti? • NO! Non esiste un servizio come questo • Fully managed (SaaS) • Schema free… con data model JSON • Indicizzato • Supporta l’esecuzione di JavaScript server-side (attraverso Stored Procedure, Trigger e funzioni) DocumentDB #AzureABC
  • 5. Ma soprattutto: SELECT * FROM MyCollection Killer feature #AzureABC
  • 6. • Si può creare e gestire solo dall’Azure Portal (preview) • Interrogabile via SDK che con REST API • SDK disponibile per .Net, Node.js, JavaScript e Python • Multiutente • È possibile creare utenti con SDK o REST API • Ogni user può avere permission diverse • Livello di consistenza personalizzabile • 4 tipi • Implementa l’Elastic Scale Features #AzureABC
  • 7. Il servizio espone delle API RESTful con autenticazione HMAC • Anche l’SDK usa queste API • API Base Url https://{account_name}.documents.azure.com • Document Path: /dbs/{database_link}/colls/{collection_link}/docs/{document_link} • Esempio: https://dbtekddb.documents.azure.com/dbs/QDo9AA==/colls/QDo9AM- JWAE=/docs/ ju1TAP hIFAAJAAAAAAAAAA== REST API #AzureABC
  • 9. • Ogni risorsa ha un ID => nome • Ogni risorsa ha un Link univoco => ID • Per gli attachment sono disponibili al max 2 Gb per account Struttura #AzureABC
  • 10. Organizzazione 1 Capacity Unit comprende: • 10 Gb di spazio su SSD • 2.000 richieste per secondo • Max 3 collections ??? 1 collection «occupa» 3.33 Gb Preview: max 5 CU #AzureABC
  • 11. • Definiti a Collection level • Scritti in JavaScript, eseguiti server-side • Stored procedure • Possono operare su tutti i Document della Collection • Trigger • Eseguiti “Pre” oppure “Post” • Operazioni di Create, Replace e Delete • Funzioni (UDF) • Funzioni scalari • Invocabili solo dentro le query Stored Procedure,Trigger e Funzioni #AzureABC
  • 12. • Nuget: • Install-Package Microsoft.Azure.Documents.Client -Pre • Versione corrente: 0.9.0-preview • Usa «Newtonsoft.Json» • Supporta LINQ!!!! • Per la connessione servono: • Endpoint url • Master Key (o Secondary Key) • Praticamente tutte le operazioni sono Async • Si basa tutto sul “SelfLink” Sviluppare in .Net su DocumentDB #AzureABC
  • 14. • Documentazione ufficiale di DocumentDB: http://documentdb.com • WebDocDB https://webdocdb.codeplex.com • Blog: http://blog.dbtek.it/search/label/Azure • Channel9: http://channel9.msdn.com/Shows/Data-Exposed/Introduction-to-Azure- DocumentDB Riferimenti #AzureABC