私はaws-cliを初めて使用し、dynamodbテーブルをcsvとしてエクスポートして、postgresqlに直接インポートできるようにしています。 aws-cliを使用してそれを行う方法はありますか?
これまでのところ、このコマンドaws dynamodb scan --table-nameに遭遇しました。ただし、これにはcsvエクスポートのオプションはありません。また、このコマンドを使用すると、コマンドプロンプトで出力を取得できますが、ファイルに書き込む方法がわかりません。
すべてのアイテムが同じ属性を持つ場合。 id
とname
はどちらも文字列であり、次を実行します。
aws dynamodb scan \
--table-name mytable \
--query "Items[*].[id.S,name.S]" \
--output text
これにより、タブ区切りの出力が得られます。これを> output.txt
を使用してファイルにリダイレクトでき、csvのタブをカンマに簡単に変換できます。
別のオプションは、githubの DynamoDBtoCSV プロジェクトです。
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などに変換します。
上記の回答を明確にするために変更しました。
jq を使用して、aws cliによって提供されたjson出力をcsvに変換できます
aws dynamodb scan --table-name mytable --query "Items[*].[id.S,name.S]" --output json | jq -r '.[] | @csv' > dump.csv