1
3

DynamoDB のテーブル設計

Last updated at Posted at 2022-09-05

dynamobasicknowledge.png

引用元; https://d1.awsstatic.com/webinars/jp/pdf/services/20181225_AWS-BlackBelt_DynamoDB.pdf

パーティションキーのみ

  • パーティションキーは ハッシュキー (hash key)とも呼ばれる(AWS のドキュメントだと hash key を利用している例が多いように思える。)
  • テーブルを作成後は変更できない
  • テーブルからデータをフェッチするときは Scan または GetItem を使う

複合キー

  • パーティションキー と ソートキー を組み合わせる方法
  • ソートキーはレンジキー(range key) とも呼ばれる
  • テーブルを作成後は変更できない
  • Query でフェッチできる
  • ソートキーのみの条件検索はできない (パーティションキーの指定が必須)

グローバル・セカンダリ・インデックス ( GSI )

  • キー以外の項目を指定して検索できるようになる
  • Query で GSI を指定してフェッチできる (キーの指定は不要)
  • テーブル作成後でも変更可能

ローカル・セカンダリ・インデックス ( LSI )

  • GSI と同じように機能する
  • テーブル作成後は変更不可能

一般的に言えば、次の 2 つの理由から LSI を避けるべきです。
GSI とは異なり、テーブルの作成後に更新または削除することはできません。テーブル作成時にすべての LSI を指定する必要があります。これにより、かなり柔軟性がなくなります。
ローカル セカンダリ インデックスを使用してテーブルを作成する場合、そのテーブルにはパーティション キー値ごとに 10 GB のサイズ制限があります。

参考サイト

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3