Azure Cosmos DB come archivio di valori chiave: Panoramica dei costiAzure Cosmos DB as a key value store – Cost overview

Azure Cosmos DB è un servizio di database multimodello distribuito a livello globale che consente di compilare con facilità applicazioni su larga scala e a disponibilità elevata.Azure Cosmos DB is a globally distributed, multi-model database service for building highly available, large-scale applications easily. Per impostazione predefinita, Azure Cosmos DB indicizza automaticamente tutti i dati che inserisce, in modo efficiente.By default, Azure Cosmos DB automatically indexes all the data it ingests, efficiently. In questo modo è possibile abilitare query SQL (e JavaScript) rapide e coerenti su qualsiasi tipo di dati.This enables fast and consistent SQL (and JavaScript) queries on any kind of data.

L'articolo descrive il costo di Azure Cosmos DB per semplici operazioni di lettura e scrittura, quando usato come archivio di chiavi/valori.This article describes the cost of Azure Cosmos DB for simple write and read operations when it’s used as a key/value store. Le operazioni di scrittura includono inserimenti, sostituzioni, eliminazioni e upsert di documenti.Write operations include inserts, replaces, deletes, and upserts of documents. Oltre a offrire un contratto di servizio con disponibilità del 99,99% per tutti gli account in una singola area e tutti gli account in più aree con coerenza media e con disponibilità in lettura del 99,999% per tutti gli account di database in più aree, Azure Cosmos DB offre latenza minore di 10 ms per le letture e di 15 ms per le scritture al 99° percentile.Besides guaranteeing a 99.99% availability SLA for all single region accounts and all multi-region accounts with relaxed consistency, and 99.999% read availability on all multi-region database accounts, Azure Cosmos DB offers guaranteed <10-ms latency for reads and <15-ms latency for the (indexed) writes respectively, at the 99th percentile.

Perché usare le unità richiesta (UR)Why we use Request Units (RUs)

Le prestazioni di Azure Cosmos DB si basano sulla quantità di unità richiesta (UR) con provisioning per la partizione.Azure Cosmos DB performance is based on the amount of provisioned Request Units (RU) for the partition. Il provisioning è a una granularità in secondi e viene acquistato in UR/sec (da non confondere con la fatturazione oraria).The provisioning is at a second granularity and is purchased in RUs/sec (not to be confused with the hourly billing). Le UR devono essere considerate come una valuta che semplifica il provisioning della velocità effettiva necessaria per l'applicazione.RUs should be considered as a currency that simplifies the provisioning of required throughput for the application. I clienti non devono pensare a differenziare le unità di capacità tra lettura e scrittura.Our customers do not have to think of differentiating between read and write capacity units. Il modello singolo di valuta delle UR crea efficienza per condividere la capacità di provisioning tra le letture e le scritture.The single currency model of RUs creates efficiencies to share the provisioned capacity between reads and writes. Questo modello di capacità con provisioning consente al servizio fornire una velocità effettiva prevedibile e coerente, con bassa latenza e disponibilità elevata garantite.This provisioned capacity model enables the service to provide a predictable and consistent throughput, guaranteed low latency, and high availability. Infine, si usano le UR per generare un modello di velocità effettiva, ma ogni UR con provisioning presenta inoltre una quantità di risorse definita (memoria, memoria centrale).Finally, we use RU to model throughput, but each provisioned RU also has a defined amount of resources (Memory, Core). UR/sec non si riferisce solo alle operazioni di I/O al secondo (IOPS).RU/sec is not only IOPS.

Come sistema di database distribuito a livello globale, Cosmos DB è il solo servizio di Azure che fornisce un contratto di servizio basato su latenza, velocità effettiva e coerenza oltre che sulla disponibilità elevata.As a globally distributed database system, Cosmos DB is the only Azure service that provides an SLA on latency, throughput, and consistency in addition to high availability. La velocità effettiva con cui viene effettuato il provisioning viene applicata a ognuna delle aree associate all'account di database Cosmos DB.The throughput you provision is applied to each of the regions associated with your Cosmos DB database account. Per le letture, Cosmos DB offre più livelli di coerenza ben definiti tra cui scegliere.For reads, Cosmos DB offers multiple, well-defined consistency levels for you to choose from.

La tabella seguente mostra il numero di UR necessarie per eseguire transazioni di lettura e scrittura con dimensioni di documento pari a 1 KB e 100 KB.The following table shows the number of RUs required to perform read and write transactions based on document size of 1 KB and 100 KBs.

Dimensioni dell'elementoItem Size 1 Lettura1 Read 1 Scrittura1 Write
1 KB1 KB 1 UR1 RU 5 UR5 RUs
100 KB100 KB 10 UR10 RUs 50 UR50 RUs

Costo di letture e scrittureCost of reads and writes

Se si esegue il provisioning di 1.000 UR al secondo, si avrà un totale di 3,6 milioni di UR all'ora e il costo sarà di 0,08 dollari l'ora (negli Stati Uniti e in Europa).If you provision 1,000 RU/sec, this amounts to 3.6 m RU/hour and will cost $0.08 for the hour (in the US and Europe). Per un documento di 1 KB, ciò significa che è possibile utilizzare 3,6 milioni di letture o 0,72 milioni di scritture (3,6 m UR/5) utilizzando la velocità effettiva con provisioning.For a 1-KB size document, this means that you can consume 3.6-m reads or 0.72-m writes (3.6 m RU / 5) using your provisioned throughput. Normalizzate in milioni di letture e scritture, il costo sarebbe di 0,022 dollari/milione di letture (0,08 dollari/3,6) e 0,111 dollari/milioni di scritture (0,08 dollari/0,72).Normalized to million reads and writes, the cost would be $0.022 /m reads ($0.08 / 3.6) and $0.111/m writes ($0.08 / 0.72). Il costo al milione diventa minimo come illustrato nella tabella seguente.The cost per million becomes minimal as shown in the table below.

Dimensioni dell'elementoItem Size 1-m lettura1-m Read 1-m scrittura1-m Write
1 KB1 KB $0.022$0.022 $0.111$0.111
100 KB100 KB $0.222$0.222 $1.111$1.111

La maggior parte dei servizi di archivi di oggetti o BLOB di base addebita 0,40 dollari per milione di transazioni di lettura e 5 dollari per milione transazioni di scrittura.Most of the basic blob or object stores services charge $0.40 per million read transaction and $5 per million write transaction. Se usato in modo ottimale, Cosmos DB è fino al 98% più conveniente di queste altre soluzioni, per le transazioni di 1 KB.If used optimally, Cosmos DB can be up to 98% cheaper than these other solutions (for 1-KB transactions).

Passaggi successiviNext steps

Saranno presto disponibili nuovi articoli sull'ottimizzazione del provisioning delle risorse di Azure Cosmos DB.Stay tuned for new articles on optimizing Azure Cosmos DB resource provisioning. Nel frattempo, è possibile usare il nostro calcolatore UR.In the meantime, feel free to use our RU calculator.