以前作成したDynamoDBのLocal Viewerですが、現状の機能だと色々と不足してきたため更新をかけました。以前の記事はこちら。
DynamoDB Local用のViewerをSpring Bootベースで作ってみた
当時はScanメソッドでとりあえずデータを取ってましたが、今回は以下に対応させました。
- テーブルの詳細情報確認
- 指定したテーブルの中身の削除(制限あり)
- 指定したテーブルの削除
- テーブルデータのソートと絞り込み
結果はこちらに登録してあります。
テーブルの詳細情報確認
テーブル名をクリックした際にスキーマ情報を取得できるようにしました。
こんな感じのダイアログを出すようにしています。
指定したテーブルの中身の削除(制限あり)
個人的には一番欲しかった機能です。ローカルでDynamoDBを使った動作確認をしている際に、いちいちテーブルをドロップしてから作り直すのをスクリプトを組んで実施するのが面倒でした。なので「Clear」をクリックすれば中身をからにしてくれる機能を作りました。
以下は削除後のスキーマ情報です。tableSizeBytesやitemCountが0になっているのがわかります。
ただいくつか制限があり、以下の実装のようにいくつかテーブル情報を引き継いでいません。この辺りうまい方法を知っている人がいればぜひ知りたいです。
CreateTableRequest createRequest = new CreateTableRequest().withTableName(tableName)
.withAttributeDefinitions(describeResult.getTable().getAttributeDefinitions())
.withKeySchema(describeResult.getTable().getKeySchema())
.withProvisionedThroughput(new ProvisionedThroughput()
.withReadCapacityUnits(describeResult.getTable().getProvisionedThroughput().getReadCapacityUnits())
.withWriteCapacityUnits(describeResult.getTable().getProvisionedThroughput().getWriteCapacityUnits()));
どんな仕組みにしたかはこちらに書きました。
Local DynamoDBのテーブルデータを削除したいときの実装(テーブル削除→作成)
指定したテーブルの削除
テーブルデータのソートと絞り込み
Scanのページには、各ヘッダで並び替えができるように、また検索結果にフィルタをかけられるように簡易のフィルタ機能をつけました。
まとめ
そろそろQuery機能もつけて、実際のAWS ConsoleでのDynamoDBのユーザビリティを再現したいと思います。