💭
DynamoDBについて学んだメモ
NoSQLとは
RDBではないデータベース。
- RDBで出来ることが出来ない
テーブル結合でのQueryが出来ない。
Query条件にはテーブル作成時に定義したプライマリーキー(PK+SKもしくはPK)のみ指定。
PK,SK以外の属性をキーにデータを取得したい場合は、インデックスを作成する必要がある。 - 設計
PK、SK以外の属性(カラム)を定義せずテーブルを作成する。
インデックス
・GSI
テーブル作成後にも追加できる。
異なるプライマリーキーを使用したい場合に作成する。
・LSI
テーブル作成時に定義する必要がある。後から追加は出来ない。
プライマリーキーのPKに対して、異なるSKを使用したい場合に作成する。
難しかったところ
RDBのように柔軟にデータを取り出せないので、どんなデータの登録、検索、更新を行うのか、全てのアクセスパターンを洗い出した上で決める必要があった。
データの持たせ方がRDBの考え方と全く違うため、複数の値を結合してPKにするなど、工夫が必要で勉強になった。
設計する段階で仕様が決まりきってなかったこともあり、苦労した。
Discussion