Ottenere tutti gli Item da DynamoDB con la AWS CLI
In DynamoDB non esiste un "select all" — leggere un'intera tabella significa uno Scan paginato. La buona notizia: la AWS CLI pagina automaticamente, effettuando dietro le quinte tutte le chiamate di servizio da 1 MB necessarie e stampando un unico risultato combinato.
Code
aws dynamodb scan --table-name 'Music'L'output combinato contiene ogni Item della tabella:
{
"Items": [
{"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
],
"Count": 1287,
"ScannedCount": 1287
}Spiegazione
- Paginazione automatica — a differenza degli SDK, la CLI segue
LastEvaluatedKeyper te per impostazione predefinita: un comando, tutti gli Item. (--no-paginatela limita a una singola chiamata di servizio — solo i primi ~1 MB.) - Output a blocchi per tabelle grandi — l'intera tabella finisce in memoria prima della stampa, quindi per tabelle grandi leggila a fette:
--max-items 1000stampa 1000 Item più unNextToken; riprendi con--starting-token <token>. Mantieni--page-sizeuguale a--max-itemsper evitare righe mancanti/duplicate tra i blocchi. - Meno byte, stesso costo —
--projection-expression 'Artist, SongTitle'(con--expression-attribute-namesper le parole riservate) restituisce solo quegli attributi, ma uno scan fattura comunque ogni byte di ogni Item letto. - Più veloce sulle tabelle grandi: scan parallelo — esegui N copie con
--segment i --total-segments N, ciascuna paginando automaticamente la propria fetta. Stesso costo totale, tempo reale molto inferiore. - Vuoi filtrare già che ci sei?
--filter-expressionscarta gli Item dopo che sono stati letti (e fatturati) — vedi Scan con un filtro. Fai il pipe ajq? Aggiungi--output jsone ricorda che i valori sono in DynamoDB JSON.
Fallo visivamente
Dare un'occhiata a una tabella non richiede un terminale pieno di DynamoDB JSON: scarica DynoTable per sfogliare qualsiasi tabella in una griglia paginata — pagina gli scan per te. E prima di fare scan-e-pagare, il calcolatore dei prezzi DynamoDB mostra quanto costa davvero una lettura completa della tua tabella.
Esempi correlati
- Ottenere tutti gli Item in Node.js — la stessa lettura completa con un ciclo esplicito.
- Ottenere tutti gli Item in Python — la stessa lettura completa con il paginator di boto3.
- DynamoDB Scan con la AWS CLI — scansione con una
--filter-expression. - Scan paralleli — Segment/TotalSegments, numero di worker e quando vale la pena.
- Perché il mio DynamoDB Scan è lento e costoso? — il modello di costo e come evitarlo.
- DynamoDB ProvisionedThroughputExceededException — leggere l'intera tabella è il modo classico per incapparci.
- "The provided starting key is invalid" — una chiave di ripresa malformata nel ciclo di paginazione.
References
- Scan — Amazon DynamoDB API Reference
- scan — AWS CLI Command Reference
- Using AWS CLI pagination options — AWS CLI User Guide
- DynamoDB read and write operations (capacity unit consumption) — Amazon DynamoDB Developer Guide
Ultima verifica 2026-07-13 rispetto alla documentazione ufficiale AWS collegata sopra.