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. Query
consuma 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
.