Casi d'uso comuni di Azure Cosmos DB

SI APPLICA A: Nosql Mongodb Cassandra Gremlin Tabella

Questo articolo fornisce una panoramica di diversi casi d'uso comuni per Azure Cosmos DB. Le raccomandazioni di questo articolo fungono da punto di partenza durante lo sviluppo dell'applicazione con Azure Cosmos DB.

Alla fine della lettura, si avranno le risposte alle domande seguenti:

  • Quali sono i casi d'uso comuni per Azure Cosmos DB?
  • Quali sono i vantaggi dell'uso di Azure Cosmos DB per le applicazioni di vendita al dettaglio?
  • Quali sono i vantaggi dell'uso di Azure Cosmos DB come archivio dati per sistemi Internet delle cose (IoT)?
  • Quali sono i vantaggi dell'uso di Azure Cosmos DB per le applicazioni Web e per dispositivi mobili?

Introduzione

Azure Cosmos DB è la soluzione di Azure per un database NoSQL veloce, con API aperte per qualsiasi scalabilità. Il servizio è progettato per consentire ai clienti di ridimensionare in modo elastico e indipendente velocità effettiva e memoria tra più aree geografiche. Azure Cosmos DB è il primo servizio di database distribuito oggi a livello globale in grado di offrire contratti di servizio comprendenti velocità effettiva, latenza, disponibilità e coerenza.

Azure Cosmos DB è un database multimodello distribuito a livello globale che viene usato in un'ampia gamma di applicazioni e casi di utilizzo. È un'ottima scelta per le applicazioni senza server che richiedono tempi di risposta nell'ordine dei millisecondi e che devono essere ridimensionate rapidamente e a livello globale. Supporta più modelli di dati (chiave-valore, documenti, grafici e columnar) e molte API di Azure Cosmos DB per l'accesso ai dati, tra cui API per MongoDB, API per NoSQL, API per Gremlin e API per Table in modo nativo e in modo estendibile.

Di seguito sono indicati alcuni attributi di Azure Cosmos DB che lo rendono particolarmente adatto ad applicazioni a prestazioni elevate destinate a una distribuzione globale.

  • Azure Cosmos DB partiziona in modo nativo i dati per la disponibilità e la scalabilità elevate. Azure Cosmos DB garantisce al 99,99% disponibilità, velocità effettiva, bassa latenza e coerenza per tutti gli account in una singola area e per tutti gli account in più aree con coerenza media. Garantisce poi al 99,999% la disponibilità in lettura per tutti gli account di database in più aree.
  • Azure Cosmos DB ha una risorsa di archiviazione basata su SSD con tempi di risposta a bassa latenza nell'ordine di millisecondi.
  • Il supporto di Azure Cosmos DB per i livelli di coerenza di tipo eventuale, prefisso coerente, sessione e con obsolescenza associata consente una flessibilità completa e un basso rapporto costo-prestazioni. Nessun servizio di database offre una flessibilità maggiore di Azure Cosmos DB in termini di coerenza dei livelli.
  • Azure Cosmos DB ha un modello di determinazione dei prezzi flessibile e semplice da usare che calcola in modo indipendente lo spazio di archiviazione e la velocità effettiva.
  • Il modello di velocità effettiva riservata di Azure Cosmos DB consente un approccio in termini di numero di letture/scritture invece che di CPU/memoria/operazioni di I/O dell'hardware sottostante.
  • La progettazione di Azure Cosmos DB consente la scalabilità di elevati volumi di richieste, nell'ordine di trilioni di richieste al giorno.

Questi attributi sono utili nel caso di applicazioni Web, mobili, di gioco e IoT che necessitano di tempi di risposta ridotti e che devono gestire grandi quantità di letture e scritture.

IoT e dati telematici

I casi di utilizzo IoT condividono di solito alcuni modelli di inserimento, elaborazione e archiviazione dei dati. Questi sistemi devono prima di tutto inserire grandi quantità di dati dai sensori dei dispositivi di diverse impostazioni locali. In secondo luogo, questi sistemi elaborano e analizzano i dati di streaming per ottenere informazioni in tempo reale. I dati vengono quindi archiviati nell'archiviazione offline sicura per l'analisi batch. Microsoft Azure offre servizi avanzati che possono essere applicati per i casi d'uso di IoT, inclusi Azure Cosmos DB, Hub eventi di Azure, Analisi di flusso di Azure, Hub di notifica di Azure, Azure Machine Learning, Azure HDInsight e Power BI.

Architettura di riferimento di IoT per Azure Cosmos DB

