Operazioni di lettura e scrittura - Amazon DynamoDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Operazioni di lettura e scrittura

Le operazioni di lettura di DynamoDB consentono di recuperare uno o più elementi da una tabella specificando il valore della chiave di partizione e, facoltativamente, il valore della chiave di ordinamento. Utilizzando le operazioni di scrittura di DynamoDB, è possibile inserire, aggiornare o eliminare elementi in una tabella. Questo argomento spiega il consumo di unità di capacità per queste due operazioni.

Capacità (unità di consumo) per le operazioni di lettura

Le richieste di lettura di DynamoDB possono essere fortemente coerenti, eventualmente coerenti o transazionali.

  • Una richiesta di lettura estremamente coerente di un elemento fino a 4 KB richiede un'unità di lettura.

  • Una richiesta di lettura alla fine coerente di un elemento fino a 4 KB richiede una metà dell'unità di lettura.

  • Una richiesta di lettura transazionale di un elemento fino a 4 KB richiede due unità di lettura.

Per ulteriori informazioni sui modelli di consistenza di lettura di DynamoDB, consulta Consistenza di lettura.

Le dimensioni degli elementi per le letture vengono arrotondate per eccesso al multiplo di 4 KB successivo. Ad esempio, la lettura di un elemento di 3.500 byte utilizza la stessa velocità effettiva della lettura di un elemento di 4 KB.

Se è necessario leggere un elemento di dimensioni superiori a 4 KB, DynamoDB necessita di unità di lettura aggiuntive. Il numero totale di unità di lettura richieste dipende dalla dimensione dell'elemento e dal fatto che alla fine si desideri una lettura coerente o fortemente coerente. Ad esempio, se la dimensione dell'articolo è di 8 KB, sono necessarie 2 unità di lettura per garantire una lettura fortemente coerente. Avrai bisogno di 1 unità di lettura se scegli letture permanenti o 4 unità di lettura per una richiesta di lettura transazionale.

L'elenco seguente descrive come le operazioni di lettura di DynamoDB consumano le unità di lettura:

  • GetItem: legge un singolo elemento da una tabella. Per determinare il numero di unità di lettura che GetItem verranno utilizzate, prendi la dimensione dell'elemento e arrotondala al limite successivo di 4 KB. Questo è il numero di unità di lettura necessarie se hai specificato una lettura fortemente coerente. Per una lettura alla fine coerente, che è l'impostazione predefinita, dividi questo numero per due.

    Ad esempio, se si legge un elemento di 3,5 KB, DynamoDB ne arrotonda la dimensione a 4 KB. Se si legge un elemento di 10 KB, DynamoDB ne arrotonda la dimensione a 12 KB.

  • BatchGetItem: legge fino a 100 elementi da una o più tabelle. DynamoDB elabora ogni elemento del batch come richiesta individuale. GetItem DynamoDB prima arrotonda la dimensione di ogni elemento al limite successivo di 4 KB, quindi calcola la dimensione totale. Il risultato non è necessariamente uguale alla dimensione totale di tutti gli elementi. Ad esempio, se BatchGetItem legge due elementi di dimensioni 1,5 KB e 6,5 KB, DynamoDB calcola la dimensione come 12 KB (4 KB + 8 KB). DynamoDB non calcola la dimensione in 8 KB (1,5 KB + 6,5 KB).

  • Interrogazione: legge più elementi che hanno lo stesso valore della chiave di partizione. Tutti gli articoli restituiti vengono trattati come un'unica operazione di lettura, in cui DynamoDB calcola la dimensione totale di tutti gli elementi. DynamoDB quindi arrotonda la dimensione al limite successivo di 4 KB. Ad esempio, supponiamo che la query restituisca 10 elementi la cui dimensione combinata sia 40,8 KB. DynamoDB arrotonda le dimensioni dell'elemento per l'operazione a 44 KB. Se una query restituisce 1.500 elementi di 64 byte ciascuno, la dimensione cumulativa è 96 KB.

  • Scansione: legge tutti gli elementi di una tabella. DynamoDB considera la dimensione degli elementi che vengono valutati, non la dimensione degli elementi restituiti dalla scansione. Per ulteriori informazioni sulle operazioni di scansione, vedereUtilizzo delle scansioni in DynamoDB.

Importante

