Microsoft AZ-204: Azure Cosmos DB — Guida allo studio

Fa parte della Microsoft Azure Developer Associate AZ-204 — Guida allo studio. Esercitati con risposte verificate nel centro esami Microsoft, oppure fai test cronometrati su ExamRoll.io.

Panoramica

Azure Cosmos DB è un database multimodello, distribuito a livello globale e completamente gestito, progettato per applicazioni a bassa latenza e scalabili in modo elastico. Espone molteplici API su un motore di archiviazione e replica partizionato comune, fornisce cinque livelli di coerenza regolabili e offre SLA completi per disponibilità, latenza, throughput e coerenza. I dati sono organizzati in account, database e contenitori (o collection/tabelle/grafi a seconda dell’API). I contenitori sono partizionati orizzontalmente e scalati tramite una chiave di partizione, e tutte le operazioni sono misurate in Request Unit (RU), una valuta normalizzata che astrae CPU, IOPS e memoria.

API e Programmabilità

Cosmos DB supporta diverse API compatibili a livello di protocollo (wire-compatible), così da poter utilizzare SDK e driver nativi senza riscrivere il modello dei dati:

undefined

.

Le operazioni SDK comuni a tutte le API includono CRUD, concorrenza ottimistica con ETag, operazioni di upsert, script lato server (stored procedure, trigger) e UDF (API SQL). Le query sono parametrizzate per ridurre le RU e migliorare la sicurezza. Le operazioni bulk e le API di streaming minimizzano l’overhead del client e i costi in RU per l’ingestion ad alto throughput.

Coerenza, Indicizzazione e Semantica delle Query

Cosmos DB offre cinque livelli di coerenza ben definiti per account (sovrascrivibili per richiesta in molti SDK):

L’indicizzazione è automatica e coerente per impostazione predefinita per l’API SQL. Ogni elemento e proprietà viene indicizzato senza gestione dello schema, quindi le scritture aggiornano l’indice immediatamente (modalità di indicizzazione Consistent). È possibile perfezionare la policy di indicizzazione per:

Prestare attenzione alle dimensioni degli elementi e alla forma delle query. L’API SQL impone un limite alla dimensione degli elementi (ad esempio, 2 MB), e le query cross-partizione, le proiezioni di grandi dimensioni e i predicati complessi aumentano il consumo di RU. Utilizzare proiezioni selettive, filtri appropriati e query consapevoli della partizione per minimizzare il costo in RU.

Partizionamento e Throughput (RU)

Cosmos DB separa le partizioni logiche da quelle fisiche:

Scegliere una chiave di partizione efficace con alta cardinalità e una distribuzione uniforme degli accessi nel tempo. Le chiavi valide sono correlate al percorso di accesso primario (ad esempio, userId, deviceId, tenantId o orderId). Evitare chiavi a bassa cardinalità o basate su intervalli di tempo (time-bucketed) che causano sbilanciamento (skew) (ad esempio, country, status o day). Quando nessuna singola proprietà è adatta:

Modelli di throughput:

Le tecniche di ottimizzazione delle RU includono letture puntuali (point read) tramite id+chiave di partizione, query con parametri, proiezioni selettive, denormalizzazione per ridurre i pattern simili a JOIN e l’uso del change feed per viste derivate anziché query complesse su più contenitori. Utilizzare gli ETag con If-Match per il controllo della concorrenza al fine di evitare tentativi di ripetizione (retry) costosi in termini di RU. Monitorare le metriche delle RU e il throttling (HTTP 429) e implementare policy di retry con jitter negli SDK.

Distribuzione globale e feed di modifiche

La distribuzione multi-regionale chiavi in mano di Cosmos DB consente di aggiungere o rimuovere regioni in qualsiasi momento. Tutte le regioni sono leggibili; l’abilitazione delle scritture multi-regione permette scritture simultanee ovunque con una latenza di lettura inferiore a 10 ms al 99° percentile nelle regioni vicine. Gli SDK client dovrebbero essere configurati con le regioni preferite per instradare il traffico localmente ed eseguire il failover in modo controllato. In .NET, fornire le regioni preferite tramite CosmosClientOptions ApplicationPreferredRegions (o l’equivalente in altri SDK). Le scritture multi-regione richiedono una policy di risoluzione dei conflitti:

Il feed di modifiche (change feed) fornisce un log ordinato e di solo accodamento (append-only) delle modifiche per ogni chiave di partizione logica. È ideale per:

Scenario pratico

Spotify deve fornire un servizio di personalizzazione disponibile a livello globale che ingerisca le interazioni degli utenti in tempo reale, aggiorni i consigli per utente e serva letture a bassa latenza dalla regione più vicina. Le scritture possono avvenire da client mobili in tutto il mondo e gli aggiornamenti dei consigli devono essere distribuiti (fan-out) ai sistemi downstream.

  1. Scegliere l’API SQL (Core) di Cosmos DB con scritture multi-regione
  1. Definire una chiave di partizione ad alta cardinalità e chiavi gerarchiche
  1. Configurare il throughput con scalabilità automatica (autoscale) sui contenitori primari
  1. Impostare la coerenza a Sessione (Session) a livello di account
  1. Implementare l’elaborazione del feed di modifiche con Azure Functions e il Change Feed Processor
  1. Creare un contenitore di consigli derivato con una policy di indicizzazione personalizzata
  1. Abilitare la distribuzione globale con regioni preferite negli SDK
  1. Configurare la risoluzione dei conflitti e l’osservabilità

Questa architettura offre letture e scritture a bassa latenza a livello globale, elaborazione resiliente degli eventi tramite il feed di modifiche, scalabilità automatica efficiente in termini di costi e una semantica di coerenza robusta adatta ai carichi di lavoro di personalizzazione.


Azure Storage e Blob Storage · Tutti i domini · Soluzioni Container di Azure

Esercitati su queste domande → · Pratica cronometrata su ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Supera l'esame →

Sfoglia Microsoft →

Related guides

Accesso tutto incluso

Un abbonamento. Ogni esame.

Ogni piano sblocca la ricerca illimitata di risposte, test pratici, spiegazioni AI e la libreria completa di risorse — in oltre 20 lingue.

Mensile
24.87
Just €0.83/day
Tutto incluso:
  • Ricerca risposte illimitata
  • Test pratici illimitati
  • Spiegazioni basate su AI
  • Libreria completa di risorse
  • Oltre 20 lingue
  • Aggiornamenti settimanali dei contenuti
  • Premi e referral
  • Supporto prioritario
Inizia la prova gratuita

Nessuna carta di credito richiesta*

Miglior valore
12 mesi
179.87
Just €0.49/daySave 40%
Tutto incluso:
  • Ricerca risposte illimitata
  • Test pratici illimitati
  • Spiegazioni basate su AI
  • Libreria completa di risorse
  • Oltre 20 lingue
  • Aggiornamenti settimanali dei contenuti
  • Premi e referral
  • Supporto prioritario
Inizia la prova gratuita

Nessuna carta di credito richiesta*

✓ Piano gratuito incluso · ✓ Annulla in qualsiasi momento · ✓ Tutti i piani sbloccano il prodotto completo