💭

DynamoDBについて学んだメモ

2023/06/25に公開

NoSQLとは

RDBではないデータベース。

  • RDBで出来ることが出来ない
    テーブル結合でのQueryが出来ない。
    Query条件にはテーブル作成時に定義したプライマリーキー(PK+SKもしくはPK)のみ指定。
    PK,SK以外の属性をキーにデータを取得したい場合は、インデックスを作成する必要がある。
  • 設計
    PK、SK以外の属性(カラム)を定義せずテーブルを作成する。

インデックス

・GSI
テーブル作成後にも追加できる。
異なるプライマリーキーを使用したい場合に作成する。
・LSI
テーブル作成時に定義する必要がある。後から追加は出来ない。
プライマリーキーのPKに対して、異なるSKを使用したい場合に作成する。

難しかったところ

RDBのように柔軟にデータを取り出せないので、どんなデータの登録、検索、更新を行うのか、全てのアクセスパターンを洗い出した上で決める必要があった。
データの持たせ方がRDBの考え方と全く違うため、複数の値を結合してPKにするなど、工夫が必要で勉強になった。
設計する段階で仕様が決まりきってなかったこともあり、苦労した。

Discussion