Altri aspetti dell'utilizzo dell'operazione Query in DynamoDB - 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à.

Altri aspetti dell'utilizzo dell'operazione Query in DynamoDB

Questa sezione tratta aspetti aggiuntivi dell'operazione DynamoDB Query, tra cui la limitazione delle dimensioni dei risultati, il conteggio degli articoli scansionati rispetto a quelli restituiti, il monitoraggio del consumo della capacità di lettura e il controllo della coerenza di lettura.

Limitazione del numero di elementi nel set di risultati

Con l'operazione Query puoi limitare il numero di elementi che vengono letti. A tale scopo, imposta il parametro Limit sul numero massimo di item desiderati.

Ad esempio, supponi di eseguire un'operazione Query su una tabella, con un valore Limit di 6 e senza un'espressione di filtro. Il risultato dell'operazione Query contiene i primi sei item della tabella che corrispondono all'espressione di condizione della chiave della richiesta.

Supponi ora di aggiungere un'espressione di filtro a Query. In questo caso, DynamoDB legge fino a sei elementi e restituisce solo quelli che corrispondono all'espressione di filtro. Il risultato Query finale contiene sei elementi o meno, anche se, se DynamoDB avesse continuato la lettura, più elementi avrebbero trovato la corrispondenza con l'espressione del filtro.

Conteggio degli elementi nei risultati

Oltre agli elementi che corrispondono ai tuoi criteri, la risposta Query contiene i seguenti elementi:

  • ScannedCount: il numero di voci corrispondenti all'espressione di condizione della query prima dell'applicazione di un'espressione di filtro (se presente).

  • Count: il numero di elementi che rimangono dopo aver applicato un'espressione di filtro.

Nota

Se non si utilizza un'espressione di filtro ScannedCount e Count hanno lo stesso valore.

Se la dimensione del set di risultati di Query è maggiore di 1 MB, ScannedCount e Count rappresentano solo un conteggio parziale degli elementi totali. Devi eseguire più operazioni Query per recuperare tutti i risultati (consulta Impaginazione dei risultati delle query nelle tabelle in DynamoDB).

Ogni risposta di Query contiene ScannedCount e Count per gli elementi che sono stati elaborati da quella particolare richiesta Query. Per ottenere i totali generali per tutte le richieste di Query, puoi mantenere in esecuzione il conteggio per entrambi gli elementi ScannedCount e Count.

Unità di capacità utilizzate dalla query

Puoi eseguire Query su qualsiasi tabella o indice secondario, purché tu fornisca il nome dell'attributo della chiave di partizione e un singolo valore per tale attributo. Query restituisce tutti gli elementi con tale valore di chiave di partizione. Facoltativamente, puoi fornire un attributo della chiave di ordinamento e utilizzare un operatore di confronto per perfezionare i risultati della ricerca. Query APIle operazioni consumano unità di capacità di lettura, come segue.

Se si esegue Query per un... DynamoDB utilizza le unità di capacità in lettura da...
Tabella La capacità di lettura assegnata della tabella.
Indice secondario globale La capacità di lettura assegnata dell'indice.
Indice secondario locale La capacità di lettura assegnata della tabella di base.

Per impostazione predefinita, un'operazione Query non restituisce alcun dato sulla capacità di lettura che consuma. Tuttavia, puoi specificare il parametro ReturnConsumedCapacity in una richiesta di Query per ottenere queste informazioni. Le seguenti sono le impostazioni valide per ReturnConsumedCapacity:

  • NONE: non vengono restituiti dati relativi alla capacità utilizzata. Questa è l'impostazione predefinita.

  • TOTAL: la risposta include il numero aggregato di unità di capacità di lettura utilizzate.

  • INDEXES: la risposta mostra il numero aggregato di unità di capacità di lettura utilizzate, insieme alla capacità utilizzata per ogni tabella e indice a cui è stato effettuato l'accesso.

DynamoDB calcola il numero di unità di capacità di lettura consumate in base al numero di elementi e alle dimensioni di tali elementi, non alla quantità di dati restituiti a un'applicazione. Per questo motivo, il numero di unità di capacità consumate è lo stesso sia che tu richieda tutti gli attributi (il comportamento predefinito) o solo alcuni di essi (usando un'espressione di proiezione). Il numero è lo stesso anche indipendentemente dal fatto che si utilizzi o meno un'espressione di filtro. Queryconsuma un'unità con capacità di lettura minima per eseguire una lettura estremamente coerente al secondo o due letture eventualmente coerenti al secondo per un elemento fino a 4 KB. Se è necessario leggere un elemento che è più grande di 4 KB, DynamoDB necessità di unità di richiesta di lettura aggiuntive. Le tabelle vuote e le tabelle molto grandi che hanno una quantità limitata di chiavi di partizione potrebbero RCUs comportare costi aggiuntivi oltre alla quantità di dati richiesti. Ciò copre il costo di evasione della Query richiesta, anche se non esistono dati.

Consistenza di lettura per la query

Un'operazione Query esegue letture consistenti finali per impostazione predefinita. Ciò significa che i risultati di Query potrebbero non riflettere le modifiche dovute alle operazioni PutItem o UpdateItem completate di recente. Per ulteriori informazioni, consulta Coerenza di lettura di DynamoDB.

Se hai bisogno di elevata coerenza di lettura, imposta il parametro ConsistentRead su true nella richiesta di Query.