Open1
DynamoDB
スキャンとは
- テーブルまたはセカンダリインデックスの全てのitemを読み込むこと
- 最大1MBのデータを取得できる
- 取得したデータにフィルタ式を適用して、絞り込みも可能
クエリとは
- プライマリキーの値を基にitemを検索して読み込むこと
- 最大1MBのデータを取得できる
- パーティションキー、ソートキーで構成されるプライマリキーを用いた検索を行う場合、ソートキーに条件を指定して検索することが可能(パーティションキーの値を指定することは必須)
- 取得したデータにフィルタ式を適用して、絞り込みも可能(パーティションキー、ソートキーでの絞り込みは不可)
- Limitパラメータを用いて読み取るitem数を指定することも可能
- 結果整合性がデフォルト。(最新の更新が反映されていない場合がある)
- 強力な整合性を指定することも可能
プライマリキーとは
- テーブル内でitemを一意に識別するキーのこと。一つ又は二つのattributeで構成される
- DynamoDBのテーブルは基本的にスキーマレスであり、プライマリキー以外のattributeを事前に定義する必要はない
パーティションキーとは
- プライマリキーの構成要素の一つとなるキーのこと
- プライマリキーの構成要素がパーティションキーのみの場合には、テーブル内のパーティションキーの値は重複不可
- パーティションキーの値をハッシュ関数への入力に用い、出力値によってitemが保存されるパーティションが決まる
- パーティションとはDynamoDB内の物理ストレージのこと
ソートキーとは
- プライマリキーが複合プライマリキーであった場合に、パーティションキーと共にプライマリキーの構成要素の一つとなるキーのこと
- 同じパーティション内のitemはソートキーによってソートされる。
- プライマリキーが複合プライマリキーである場合、ソートキーの値が異なればパーティションキーの重複は可能
セカンダリインデックスとは
- プライマリキーに加えて別のキーを用いたり、プライマリキー以外のキーを用いることでクエリを実行するためのインデックス
グローバルセカンダリインデックスとは
- プライマリキーとは異なるパーティションキー、ソートキーを持つインデックス
- デフォルトではテーブルあたり20のグローバルセカンダリインデックスを指定可能
- テーブル作成時に設定可能であり、作成後も自由に追加や削除可能
ローカルセカンダリインデックスとは
- プライマリキーと同じパーティションキー、プライマリキーとは異なるソートキーを持つインデックス
- テーブルあたり5のローカルセカンダリインデックスを指定可能
- ソートキーの値は、特定のパーティションキーの値に対して一意である必要はない
- テーブル作成時のみ設定可能であり、テーブル作成後は追加や削除不可