Azure Cosmos DB è il database distribuito della piattaforma cloud di Microsoft dalle eccellenti caratteristiche. Garantisce ottime prestazioni, scalabilità orizzontale, geo distribuzione e accesso con varie tipologie di API di tipologia NoSQL e OSS. Possiamo memorizzare documenti JSON, grafi o tabelle non relazionali.
Tutto questo però ha un costo non indifferente, soprattutto se vogliamo cominciamo ad apprezzare le caratteristiche di questo servizio, per poi crescere con le esigenze. Il pricing si basa sullo spazio utilizzato, ma soprattutto con il provisioned throughput che garantisce un numero esatto di lettura e scritture al secondo, proporzionato all'entità dell'oggetto che scriviamo. Il minimo da riservare è di 400 RU/s, cioè un costo di circa 24¤ mensili.
Questo throughput fino a poco fa andava allocato per container, cioè per collection nel caso di API MongoDB o SQL, graph, nel caso di Gremlin, o table, nel caso di Cassandra o Azure Table. Questo pricing non si sposa bene se sfruttiamo diversi container per tipologie di documenti o righe diverse, costringendoci in alcuni casi a sfruttare il salvataggio in un unico container.
Fortunatamente di recente è stata inserita la possibilità di condividere il throughput a livello di database così da poter utilizzare tutti i container che vogliamo. Per farlo è sufficiente, in fase di creazione del database, spuntare la voce Provision database throughput, e indicare il RU/s desiderato.

Durante la creazione del database possiamo creare direttamente anche un container e indicare se vogliamo utilizzare il throughput o usarne uno specifico. Applicare la spunta indicata in precedenza, infatti, non vuol che non possiamo creare una situazione ibrida in cui alcuni container hanno un throughput dedicato.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare una qualunque lista per i parametri di tipo params in C#
Potenziare la ricerca su Cosmos DB con Full Text Search
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Gestione CSS in Blazor con .NET 9
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Cancellare una run di un workflow di GitHub
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Ricevere notifiche sui test con Azure Load Testing
Utilizzare Locust con Azure Load Testing
Simulare Azure Cosmos DB in locale con Docker
Gestione dei nomi con le regole @layer in CSS
Utilizzare Azure Cosmos DB con i vettori