Как экспортировать таблицу dynamodb как csv через aws-cli (без использования конвейера)

Я новичок в aws-cli, и я пытаюсь экспортировать таблицу dynamodb как csv, чтобы я мог импортировать ее непосредственно в postgresql. Есть ли способ сделать это с помощью aws-cli?

До сих пор я столкнулся с этой командой aws dynamodb scan --table-name. Но это не дает возможности экспорта csv. Кроме того, через эту команду я могу получить вывод в командной строке, но я не уверен, как записать его в файл.

Ответы

Ответ 1

Если все элементы имеют одинаковые атрибуты, например, id и name обе из которых являются строками, затем выполните:

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

Это дало бы разделенный табуляцией вывод. Вы можете перенаправить это в файл, используя > output.txt, и затем вы можете легко конвертировать вкладки в запятые для CSV.

Другой вариант - это проект DynamoDBtoCSV на github.

Ответ 2

Для localhost dynamodb:

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

Для dynamodb:

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

Затем конвертируйте JSON в CSV или что угодно.

Я изменил выше ответ, чтобы дать понять.

Ответ 3

Вы можете использовать jq для преобразования вывода json, заданного aws cli, в csv

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