如何通过aws-cli将dynamodb表导出为csv(不使用管道)

Vib*_*gam 16 csv amazon-web-services amazon-dynamodb aws-cli

我是aws-cli的新手,我正在尝试将我的dynamodb表导出为csv,以便我可以将其直接导入postgresql.有没有办法用aws-cli做到这一点?

到目前为止,我遇到了这个命令aws dynamodb scan --table-name.但是这不提供csv导出的选项.此外,通过此命令,我可以在命令提示符下获取输出,但我不知道如何在文件中写入它.

jar*_*mod 36

如果您的项目具有相同的属性,例如id和name都是字符串,那么您可以运行:

aws dynamodb scan \
    --table-name mytable \
    --query "Items[*].[id.S,name.S]" \
    --output text
Run Code Online (Sandbox Code Playgroud)

这将给出制表符分隔的输出.您可以使用> output.txt将其重定向到文件,然后您可以轻松地将标签转换为csv的逗号.

另一个选择是github上的DynamoDBtoCSV项目.

  • 在这种情况下,只需提供适当的数据类型,例如:name.S、zipcode.N、isawesome.B。 (2认同)

小智 11

无需listign out即可完全导出所有列的更好方法是Dynamo db export to csv

基本上

aws dynamodb scan --table-name my-table --select ALL_ATTRIBUTES --page-size 500 --max-items 100000 --output json | jq -r '.Items' | jq -r '(.[0] | keys_unsorted) as $keys | $keys, map([.[ $keys[] ].S])[] | @csv' > export.my-table.csv
Run Code Online (Sandbox Code Playgroud)


小智 8

对于localhost dynamodb:

$aws dynamodb scan --table-name AOP --region us-east-1 --endpoint-url
http://localhost:8000 --output json > /home/ohelig/Desktop/a.json
Run Code Online (Sandbox Code Playgroud)

对于dynamodb:

$aws dynamodb scan --table-name AOP --region us-east-1 --output json > /home/ohelig/Desktop/a.json
Run Code Online (Sandbox Code Playgroud)

然后将JSON转换为CSV或其他格式。

我已经修改了上面的答案以使其清楚。


Kis*_*n B 5

您可以使用jq将 aws cli 给出的 json 输出转换为 csv

aws dynamodb scan --table-name mytable --query "Items[*].[id.S,name.S]" --output json | jq -r '.[] | @csv' > dump.csv
Run Code Online (Sandbox Code Playgroud)

  • 我得到`jq: error (at <stdin>:1811): array ([{"N":"1559...) is not valid in a csv row` (4认同)