DynamoDBをJSON出力 + CSV変換
JSONからCSVファイルに変換するツールを紹介
DynamoDBのレコードをCSVで出力したい
- 最近JSONを扱う機会が増えてきました。AWSでは、IAMやリソースのpolicyを定義する際にJSONを使用します。
- 今回はDynamo DB を使っていて、どうしてもJSON を扱う必要がありましたので背景をご説明します。Dynamo DBは、コンソールを使って「CSVへエクスポート」を行うことが可能です(以下メニューを参照)。しかし、最大で100件しかエクスポートすることができません。レコードが数千、数万ある場合は、とてもコンソールを使ったエクスポートでは役不足なのです。
CLIによるDynamoDBのレコードをエクスポート
- AWS CLIを使用することで、DynamoDBのレコードを全件エクスポートすることが可能です。以下、コマンド実行例です。
- AWS CLIによるエクスポートは、JSONファイルとなります。
$ aws dynamodb scan --table-name table01 > table01.out
SQLIFYを使ってJSONを変換する
- JSONからCSVファイルに変換する方法はいくつか見つかり、pythonを使った変換プログラムやExcel による変換方法が紹介されています。
- 僕はExcelによる変換を試すものの苦戦し、pythonのプログラムを試す余裕もない…。そんな時に見つけたのがSQLFYを使った変換です。数クリックで簡単に変換することができました。
- ただし、サイズの大きいJSONは注意が必要で、Free planの場合に上限があります。
- 上記URLにアクセスします。JSONファイルをアップロードします。
- 変換後のフォーマットにCSVを選択します。アップロードが開始します。
- Autodetect fieldsを選びます。不要な項目を削除します。
- Save schema and continueを選びます。変換後のファイルをダウンロードします。
(補足) jqツールの利用
- 今回は変換ツールの利用をご紹介しましたが、下記記事ではjqツールを使って加工する方法を紹介しています。合わせてご覧ください。
その他のJSON -> CSV変換ツール
- 他にも変換ツールが登場していましたので、追記します。(2020/3/24現在)