DynamoDBをJSON出力 + CSV変換

AWS,DynamoDB

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現在)

AWS,DynamoDB

Posted by takaaki