AWS
効率化
DynamoDB
開発ツール
RazorSQL

【DynamoDB】CSVやExcelから簡単にデータをインポートできるRazorSQLが便利! (インストールから簡単な使い方まで)

はじめに

最近、仕事でDynamoDBを使うことが増えてきました。DynamoDBにさくっとデータ投入するのであれば、RazorSQLが便利だよ!という話です。日本語での情報をあまり見かけないので投稿します。

今の悩み

DynamoDBに開発中のテストデータを手動で入れるのが本当に面倒

項目の作成から毎回手動で1つ1つ追加していくのは嫌だ・・・。

image

DataPipelineを組むスキルも(まだ)ない

DynamoDBでデータのexport/importを行うのように、DynamoDBにインポートするならDataPipelineを使うのが王道なのだと思います。試しに触ってみましたが、よくわかりませんでした。なにより、DataPipelineを習得する時間をかけられない。ぐぬぬ。

かと言って、わざわざJSONファイルを用意するのも面倒だ・・・。
むしろExcelとか、CSVでインポートできないのか・・・。

RazorSQLを試してみた

同僚からよさげなツールを紹介してもらいました。

https://www.razorsql.com/

DynamoDBに対応しており、Windows、Mac、Linuxで使えます。
30日無料で使える評価版があります。

インストール手順

早速インストールしてみましょう。

  • acceptをクリック
    image

  • インストール先を指定
    image

  • ショートカットメニューの作成

    • デフォルトでOK

image

  • デスクトップショートカットの作成
    • デフォルトでOK

image

  • インストール実行
    • Installをクリック

image

RazorSQLの起動

  • 起動直後の画面。トライアル版なので30日使える
    • Register Laterをクリック

image

  • pgAdminのような、よくあるDB開発ツールのUIが表示される
    • 左側のClick to Connect to a Databaseをクリックする image

DynamoDBへの接続

  • DynamoDB(Amazon)を選択し、Continueをクリック
    image

  • 自分のAWSアカウントのAccesskeyなどを入力して、CONNECTをクリック

    • Profile Name
      • 任意の名称
    • AWS Access Key
      • 自分のIAMロールのキー
    • AWS Secret Key
      • 自分のIAMロールのキー
    • AWS Server
      • 東京リージョンなら、dynamodb.ap-northeast-1.amazonaws.com
    • Max Rows per Query
      • 必須項目なので、任意の整数を入れる
      • 「クエリで取得できる最大行数」プロビジョニングされたキャパシティのことではないので注意。後で変更も可能。

image

  • 設定値が正しければ、以下の画面が表示される
    image

  • 接続に成功するとテーブル一覧が表示される

    • + ボタンをクリックしていくことでツリー状に表示される image

テーブル情報の表示

  • 任意のテーブルを右クリックして、 View Contentsをクリック
    image

  • テーブル内のデータが表示される。日本語は文字化けしてしまうので注意が必要
    image

データの追加

  • 表示されたデータをダブルクリックすると、データ編集画面が表示される
    image

  • +(Insert Row)をクリックすると、項目が1つ追加される

    • 開発中のテーストデータ登録を入れるなら便利かも

image

  • 入力データの反映を行うためには、SQLタブを開き、 Execute SQLをクリックする
    image

  • 一番左のrefreshボタンをクリックすると、再描画される。項目が増えていることを確認
    image

大量データのインポート

  • ExcelでDynamoDBにインポートしたいデータを用意
    image

  • 任意のテーブルを右クリックして、 Import Dataをクリック
    image

  • Excel(XLSX format)を選択して、 Nextをクリック
    image

  • インポートするExcelファイルを選択して、 Nextをクリック

    • Excelファイルを読み込むと、自動的にStart RowEnd Rowに値が入る
    • 1行目が列名だった場合は2行目から読み込んでくれるので便利 image
  • 読み込んだExcelファイルから、SQLが生成される。デフォルトのまま Executeをクリック
    image

  • インポートが実行される。成功すると以下のダイアログが表示される。
    image

  • インポートしたテーブルを表示すると、データが増えている
    image

  • AWS側から見ても、データが増えている。素晴らしい!!!!
    image

テーブルごとデータの全件削除

  • 任意のテーブルを選択して、右クリック Dropをクリック
    image

  • Deleteをクリック
    image

  • テーブル内の全データが削除されたことを確認
    image

  • ある程度の時間が経過するとテーブルも削除される

    • DropのほかにDrop Tableもあるが、Dropを実行するとテーブルも消えた。

【データインポート時のTips1】キー以外の項目をインポートする

  • DynamoDBのテーブルが空の場合、RazorSQLのデフォルトではPKのみインポートされる。そのため、以下のようなデータ(ハッシュキー:tag レンジキー:keyword)を用意しても、キーではないcreated_atをインポートすることができない。
tag keyword created_at
hoge hoge 123456789
fuga fuga 123456789
  • RazorSQLにcreated_atを認識させるためには、DynamoDBにcreated_atを持つデータを1つ用意する。

image

  • そうすることで、インポート時にcreated_atが表示されるようになる image

【データインポート時のTips2】Number型の項目をインポートする

  • ExcelやCSV形式で、桁数の大きい数字(例:UNIX時間)を入力しても、RazorSQL側で1.2346E+10等に変化されてしまう場合がある
  • そういう時は、Excel側で CSV(コンマ区切り)にすると正しくインポートできる。 image
  • 以下は、UNIX時間を含む項目をCSVインポートした例 image

価格

1ユーザ当たり、$99.95とのことです。

https://razorsql.com/register.html

おわりに

RazorSQLは、有償ツールですが買っても約1万円なので、利便性を考慮してチームで買いたいと思います。DynamoDBを使った開発が効率化できそうです!