DynamoDBを理解する

DynamoDBとは

DynamoDBについて理解します。
AWSが提供する完全マネージドのNoSQLデータベースになります。NoSQLなので高いスケーラビリティを実現している。RDBほど複雑なクエリを持っていません。

DynamoDBには独自概念が存在しています。

名称 別称など 意味
Table Table RDBでいうところのテーブル
Item Row RDBでいうところのレコード
Attributes Colmun RDBと違ってはすべてのItemが同じ形式のAttributesを持つ必要がありません。
Partition Key 別称:HashKey RDBでいう主キー
Sort Key 別称:RangeKey 任意で使用可能。Primary Keyを構成する一部になる

パーティションキーとソートキー

パーティションキー(Hash Key)とソートキー(Range Key)なるものが存在します。
DynamoDBはこの2つを用いることによってユニークなItemとして確立させます。

こちらのPersitionKeyは主キーとして準備されているとあればイメージはしやすいのですが、このRangeKeyとは何のために存在しているのか?
答えとして、このRangeKeyはローカルセカンダリインデックスとして扱うことができます。
(RangeKeyの入力は任意で必須ではないです。)

DynamoDBではRangeKey以外のAttributesでOrderByをかけることができません。
そのためにRangeKeyが用意されていると考えたらよいです。

上記のエクセルを例にあげると
idをhash keyとしてプライマリーキーとして設定して一意のキーにする。
release_dateをRangeKeyとすることで日付ごとのソートが可能になります。

参考
– https://qiita.com/kenichi_nakamura/items/bc60d4702b5f88d59cfb
– https://www.youtube.com/watch?v=7br6H1SscUg
– https://future-architect.github.io/articles/20200818/

関連記事