Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
Cloud Load Testing con Visual Studio Online
Next
Download to read offline and view in fullscreen.

Share

CDays15 - AZ08 - DocumentDB: il NoSql secondo Azure

Download to read offline

DocumentDB è il nuovo database documentale NoSQL disponibile su Microsoft Azure, particolarmente adatto agli scenari in cui è richiesta una grande scalabilità ed alte prestazioni nell'accesso ai dati.
In questa sessione analizzeremo le sue caratteristiche, capiremo come si usa e come poter sviluppare applicazioni reali che lo utilizzano.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

CDays15 - AZ08 - DocumentDB: il NoSql secondo Azure

  1. 1. AZ08 – DocumentDB: il NoSql secondo Azure Davide Benvegnù davide.benvegnu@outlook.com - @davidebenvegnu http://blog.dbtek.it/ GetLatestVersion
  2. 2. #CDays15 – Milano 24, 25 e 26 Marzo 2015 Grazie a Platinum Sponsor
  3. 3. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Chi Sono? DAVIDE BENVEGNU’ • International Development Manager @ Aruba.it • DBTek.it => Managing Director & CTO @ DBTek Ltd • Microsoft MVP in Visual Studio ALM • Speaker ad eventi nazionali (CDays, SMAU, Festival ICT…) • Membro DotNetToscana e GetLatestVersion • MSDN – MVA – CodePlex – NuGet – Slideshare… @davidebenvegnu – blog.dbtek.it GetLatestVersion
  4. 4. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Agenda • Panoramica su DocumentDB • Funzionalità • Struttura ed organizzazione • Stored Procedure, Trigger e Funzioni • Sviluppare in .Net su DocumentDB • Demo
  5. 5. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 DocumentDB • È un database NoSql documentale • Un altro database NoSQL? Non bastavano quelli esistenti? • NO! Non esiste un servizio come questo • Fully managed (Saas) • Schema free… con data model JSON • Indici automatici • Supporta l’esecuzione di JavaScript server-side (Stored Procedure, Trigger e Function)
  6. 6. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Killer feature Ma soprattutto: SELECT * FROM MyCollection
  7. 7. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Features • Interrogabile via SDK che con REST API • SDK disponibile per .Net, Node.js, JavaScript, Java e Python • Multiutente • È possibile creare utenti con SDK o REST API • Ogni user può avere permission diverse • Livello di consistenza personalizzabile (4 tipi) • Supporta le query parametriche (con @) • Supporta scenari multitenant • Supporta lo sharding e l’elastic scale
  8. 8. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Struttura
  9. 9. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Struttura • Ogni risorsa ha un ID => manuale o automatico • Ogni risorsa ha un Link univoco • Per gli attachment sono disponibili al max 2 Gb per account
  10. 10. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Organizzazione
  11. 11. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Organizzazione: Da notare Preview • Max 3 collections • Max 50 (era 5) CU • 1 CU: • 10 GB SSD • 2000 RU/sec GA (dal 08/04/2015) • Max 100 collections • Max 100 CU (soft limit) • 1 CU: • 10 GB SSD • S1: 250 RU/sec • S2: 1000 RU/sec • S3: 2500 RU/sec CU = Capacity Unit RU = Request Unit
  12. 12. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Consistenza (Coerenza) A livello Account (tutti i DB, tutte le collection) • Assoluta: garanzia totale sulla coerenza, bassa performance • Scritture ok quando commit permanente sulla maggioranza delle repliche • Letture confermate sulla maggioranza delle repliche (no letture parziali) • Associata: alta latenza in lettura • Definizione di intervalli max di operazioni e secondi • Sessione: default, media latenza in lettura • Scritture di sessione garantite • Letture di sessione garantite, altre no • Eventuale: minor garanzia sul dato, max prestazioni • Scritture e letture potenzialmente su repliche diverse
  13. 13. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 REST API 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==
  14. 14. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Stored Procedure, Trigger e Funzioni • Definiti a Collection level • Scritti in JavaScript, eseguiti server-side • Possono operare su tutti i Document della Collection • Stored procedure • Trigger • Eseguiti “Pre” oppure “Post” • Operazioni di Create, Replace e Delete • Funzioni (UDF) • Funzioni scalari • Invocabili solo dentro le query
  15. 15. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Un esempio: UDF • Non esiste l’operatore «like». Quindi? UserDefinedFunction func1 = new UserDefinedFunction() { Id = "IndexOfString", Body = @"function(t, s) { return t.search (s); }" }; SELECT * FROM c WHERE udf.IndexOfString (c.MyText, “abc123") > -1
  16. 16. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Sviluppare in .Net su DocumentDB • Nuget: • Install-Package Microsoft.Azure.Documents.Client -Pre • Versione corrente: 0.9.2-preview • Usa «Newtonsoft.Json» • Supporta LINQ!!!! • Per la connessione servono: • Endpoint url • Master Key (o Secondary Key o Read only keys…) • Praticamente tutte le operazioni sono Async • Si basa tutto sul “SelfLink”
  17. 17. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Sviluppare in .Net su DocumentDB • Uso con i Mobile Service: https://github.com/Azure/azure-documentdb-net/tree/master/azure- mobileservices-net • Domain manager e controller WebAPI che abilitano l’uso di DocumentDB come backend • Attualmente non esiste emulatore o istanza locale
  18. 18. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 demo WebDocDB & DocumentDBBlog
  19. 19. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Performance Tips • Usare un DocumentClient singleton • Cache dei SelfLink di collection e documenti • Tuning del «page size» (numero di risultati, default 100 o 1MB) • Tuning del livello di consistenza: ‘< Consistency level’ = ‘< Read latency’
  20. 20. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Riferimenti • Documentazione ufficiale di DocumentDB: http://documentdb.com • WebDocDB https://webdocdb.codeplex.com • Query playground: http://www.documentdb.com/sql/demo • Channel9: http://channel9.msdn.com/Shows/Data-Exposed/Introduction-to-Azure- DocumentDB
  21. 21. #CDays14 – Milano 25, 26 e 27 Febbraio 2014 Q&A Tutto il materiale di questa sessione su http://www.communitydays.it/ Lascia subito il feedback su questa sessione, potrai essere estratto per i nostri premi! Seguici su Twitter @CommunityDaysIT Facebook http://facebook.com/cdaysit #CDays15

DocumentDB è il nuovo database documentale NoSQL disponibile su Microsoft Azure, particolarmente adatto agli scenari in cui è richiesta una grande scalabilità ed alte prestazioni nell'accesso ai dati. In questa sessione analizzeremo le sue caratteristiche, capiremo come si usa e come poter sviluppare applicazioni reali che lo utilizzano.

Views

Total views

363

On Slideshare

0

From embeds

0

Number of embeds

4

Actions

Downloads

6

Shares

0

Comments

0

Likes

0

×