Obtener todos los Items de DynamoDB con la AWS CLI

La AWS CLI te esconde la paginación. aws dynamodb scan hace tantas llamadas de 1 MB al servicio como necesite la tabla e imprime un único resultado combinado, así que el comando que lee diez Items y el que lee diez millones son el mismo comando.

Esa es la comodidad y la trampa. El número de llamadas, la memoria y la factura escalan con la tabla mientras la línea sigue siendo una línea.

Código

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

  • --no-paginate es el interruptor de una sola llamada — impide que la CLI siga el cursor, así que obtienes la primera página y nada más. Vale para echar un vistazo, no para una lectura completa (cómo funciona el cursor).
  • --page-size cambia el número de llamadas, no la salida — AWS lo dice sin rodeos: "Changing the page size doesn't affect the output; it affects only the number of API calls that need to be made to generate the output." Recurre a él cuando una página grande dé timeout, nunca para ahorrar dinero. El coste de lectura es idéntico en ambos casos.
  • --max-items es donde acaba la salida y empieza NextToken — imprime esa cantidad de Items más un token de reanudación para --starting-token. Ponlo igual que --page-size: AWS avisa de que con valores distintos "can get unexpected results with missing or duplicated items".
  • --query se ejecuta en tu máquina — es JMESPath sobre el resultado impreso, aplicado después de que cada Item se haya leído y facturado. --projection-expression (más --expression-attribute-names para las palabras reservadas) es la que ve DynamoDB, y encoge la respuesta, no la factura. Una --filter-expression también descarta Items después de cobrarlos (Scan con un filtro).
  • Todo se acumula en memoria y luego pasa por un paginador — la CLI junta todas las páginas antes de imprimir, y la CLI v2 envía por defecto el resultado a less en macOS y Linux o a more en Windows. En una tabla grande eso es a la vez un pico de memoria y un terminal atascado. Añade --no-cli-pager, o pon AWS_PAGER a una cadena vacía, y trocea con --max-items.
  • El scan paralelo también funciona desde la shell — lanza N copias con --segment i --total-segments N, cada una paginando automáticamente su propia porción. El mismo coste total, mucho menos tiempo de reloj (cuándo merece la pena).

Hazlo visualmente

Un comando de una línea puede ser un comando caro. La calculadora de precios de DynamoDB le pone cifra a una lectura completa de tu tabla antes de que la ejecutes.

DynoTable pagina la tabla en una cuadrícula en vez de en el búfer de un terminal, y exporta el Scan que hay detrás de esa cuadrícula como un comando aws dynamodb. Descarga DynoTable.

Ejemplos relacionados

Referencias

Verificado por última vez el 2026-07-28 contra la documentación oficial de AWS enlazada arriba.

Construye esta solicitud visualmente

Compón esta operación en el Generador de consultas de DynamoDB gratuito —condición de clave, filtro, índice, Limit, orden de clasificación y un bucle de paginación— y cópiala de vuelta como un programa ejecutable para SDK v3, CLI o boto3.

Abrir el Generador de consultas de DynamoDB

Trabaja con DynamoDB sin la Consola

Un cliente de escritorio rápido para DynamoDB que ejecuta el SQL real que DynamoDB no puede — JOINs, GROUP BY, agregaciones — con edición visual y un agente de IA con tus propias claves de Bedrock.

Prueba gratuita de 30 días, sin tarjeta — después, el plan Free sin límite de tiempo.