Obtener todos los items de DynamoDB con la AWS CLI
En DynamoDB no existe un "select all" — leer una tabla entera significa un Scan paginado. La buena noticia: la AWS CLI autopagina, haciendo tantas llamadas de servicio de 1 MB como sean necesarias entre bastidores e imprimiendo un resultado combinado.
Code
aws dynamodb scan --table-name 'Music'La salida combinada contiene todos los items de la tabla:
{
"Items": [
{"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
],
"Count": 1287,
"ScannedCount": 1287
}Explicación
- Autopaginación — a diferencia de los SDK, la CLI sigue
LastEvaluatedKeypor ti por defecto: un comando, todos los items. (--no-paginatelo limita a una única llamada de servicio — solo el primer ~1 MB.) - Salida troceada para tablas grandes — la tabla completa aterriza en memoria antes de imprimirse, así que para tablas grandes léela en trozos:
--max-items 1000imprime 1000 items más unNextToken; reanuda con--starting-token <token>. Mantén--page-sizeigual a--max-itemspara evitar filas perdidas/duplicadas entre trozos. - Menos bytes, la misma factura —
--projection-expression 'Artist, SongTitle'(con--expression-attribute-namespara palabras reservadas) devuelve solo esos atributos, pero un scan sigue facturando cada byte de cada item leído. - Más rápido en tablas grandes: scan en paralelo — ejecuta N copias con
--segment i --total-segments N, cada una autopaginando su propio trozo. El mismo coste total, mucho menos tiempo de reloj. - ¿Filtrando de paso?
--filter-expressiondescarta items después de leerlos (y facturarlos) — consulta Scan con un filtro. ¿Canalizando ajq? Añade--output jsony recuerda que los valores son DynamoDB JSON.
Hazlo visualmente
Echar un vistazo a una tabla no necesita un terminal lleno de DynamoDB JSON: descarga DynoTable para explorar cualquier tabla en una cuadrícula paginada — pagina los scans por ti. Y antes de escanear y pagar, la calculadora de precios de DynamoDB muestra lo que realmente cuesta una lectura completa de tu tabla.
Ejemplos relacionados
- Obtener todos los items en Node.js — la misma lectura completa con un bucle explícito.
- Obtener todos los items en Python — la misma lectura completa con el paginador de boto3.
- DynamoDB Scan con la AWS CLI — escanear con un
--filter-expression. - Scans en paralelo — Segment/TotalSegments, número de workers y cuándo vale la pena.
- ¿Por qué mi DynamoDB Scan es lento y caro? — el modelo de costes y cómo evitarlo.
- DynamoDB ProvisionedThroughputExceededException — leer la tabla entera es la forma clásica de provocarlo.
- "The provided starting key is invalid" — una clave de reanudación deformada en el bucle de paginación.
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
Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.