Grandi quantità di dati possono essere acquisite da Hub eventi di Azure che consente di inserire i dati con una velocità effettiva elevata e una bassa latenza. I dati inseriti che devono essere elaborati per ottenere informazioni in tempo reale possono essere incanalati in Analisi di flusso di Azure per l'analisi in tempo reale. I dati possono essere caricati in Azure Cosmos DB per l'esecuzione di query ad hoc. Una volta caricati in Azure Cosmos DB, i dati sono pronti per l'esecuzione delle query. Inoltre, i nuovi dati e le modifiche ai dati esistenti possono essere letti nel feed di modifica. Il feed di modifiche è un log permanente e aggiunge solo i log che archivia le modifiche ai contenitori di Azure Cosmos DB in ordine sequenziale. È quindi possibile usare tutti i dati o solo le modifiche ai dati in Azure Cosmos DB come dati di riferimento come parte dell'analisi in tempo reale. Inoltre, possono essere ulteriormente affinati ed elaborati connettendo i dati di Azure Cosmos DB a HDInsight per processi Pig, Hive o MapReduce. I dati affinati vengono quindi ricaricati in Azure Cosmos DB per la creazione di report.

Per una soluzione IoT di esempio con Azure Cosmos DB, Hub eventi e Apache Storm, vedere il repository hdinsight-storm-examples in GitHub.

Per altre informazioni sulle offerte di Azure per IoT, vedere Creare il proprio "Internet delle cose".

Vendite e marketing

Azure Cosmos DB viene ampiamente usato nelle piattaforme di e-commerce di Microsoft che eseguono Windows Store e XBox Live. Viene inoltre usato nel settore della vendita al dettaglio per l'archiviazione dei dati dei cataloghi e per il recupero degli eventi nelle pipeline di elaborazione degli ordini.

Gli scenari di utilizzo dei dati di un catalogo includono l'archiviazione e l'esecuzione di query di un set di attributi per entità come persone, luoghi e prodotti. Gli account utente, i cataloghi di prodotti, i registri di dispositivi IoT e i sistemi di distinta base sono alcuni esempi di dati di catalogo. Gli attributi di questi dati possono variare e cambiare nel corso del tempo per rispondere ai requisiti dell'applicazione.

Considerare l'esempio di un catalogo di prodotti per un fornitore di parti di ricambio per automobili. Ogni ricambio può avere propri attributi oltre ai comuni attributi condivisi da tutti i ricambi. Inoltre, gli attributi di un ricambio specifico possono cambiare l'anno seguente quando viene rilasciato un nuovo modello. Azure Cosmos DB supporta schemi flessibili e dati gerarchici ed è pertanto adatto per l'archiviazione dei dati di un catalogo di prodotti.

Architettura di riferimento per un catalogo di vendita al dettaglio per Azure Cosmos DB

Azure DB Cosmos viene spesso usato per il recupero degli eventi per architetture basate su eventi tramite la funzionalità di feed delle modifiche. Il feed delle modifiche consente ai microservizi downstream di leggere in modo affidabile e incrementale gli inserimenti e aggiornamenti (ad esempio, gli eventi di ordine) eseguiti in un Azure Cosmos DB. Questa funzionalità può essere sfruttata per ottenere un archivio di eventi permanente come broker messaggi per eventi di modifica dello stato e gestire il flusso di lavoro per l'elaborazione degli ordini tra molti microservizi, che possono essere implementati come Funzioni di Azure senza server.

Architettura di riferimento per la pipeline degli ordini di Azure Cosmos DB

I dati archiviati in Azure Cosmos DB possono inoltre essere integrati con HDInsight per analisi di Big Data tramite processi Apache Spark. Per informazioni dettagliate sul connettore Spark per Azure Cosmos DB, vedere Eseguire un processo Spark con Azure Cosmos DB e HDInsight.

Giochi

Il livello database è un componente fondamentale delle applicazioni di gioco. I giochi moderni eseguono l'elaborazione grafica in client mobili/console, ma si basano sul cloud per distribuire contenuti personalizzati come le statistiche di gioco, l'integrazione con i social media e le classifiche dei punteggi. I giochi richiedono spesso latenze di un solo millisecondo per operazioni di lettura e scrittura, per offrire un'esperienza di gioco accattivante. Un database per giochi deve essere veloce e in grado di gestire picchi significativi a livello di frequenza di richieste durante l'avvio di nuovi giochi e gli aggiornamenti delle funzionalità.

