web-dev-qa-db-ja.com

(パイプラインを使用せずに)aws-cliを介してdynamodbテーブルをcsvとしてエクスポートする方法

私はaws-cliを初めて使用し、dynamodbテーブルをcsvとしてエクスポートして、postgresqlに直接インポートできるようにしています。 aws-cliを使用してそれを行う方法はありますか?

これまでのところ、このコマンドaws dynamodb scan --table-nameに遭遇しました。ただし、これにはcsvエクスポートのオプションはありません。また、このコマンドを使用すると、コマンドプロンプトで出力を取得できますが、ファイルに書き込む方法がわかりません。

21
Vibhor Nigam

すべてのアイテムが同じ属性を持つ場合。 idnameはどちらも文字列であり、次を実行します。

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

これにより、タブ区切りの出力が得られます。これを> output.txtを使用してファイルにリダイレクトでき、csvのタブをカンマに簡単に変換できます。

別のオプションは、githubの DynamoDBtoCSV プロジェクトです。

32
jarmod

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などに変換します。

上記の回答を明確にするために変更しました。

6

jq を使用して、aws cliによって提供されたjson出力をcsvに変換できます

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