Open7

DynamoDB設計

Takashi ToyofukuTakashi Toyofuku

DynamoDBでゼロから設計するきっかけがあったのでRDB脳の自分のために改めて整理しとく

Takashi ToyofukuTakashi Toyofuku

2つの重要な概念。

一つはNoSQLでは必要なクエリがわかるまでスキーマ設計を行わないこと。
一方でRDBではアクセスパターンとは関係なくデータモデルを作成する。
ビジネス上の問題とアプリケーションのユースケースを理解することが不可欠。

2つ目はテーブル数を少なくすること。

https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/bp-general-nosql-design.html

Takashi ToyofukuTakashi Toyofuku

始める前に理解すること。

  1. データサイズ
  2. データシェイプ => NoSQL上でデータを整理することで、クエリされるものと一致するようにする
  3. データ速度
Takashi ToyofukuTakashi Toyofuku

クエリを整理したらやること。

  • 関連するデータをまとめる
  • ソート順を使用する
  • パーティションを分散させること
  • GSIを使ってメインテーブルでサポートできるクエリを増やす