LoginSignup
1

More than 5 years have passed since last update.

DynamoDBについて

Posted at

DynamoDBについての覚書

コアコンポーネント

  • テーブル
  • 項目
  • 属性

「属性」の集合が「項目」
「項目」の集合が「テーブル」

プライマリキー

テーブルの各項目をいひ位に識別するため、デーブル内に同じキーを持つことはない。

2種類のプライマリーキーをサポート

パーティションキー

  • パーティションキーとハッシュ関数を使用して項目が保存されるパーティション(DynamoDB内部の物理ストレージ:場所)が決まる
  • パーティションキーのみを含むテーブルではパーティションキーの重複はNG

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

  • 複合プライマリキー(二つの属性で構成される)
  • パーティションの決め方は上記と同じ+ソートキーでパーティションごとにソートされて保存される
  • 複合プライマリキー(2つの属性の組み合わせ)の重複はNGだが、どちらか一方の重複は存在が許される

セカンダリインデックス

  • プライマリキーに対するクエリに追加で代替キーを使用してテーブル内のデータのクエリを行うことができる
  • セカンダリインデックスの使用は必須ではない
  • インデックスを使用するとデータのクエリを実行する際にアプリケーションの柔軟性が高まる
  • 2種類のインデックス
    • Global secondary index
      • パーティションキーとソートキーを持つインデックス
    • ローカルセカンダリインデックス
      • テーブルと同じパーティションキーとことなるソートキーを持つインデックス

DynamoDBストリーム

  • テーブルのデータ変更イベントをキャプチャするオプション
  • ほぼリアルタイム+発生順にストリームされる
  • イベント
    • 新しい「項目」の追加>全ての「属性」を含む「項目」全体のイメージをキャプチャ
    • 「項目」の更新>「項目」の「(変更前+変更後)の「属性」のイメージをキャプチャ
    • 「項目」の削除>削除前に「項目」全体のイメージを取得

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1