Azure Cosmos DB viene usato da giochi come The Walking Dead: No Man's Land by Next Games e Halo 5: Guardians by 343 Industries. Azure Cosmos DB offre agli sviluppatori di giochi i vantaggi seguenti:

  • Azure Cosmos DB consente di aumentare o ridurre le prestazioni in modo flessibile. In questo modo i giochi possono gestire l'aggiornamento del profilo e le statistiche di decine di milioni di giocatori simultanei con una singola chiamata API.
  • Azure Cosmos DB supporta le letture e le scritture in millisecondi per evitare eventuali ritardi durante il gioco.
  • L'indicizzazione automatica di Azure Cosmos DB consente di filtrare in base a più proprietà in tempo reale, ad esempio per individuare il giocatore in base al suo ID interno o all'ID di GameCenter, Facebook o Google o per eseguire query in base all'appartenenza del giocatore a una gilda. Questa operazione può essere eseguita senza compilare indicizzazioni complesse o infrastrutture di partizionamento orizzontale.
  • Le funzionalità social, ad esempio i messaggi delle chat interne al gioco, l'appartenenza a gilde del giocatore, le sfide completate, le classifiche dei punteggi e i grafici dei social network, sono più facili da implementare con uno schema flessibile.
  • Azure Cosmos DB usato come PaaS (Platform-as-a-Service) gestito richiede operazioni minime di installazione e gestione per consentire un'iterazione rapida e ridurre il time-to-market.

Architettura di riferimento per giochi per Azure Cosmos DB

Applicazioni Web e per dispositivi mobili

Azure Cosmos DB viene comunemente usato all'interno di applicazioni Web e per dispositivi mobili ed è particolarmente adatto alla creazione di modelli di interazione social, all'integrazione con servizi di terze parti e all'ottimizzazione delle esperienze personalizzate. Gli SDK di Azure Cosmos DB possono essere usati per compilare applicazioni iOS e Android avanzate usando il framework Xamarin popolare.

Applicazioni social

Un caso di uso comune per Azure Cosmos DB prevede l'archiviazione e il recupero di contenuto generato dall'utente (UGC, User Generated Content) per applicazioni Web, per dispositivi mobili e soprattutto per social media. Alcuni esempi di UGC includono sessioni di chat, tweet, post di blog, classificazioni e commenti. Spesso il contenuto UGC nelle applicazioni per social media comprende testo in formato libero, proprietà, tag e relazioni non limitati da una struttura rigida. Il contenuto, ad esempio chat, commenti e post, può essere archiviato in Azure Cosmos DB senza richiedere trasformazioni o oggetti complessi a livelli di mapping relazionali. Le proprietà dei dati possono essere aggiunte o modificate facilmente in modo che rispondano ai requisiti quando gli sviluppatori scorrono il codice dell'applicazione, velocizzando così la fase di sviluppo.

Le applicazioni che si integrano con social network di terze parti devono adeguarsi alle modifiche degli schemi di queste reti. Poiché i dati vengono indicizzati automaticamente per impostazione predefinita in Azure Cosmos DB, i dati sono pronti per essere sottoposti a query in qualsiasi momento. Queste applicazioni hanno quindi la flessibilità necessaria per recuperare le proiezioni in base alle rispettive esigenze.

Molte applicazioni di social networking vengono eseguite su scala globale e possono presentare modelli di utilizzo non prevedibili. La flessibilità nella scalabilità dell'archivio dati è essenziale man mano che il livello dell'applicazione viene scalato in modo da soddisfare la domanda di utilizzo. È possibile aumentare il numero di istanze aggiungendo partizioni di dati aggiuntive in un account Azure Cosmos DB. È anche possibile creare account Azure Cosmos DB aggiuntivi in più aree. Per la disponibilità dell'area del servizio Azure Cosmos DB, vedere Aree di Azure.

Diagramma che mostra l'architettura di riferimento dell'app Web di Azure Cosmos DB.

Personalization

Oggi le applicazioni moderne sono caratterizzate da esperienze e visualizzazioni complesse, in genere dinamiche e in grado di soddisfare le preferenze o gli stati d'animo degli utenti e le diverse esigenze di personalizzazione. È quindi necessario che le applicazioni possano recuperare le impostazioni personalizzate in modo efficace per eseguire rapidamente il rendering delle esperienze e degli elementi dell'interfaccia utente.

JSON, un formato supportato da Azure Cosmos DB, è un formato efficace per rappresentare i dati di layout dell'interfaccia utente perché non è solo leggero, ma anche può essere facilmente interpretato da JavaScript. Azure Cosmos DB offre livelli di coerenza tonnabili che consentono letture veloci con scritture a bassa latenza. Di conseguenza, l'archiviazione dei dati di layout dell'interfaccia utente, incluse le impostazioni personalizzate come documenti JSON in Azure Cosmos DB è un mezzo efficace per ottenere questi dati attraverso la rete.

Architettura di riferimento per app Web per Azure Cosmos DB

Passaggi successivi

  • Per iniziare a usare Azure Cosmos DB, seguire le procedure di avvio rapido, che illustrano come creare un account e iniziare a usare Azure Cosmos DB.

  • Per altre informazioni sui clienti che usano Azure Cosmos DB, vedere la pagina dei case study dei clienti .