DynamoDB BatchGetItem con la AWS CLI

aws dynamodb batch-get-item recupera fino a 100 Item per chiave primaria in un solo comando (max 16 MB). Le chiavi vanno in --request-items come mappa tabella → chiavi in DynamoDB JSON — e devi controllare UnprocessedKeys nell'output, perché un batch può legittimamente restituire solo una parte di ciò che hai richiesto.

Code

aws dynamodb batch-get-item \
  --request-items '{
    "Music": {
      "Keys": [
        {"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}},
        {"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "A Mis Abuelos"}},
        {"Artist": {"S": "Ella Fitzgerald"}, "SongTitle": {"S": "Misty"}}
      ]
    }
  }'

L'output mappa ogni tabella agli Item trovati, più eventuali resti:

{
    "Responses": {
        "Music": [
            {"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
        ]
    },
    "UnprocessedKeys": {}
}

Spiegazione

  • --request-items — una mappa nome tabella → {"Keys": [...]}; un singolo comando può interessare più tabelle. Ogni chiave deve essere la chiave primaria completa (partizione + ordinamento per una chiave composita). Più di 100 chiavi, o la stessa chiave due volte, fallisce con una ValidationException.
  • Responses — gli Item tornano in nessun ordine particolare, e le chiavi che non esistono semplicemente non compaiono — abbina i risultati alle richieste tramite i loro attributi chiave.
  • UnprocessedKeys — a differenza di query/scan, la CLI non riprova automaticamente un batch parziale (non è un token di paginazione). Se la mappa non è vuota — throttling, una risposta >16 MB — riesegui il comando con quella stessa mappa come --request-items (è già nel formato giusto), applicando un backoff tra i tentativi.
  • Per ogni tabella puoi aggiungere "ProjectionExpression": "..." (con "ExpressionAttributeNames") per recuperare solo alcuni attributi, e "ConsistentRead": true per letture a coerenza forte — le letture batch sono a coerenza eventuale per impostazione predefinita.
  • Suggerimento: per più di qualche chiave, tieni la mappa in un file e passa --request-items file://keys.json.

Fallo visivamente

Scrivere a mano DynamoDB JSON annidato tra le virgolette della shell è soggetto a errori. Il DynamoDB Expression Builder costruisce mappe tipizzate chiave/valore e copia comandi CLI pronti da eseguire.

Per recuperare e ispezionare gli Item tra le tabelle in una GUI — senza escape di JSON, senza contabilità di riesecuzioni — scarica DynoTable.

Esempi correlati

References

Ultima verifica 2026-07-13 rispetto alla documentazione ufficiale AWS collegata sopra.

Lavora con DynamoDB senza la Console

DynoTable è un client desktop veloce per DynamoDB — sfoglia le tabelle, esegui query in stile SQL e modifica gli Item localmente.