DynamoDB上にあるテーブルから大量のデータをエクスポートしようとすると手動ではとても大変です。
そういう時にDynamoDBを操作するツールDQLを使う便利なので、DQLを使ってダウンロードしてきたデータをファイルに保存する方法を明記します。
開発環境
OS: Mac
DQL: version 0.6.1
saml2aws: version 2.26.3
DQLのインストール
$ pip3 install dql
dql --version
0.6.1
AWSへの接続はsaml2awsを使います。
(saml2awsインストール方法はこちらを参考にしてください)
$ saml2aws login
これでAWSの自分のアカウントと接続できているので接続先のリージョンを指定します。
export AWS_PROFILE=saml (←自分で決めたプロファイル名)
export AWS_REGION=ap-northeast-1 (←Dynamoを設置しているリージョン)
環境変数の設定が終わったらDQLでDynamoにアクセスできるようになります。
$ dql
ap-northeast-1>
あとはデータをセレクトして、保存するコマンドを実行します。
("table_name"という名前のテーブルから全件検索し、"file_name.csv"というファイルでローカルに保存します。
この時、少し注意したいのがコマンドを実行した時にカレントディレクトリにファイルが保存されます。
必要に応じてディレクトリを移ってください。
opt allow_select_scan true
はスキャンをするためのオプションなのでコマンド実行前に設定しておきます。
opt allow_select_scan true
SELECT * FROM table_name SAVE file_name.csv;
Saved 100000 records to file_name.csv
ap-northeast-1>
このように出たら完了です。