Obtenir tous les éléments de DynamoDB avec l'AWS CLI
Il n'y a pas de « select all » dans DynamoDB — lire une table entière signifie un Scan paginé. La bonne nouvelle : l'AWS CLI pagine automatiquement, effectuant en coulisses autant d'appels de service de 1 Mo que nécessaire et affichant un résultat combiné.
Code
aws dynamodb scan --table-name 'Music'La sortie combinée contient chaque élément de la table :
{
"Items": [
{"Artist": {"S": "Arturo Sandoval"}, "SongTitle": {"S": "Cubano Chant"}, ...}
],
"Count": 1287,
"ScannedCount": 1287
}Explication
- Pagination automatique — contrairement aux SDK, la CLI suit
LastEvaluatedKeypour toi par défaut : une commande, chaque élément. (--no-paginatela limite à un seul appel de service — le premier ~1 Mo seulement.) - Sortie découpée pour les grandes tables — la table complète arrive en mémoire avant l'affichage, donc pour les grandes tables lis-la en tranches :
--max-items 1000affiche 1000 éléments plus unNextToken; reprends avec--starting-token <token>. Garde--page-sizeégal à--max-itemspour éviter les lignes manquantes/dupliquées entre les tranches. - Moins d'octets, même facture —
--projection-expression 'Artist, SongTitle'(avec--expression-attribute-namespour les mots réservés) ne renvoie que ces attributs, mais un scan facture quand même chaque octet de chaque élément lu. - Plus rapide sur les grandes tables : scan parallèle — lance N copies avec
--segment i --total-segments N, chacune paginant automatiquement sa propre tranche. Même coût total, temps réel bien plus court. - Tu en profites pour filtrer ?
--filter-expressionécarte les éléments après leur lecture (et facturation) — voir Scan avec un filtre. Tu redirige versjq? Ajoute--output jsonet souviens-toi que les valeurs sont en DynamoDB JSON.
À faire visuellement
Jeter un œil à une table ne nécessite pas un terminal rempli de DynamoDB JSON : télécharge DynoTable pour parcourir n'importe quelle table dans une grille paginée — il pagine les scans pour toi. Et avant de scanner-et-payer, le calculateur de tarification DynamoDB montre ce que coûte réellement une lecture complète de ta table.
Exemples liés
- Obtenir tous les éléments en Node.js — la même lecture complète avec une boucle explicite.
- Obtenir tous les éléments en Python — la même lecture complète avec le paginateur de boto3.
- DynamoDB Scan avec l'AWS CLI — scanner avec une
--filter-expression. - Scans parallèles — Segment/TotalSegments, nombre de workers, et quand s'en soucier.
- Pourquoi mon Scan DynamoDB est-il lent et coûteux ? — le modèle de coût et comment l'éviter.
- DynamoDB ProvisionedThroughputExceededException — lire la table entière est la façon classique de l'atteindre.
- "The provided starting key is invalid" — une clé de reprise malformée dans la boucle de pagination.
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
Dernière vérification le 2026-07-13 par rapport à la documentation officielle AWS liée ci-dessus.