DynamoDBのデータをCSV出力したくて調べたら、4種類方法があるみたいなので備忘録とします。
AWSコンソールからエクスポートする
AWSマネージメントコンソールのDynamoDBタブから必要なデータを絞り込んでエクスポートボタンを押すだけでCSVがゲットできます。GUIでポチポチっとやるだけなので簡単ですが、「最大100レコードまで」と「ネストされたデータが含まれている場合、データがjson形式でエクスポートされる」のデメリットがあり。
参考:DynamoDBでデータのexport/importを行う
AWS Data Pipelineを使用する
AWS Data Pipelineとは、データの移動と変換を自動化するAWSが提供しているサービスのこと。DynamoDBのデータを毎日定時刻にS3にアーカイブする、のような定時処理がGUI上で簡単に設定できるみたい。
利用料金は使用頻度や実行場所によって変動する。
参考:AWS Data Pipeline とは
AWS CLIを使用する
コマンドライン上からAWSの機能を制御できるツール。これをインストールすることであの便利なawsコマンドが使用できるようになる。
無料で使用できて、OSを問わずコマンド実行が可能なので、mysqlやpostgreSQLのコマンドライン操作に慣れ親しんだエンジニアにやさしい。
デメリット、というほどではないけれど、敢えて言うなら動作にPythonが必要ってことでしょうか。
参考:黒い画面は怖くない、AWS CLI入門
ユーザによって作成されたツールを使用する
世界中の有志によって作成されたDynamoDB用のCSV出力ツールをGitHubでいくつか発見。デメリットは日本語の情報とか使用例が全くと言っていいほどないことでしょうか。AWS DynamoDBtoCSV
DynamoDBの指定したテーブルの内容をまるっとCSV出力するツール。コマンドライン上から使用する。s3,ローカル問わず保存できる。
dyno-to-csv
DynamoDBの指定したクエリ結果をCSV出力するツール。コマンドライン上から使用する。こちらはS3上にしか保存できません。
DynamoDbExportCsv
DynamoDBの指定したテーブル/列の内容をCSV出力するツール。コマンドライン上から使用する。s3,ローカル問わず保存できる。データの出力条件を細かく決められる引数が多く設定されている。