• データモデル
  • 属性(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を使う

 

 

 

本サイト上に掲載されているまとめ記事が、毎週ステップメールで受け取ることもできます。

 

 

参考文献