Ottimizzare i costi per più aree in Azure Cosmos DB

SI APPLICA A: NoSQL MongoDB Cassandra Gremlin Tabella

Puoi aggiungere e rimuovere aree nell'account Azure Cosmos DB in qualsiasi momento. La velocità effettiva che si configura per vari database e contenitori di Azure Cosmos DB è riservata in ogni area associata al proprio account. Se la velocità effettiva di cui è stato effettuato il provisioning ogni ora, data dalla somma delle unità richiesta per secondo (UR/s) configurate in tutti i database e i contenitori per l'account Azure Cosmos DB, è T e il numero di aree di Azure associate all'account del database è N, la velocità effettiva totale con provisioning per l'account Azure Cosmos DB per una determinata ora è uguale a T x N UR/s.

La velocità effettiva con provisioning con una singola area di scrittura e la velocità effettiva con provisioning con più aree scrivibili possono variare in base al costo. Per altre informazioni, vedere Prezzi di Azure Cosmos DB.

Costi per più aree di scrittura

In un sistema di scrittura multi-area, le UR/s nette disponibili per le operazioni di scrittura aumentano di N volte, dove N è il numero di aree di scrittura. A differenza delle operazioni di scrittura in una singola area, ogni area è ora accessibile in scrittura e supporta la risoluzione dei conflitti. Dal punto di vista della pianificazione dei costi, per eseguire M UR/s di scrittura in tutto il mondo, è necessario configurare M UR/s a livello di contenitore o database. È quindi possibile aggiungere tutte le aree desiderate e usarle per operazioni di scrittura per eseguire M UR/s di scritture in tutto il mondo.

Esempio

Si consideri che si dispone di un contenitore in uno scenario di scrittura a singola area. Questo contenitore viene sottoposto a provisioning con velocità effettiva di 10K UR/sec e archivia 0.5 TB di dati del mese in corso. Si supponga ora di aggiungere un'altra area con lo stesso spazio di archiviazione e velocità effettiva e si vuole poter scrivere nei contenitori in entrambe le aree dell'app.

In questo esempio viene illustrato il nuovo consumo mensile totale:

Utilizzo mensile
Fatturazione della velocità effettiva per il contenitore in una singola area di scrittura 10K RU/s * 730 hours
Fattura per la velocità effettiva per contenitore in più aree di scrittura (due) 2 * 10K RU/s * 730 hours
Fatturazione dell'archiviazione per il contenitore in una singola area di scrittura 0.5 TB (or 512 GB)
Fatturazione dell'archiviazione per il contenitore in due aree di scrittura 2 * 0.5 TB (or 1,024 GB)

Nota

Questo esempio presuppone 730 ore in un mese.

Migliorare l'uso della velocità effettiva per singola area

Se si dispone di un utilizzo inefficiente, è possibile eseguire le operazioni necessarie per usare al massimo le UR/sec nelle aree di lettura usando il feed di modifiche dall'area di lettura. In alternativa, è possibile passare a un altro secondario se sovrautilizzato. Ad esempio, una o più aree di lettura sottoutilizzate sono considerate inefficienti. È necessario assicurarsi di ottimizzare prima di tutto la velocità effettiva con provisioning (UR/sec) nell'area di scrittura.

Scrive costi maggiori rispetto alle letture per gran parte dei casi, escludendo le query di grandi dimensioni. Il mantenimento di un utilizzo uniforme può risultare complesso. In generale, monitorare la velocità effettiva usata nelle aree e aggiungere o rimuovere aree su richiesta per ridimensionare la velocità effettiva di lettura e scrittura. Assicurarsi di comprendere l'effetto per la latenza delle app distribuite nella stessa area.