はじめに
最近、仕事でDynamoDBを使うことが増えてきました。DynamoDBにさくっとデータ投入するのであれば、RazorSQLが便利だよ!という話です。日本語での情報をあまり見かけないので投稿します。
今の悩み
DynamoDBに開発中のテストデータを手動で入れるのが本当に面倒
項目の作成から毎回手動で1つ1つ追加していくのは嫌だ・・・。
DataPipelineを組むスキルも(まだ)ない
DynamoDBでデータのexport/importを行うのように、DynamoDBにインポートするならDataPipelineを使うのが王道なのだと思います。試しに触ってみましたが、よくわかりませんでした。なにより、DataPipelineを習得する時間をかけられない。ぐぬぬ。
かと言って、わざわざJSONファイルを用意するのも面倒だ・・・。
むしろExcelとか、CSVでインポートできないのか・・・。
RazorSQLを試してみた
同僚からよさげなツールを紹介してもらいました。
DynamoDBに対応しており、Windows、Mac、Linuxで使えます。
30日無料で使える評価版があります。
インストール手順
早速インストールしてみましょう。
- デスクトップショートカットの作成
- デフォルトでOK
- インストール実行
- Installをクリック
RazorSQLの起動
- 起動直後の画面。トライアル版なので30日使える
- Register Laterをクリック
DynamoDBへの接続
-
自分の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
- 必須項目なので、任意の整数を入れる
- 「クエリで取得できる最大行数」プロビジョニングされたキャパシティのことではないので注意。後で変更も可能。
- Profile Name
テーブル情報の表示
データの追加
大量データのインポート
-
インポートするExcelファイルを選択して、 Nextをクリック
テーブルごとデータの全件削除
-
ある程度の時間が経過するとテーブルも削除される
- 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つ用意する。
【データインポート時のTips2】Number型の項目をインポートする
- ExcelやCSV形式で、桁数の大きい数字(例:UNIX時間)を入力しても、RazorSQL側で
1.2346E+10
等に変化されてしまう場合がある - そういう時は、Excel側で **CSV(コンマ区切り)**にすると正しくインポートできる。
- 以下は、UNIX時間を含む項目をCSVインポートした例
価格
1ユーザ当たり、$99.95とのことです。
おわりに
RazorSQLは、有償ツールですが買っても約1万円なので、利便性を考慮してチームで買いたいと思います。DynamoDBを使った開発が効率化できそうです!