DynamoDB 専用の NoSQL Workbench には様々なサンプルデータモデルが用意されています。
サンプルデータモデルには、GSI やファセットが定義されているので DynamoDB のテーブル設計の参考になります。
また、NoSQL Workbench にはコミット機能があり、データモデルを DynamoDB にエクスポートすることができます。サンプルデータモデルには Item もいくつか用意されているので、データモデルを DynamoDB にコミットした後には、サンプルデータを用意することなく、そのまま簡単なアプリケーションの作成まで行えそうです。
サンプルデータモデルのインポート
左側ペインの**[Amazon DynamoDB]から Sample data models テーブルの中からインポートしたいモデルの行にカーソルを持っていき[Import]**を選択します。
インポートが成功すると**[Data modeler]**にインポートしたテーブルの情報が表示されます。
データをビジュアル化
左側ペインの**[Visualizer]**を選択すると、メインテーブルや GSI でのデータ表示が可視化されます。
サンプルデータモデルを DynamoDB にコミット
データモデルを DynamoDB のテーブルにコミットしてみます。
**[Visualizer]から[Commit to Amazon DynamoDB]を選択すると、モーダルが表示されます。
新しいコネクションを作成するか、既存のコネクションを選択します。コネクションを選択できたら[Commit]を押下します。すると、Operation builder のトップページに移ります。
先ほど選択したコネクションの[Open]**を選択すると、そのコネクションに紐づいているテーブルの一覧が Tables に表示されます。コミットしたデータモデルのテーブルを選択すると、Visualizer で確認していたデータがテーブルにコミットされているのが確認できます。
おわりに
DynamoDB のテーブル設計は、あらかじめアプリケーションのクエリパターンを知っておく必要があるので、NoSQL Workbench の Data modeler と Visualize を使用して、クエリパターンがシミュレーションできるのは、なかなか便利かなと思いました。