- データモデル
- 属性(attributes)の型
- テーブルのPrimary Keyの持ち方
データモデル
DynamoDBのデータモデルは、「テーブル」- 「項目」 – 「属性」。DynamoDBは、スキーマレスなnoSQL DBであり、各テーブルのデータ項目の属性や属性数は同じである必要はありません。
テーブル
(Table) |
データ項目の集まり。RDBのテーブルがレコード(行)の集まりであるのに対応。
各テーブルにはPrimary Keyが必要。Primary Keyはテーブル内の各項目を一意に識別するので、Primary Keyに指定する属性は全ての項目に存在する必要があります。 |
項目
(item) |
任意の数の属性で構成。属性の数に制限はないものの、サイズとして400KBを超えることはできません。 |
属性
(attributes) |
「属性名」と「値セット」で構成され、データ項目に関連付けられます。 |
属性(attirubtes)の型
DynamoDB の各属性には名前と値があります。属性値はスカラー型、セット型、ドキュメント型のいずれかです。スカラー型には、数値(Number)、文字列(String)、バイナリ(Binary)、ブール(Boolean)の4種類があり、セット型には、数値セット、文字列セット、バイナリセットの4種類があります。
DynamoDB では、Key Value (キー値) およびドキュメント型のデータ構造をサポートします。Key Value Storeとは、キーと値を使用して、項目の保存・クエリ・更新するモデルのことで、ドキュメント型とは、JSON、XML、HTMLなどの文書形式の項目の保存・クエリ・更新するモデルのことです。
DynamoDBでは、JSONデータ型をサポートするわけではありませんが、文書SDKを使用してJSONデータを直接DynamoDBに渡すことや、AWSマネジメントコンソールを使用してJSON文書を表示・編集することができます。
テーブルのPrimary Keyの持ち方
テーブル内の項目の属性に必要なのはPrimary Keyのみで、Primary Keyが各アイテムを一意的に識別します。 DynamoDB のテーブルのPrimary Keyの持ち方には2種類あります。
Hash key | 必須 | 単体でPrimary Keyとして利用可能。順序を指定しないハッシュインデックスを構築するためのキー |
Range key | オプショナル | Hash key & Range key でPrimary Keyとして利用することも可能。同一のHash keyでのデータの並び方を保証するためにRange keyを使う |
本サイト上に掲載されているまとめ記事が、毎週ステップメールで受け取ることもできます。
参考文献