web-dev-qa-db-fra.com

Comment exporter une table dynamodb en tant que csv via aws-cli (sans utiliser de pipeline)

Je suis nouveau sur aws-cli et j'essaie d'exporter ma table dynamodb en tant que csv afin de pouvoir l'importer directement dans postgresql. Existe-t-il un moyen de le faire en utilisant aws-cli?

Jusqu'à présent, je suis tombé sur cette commande aws dynamodb scan --table-name. Mais cela ne fournit pas une option d'exportation csv. De plus, grâce à cette commande, je peux obtenir la sortie sur mon invite de commande, mais je ne sais pas comment l'écrire dans un fichier.

21
Vibhor Nigam

Si tous les articles ont les mêmes attributs, par ex. id et name qui sont tous deux des chaînes, puis exécutez:

aws dynamodb scan \
    --table-name mytable \
    --query "Items[*].[id.S,name.S]" \
    --output text

Cela donnerait une sortie séparée par des tabulations. Vous pouvez le rediriger vers un fichier à l'aide de > output.txt, et vous pourrez alors facilement convertir les tabulations en virgules pour csv.

Une autre option est le projet DynamoDBtoCSV sur github.

32
jarmod

Pour dynamodb localhost:

$aws dynamodb scan --table-name AOP --region us-east-1 --endpoint-url
http://localhost:8000 --output json > /home/ohelig/Desktop/a.json

Pour dynamodb:

$aws dynamodb scan --table-name AOP --region us-east-1 --output json > /home/ohelig/Desktop/a.json

Ensuite, convertissez JSON en CSV ou autre chose.

J'ai modifié la réponse ci-dessus pour que ce soit clair.

6
Yanish Pradhananga

Vous pouvez utiliser jq convertir la sortie json donnée par aws cli en csv

aws dynamodb scan --table-name mytable --query "Items[*].[id.S,name.S]" --output json | jq -r '.[] | @csv' > dump.csv
1
Kishan B