Se si esegue un'operazione di lettura su un elemento che non esiste, DynamoDB continuerà a consumare la velocità di lettura come indicato sopra. Per Scan le operazioniQuery/, ti verrà comunque addebitato un throughput di lettura aggiuntivo in base alla coerenza di lettura e al numero di partizioni ricercate per soddisfare la richiesta, anche se non esistono dati.

Per qualsiasi operazione che restituisce elementi puoi richiedere un sottoinsieme di attributi da recuperare. Questo però non influisce sui calcoli delle dimensioni degli elementi. Inoltre, Query e Scan possono restituire conteggi di elementi anziché valori di attributi. Il calcolo del conteggio degli articoli utilizza la stessa quantità di unità di lettura ed è soggetto allo stesso calcolo delle dimensioni degli elementi. Questo perché DynamoDB deve leggere ciascun elemento per incrementare il conteggio.

Capacità (unità di consumo) per le operazioni di scrittura

Un'unità di scrittura rappresenta una scrittura per un elemento di dimensioni fino a 1 KB. Se è necessario scrivere un elemento di dimensioni superiori a 1 KB, DynamoDB deve utilizzare unità di scrittura aggiuntive. Le richieste di scrittura transazionali richiedono 2 unità di scrittura per eseguire una scrittura per elementi fino a 1 KB. Il numero totale di unità di richiesta di scrittura necessarie dipendono dalla dimensione dell'item. Ad esempio, se la dimensione dell'articolo è di 2 KB, sono necessarie 2 unità di scrittura per supportare una richiesta di scrittura o 4 unità di scrittura per una richiesta di scrittura transazionale.

Le dimensioni degli elementi per le scritture vengono arrotondate per eccesso al multiplo di 1 KB successivo. Ad esempio, la scrittura di un elemento di 500 byte utilizza la stessa velocità effettiva della scrittura di un elemento di 1 KB.

L'elenco seguente descrive come le operazioni di scrittura di DynamoDB consumano le unità di scrittura:

  • PutItem: Scrive un singolo elemento in una tabella. Se nella tabella esiste già un elemento con la stessa chiave primaria, l'operazione sostituisce l'item. Per calcolare l'utilizzo del throughput assegnato, la dimensione presa in considerazione è quella dell'elemento più grande.

  • UpdateItem: modifica un singolo elemento nella tabella. DynamoDB considera la dimensione dell'elemento come appare prima e dopo l'aggiornamento. Il throughput assegnato utilizzato riflette la dimensione maggiore tra quelle degli elementi. Anche se aggiorni un sottoinsieme degli attributi dell'articolo, UpdateItem consumerà comunque l'intero throughput assegnato (la maggiore tra le dimensioni degli articoli «prima» e «dopo»).

  • DeleteItem: rimuove un singolo elemento da una tabella. L'utilizzo del throughput assegnato si basa sulla dimensione dell'elemento eliminato.

  • BatchWriteItem: scrive fino a 25 elementi su una o più tabelle. DynamoDB elabora ogni elemento del batch come singola richiesta PutItem o DeleteItem (gli aggiornamenti non sono supportati). DynamoDB prima arrotonda la dimensione di ogni elemento al limite successivo di 1 KB, quindi calcola la dimensione totale. Il risultato non è necessariamente uguale alla dimensione totale di tutti gli elementi. Ad esempio, se BatchWriteItem scrive due elementi di dimensioni 500 byte e 3,5 KB, DynamoDB calcola la dimensione come 5 KB (1 KB + 4 KB). DynamoDB non calcola la dimensione come 4 KB (500 byte + 3,5 KB).

Per le operazioni PutItem, UpdateItem e DeleteItem, DynamoDB arrotonda la dimensione dell'elemento per eccesso al successivo KB. Ad esempio, se si inserisce o si elimina un elemento di 1,6 KB, DynamoDB ne arrotonda la dimensione a 2 KB.

PutItemUpdateItem, e DeleteItem le operazioni consentono scritture condizionali, in cui si specifica un'espressione che deve restituire true affinché l'operazione abbia successo. Se l'espressione restituisce false, DynamoDB utilizza comunque le unità di capacità di scrittura della tabella. La quantità di unità di capacità di scrittura consumate dipende dalle dimensioni dell'articolo. Questo elemento può essere un elemento esistente nella tabella o uno nuovo che stai tentando di creare o aggiornare. Ad esempio, supponiamo che un elemento esistente sia di 300 KB. Il nuovo elemento che stai tentando di creare o aggiornare è di 310 KB. Le unità di capacità di scrittura utilizzate saranno 310 KB per il nuovo elemento.