Open1

DynamoDB

beatsbeats

スキャンとは

  • テーブルまたはセカンダリインデックスの全てのitemを読み込むこと
  • 最大1MBのデータを取得できる
  • 取得したデータにフィルタ式を適用して、絞り込みも可能

クエリとは

  • プライマリキーの値を基にitemを検索して読み込むこと
  • 最大1MBのデータを取得できる
  • パーティションキー、ソートキーで構成されるプライマリキーを用いた検索を行う場合、ソートキーに条件を指定して検索することが可能(パーティションキーの値を指定することは必須)
  • 取得したデータにフィルタ式を適用して、絞り込みも可能(パーティションキー、ソートキーでの絞り込みは不可)
  • Limitパラメータを用いて読み取るitem数を指定することも可能
  • 結果整合性がデフォルト。(最新の更新が反映されていない場合がある)
    • 強力な整合性を指定することも可能

プライマリキーとは

  • テーブル内でitemを一意に識別するキーのこと。一つ又は二つのattributeで構成される
  • DynamoDBのテーブルは基本的にスキーマレスであり、プライマリキー以外のattributeを事前に定義する必要はない

パーティションキーとは

  • プライマリキーの構成要素の一つとなるキーのこと
    • プライマリキーの構成要素がパーティションキーのみの場合には、テーブル内のパーティションキーの値は重複不可
  • パーティションキーの値をハッシュ関数への入力に用い、出力値によってitemが保存されるパーティションが決まる
    • パーティションとはDynamoDB内の物理ストレージのこと

ソートキーとは

  • プライマリキーが複合プライマリキーであった場合に、パーティションキーと共にプライマリキーの構成要素の一つとなるキーのこと
  • 同じパーティション内のitemはソートキーによってソートされる。
  • プライマリキーが複合プライマリキーである場合、ソートキーの値が異なればパーティションキーの重複は可能

セカンダリインデックスとは

  • プライマリキーに加えて別のキーを用いたり、プライマリキー以外のキーを用いることでクエリを実行するためのインデックス

グローバルセカンダリインデックスとは

  • プライマリキーとは異なるパーティションキー、ソートキーを持つインデックス
  • デフォルトではテーブルあたり20のグローバルセカンダリインデックスを指定可能
  • テーブル作成時に設定可能であり、作成後も自由に追加や削除可能

ローカルセカンダリインデックスとは

  • プライマリキーと同じパーティションキー、プライマリキーとは異なるソートキーを持つインデックス
  • テーブルあたり5のローカルセカンダリインデックスを指定可能
  • ソートキーの値は、特定のパーティションキーの値に対して一意である必要はない
  • テーブル作成時のみ設定可能であり、テーブル作成後は追加や削除不可