1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DynamoDBのパーティションキーについてあれこれ

Posted at

AWS DVAの勉強でまとめました。

パーティションキーとは?

RDBMSでいうプライマリキー
もしソートキーを追加する場合はパーティションキーとソートキーの組み合わせがプライマリキーになる

↓の例で言うと、user_idをパーティションキーにするみたいな感じ

user_id email phone_number
1 a@gmail.com xxx-xxxx-xxxx
2 b@gmail.com xxx-xxxx-xxxx
3 c@gmail.com xxx-xxxx-xxxx
4 d@gmail.com xxx-xxxx-xxxx
5 e@gmail.com xxx-xxxx-xxxx
6 f@gmail.com xxx-xxxx-xxxx

パーティションキーの設計

テーブルは物理的にはパーティションに分割されているらしい。
そしてキャパシティはテーブルごとに割り当てられるから、パーティションキーが↓のようになっていたら特定のテーブルにアクセスが偏ってしまう。

user_rankが パーティションキーとする

user_rank user_id email phone_number
A 1 a@gmail.com xxx-xxxx-xxxx
A 2 b@gmail.com xxx-xxxx-xxxx
A 3 c@gmail.com xxx-xxxx-xxxx
A 4 d@gmail.com xxx-xxxx-xxxx
B 5 e@gmail.com xxx-xxxx-xxxx
C 6 f@gmail.com xxx-xxxx-xxxx

user_rankがAのテーブルに偏る、、!

だからパーティションキーにする値は、なるべく分散されるような値にしたほうが良い。user_idとか、、

それか、パーティションキーの値にランダムなサフィックスを追加する

A じゃなくて A_001〜A_200

的な。

1
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?