aws memo

AWS関連の備忘録 (※本ブログの内容は個人的見解であり、所属組織及び企業の意見を代弁するものではありません。1年以上古いエントリは疑ってかかってください)

訳:Amazon DynamoDB : データモデル

http://aws.amazon.com/jp/dynamodb/#details

Amazon DynamoDBはテーブル内のデータを、アイテムの集合として保持する。各アイテムは1つ以上の属性を持つ。

属性 ( Attributes )

属性は、名前/値のペアとなる。名前は文字列の必要があるが、値は文字列、数値、文字列か数値の配列が利用できる。属性の例としては以下のようになる。

        "ImageID" = 1
        "Title" = "flower"
        "Tags" = "flower", "jasmine", "white"
        "Ratings" = 3, 4, 2

アイテム ( Item )

属性の集合がアイテムを構成し、アイテムは主キーで識別される。アイテムの属性は、名前/値ペアの任意の順序で並んだ集合となる。アイテム中の属性は疎で、同一テーブル内の別のアイテムの属性とは無関係である。主キー以外の属性はオプショナルである。従来のDBと違い、テーブルには主キー以外のスキーマ制限が無い。アイテムはテーブルに保存される。テーブルにアイテムを追加するには、最低1つの属性を主キーとして明示する必要がある。DynamoDBにおいて、主キーはアイテムを一意に同定する。以下の図では、ImageID属性が明示された主キーとなる。

 

注)このテーブルは "my table"という名前を持つが、アイテムは名前を持たない。主キー"ImageID"=1が、特定のアイテムを指定している。

テーブル ( Tables )

テーブルはアイテムを保持し、その情報を不連続の領域上に組織化する。テーブル内のすべてのアイテムは同じ主キーの形式(primary key scheme)で保持される。テーブル作成時に、主キーとして使う属性名を明示する。テーブル内の各アイテムは、一意の主キー値を持つ必要がある。DynamoDBにデータを書き込む最初の手順は、テーブル名と主キー名を明示してテーブルを作成する。以下は、ImageIDをアイテムを識別する主キーとする大きなテーブルである。

Table: My Images    
Primary Key Other Attributes  
ImageID = 1 ImageLocation = https://s3.amazonaws.com/bucket/img_1.jpg Date = 1260653179 Title = flower Tags = Flower, Jasmine Width = 1024 Depth = 768  
ImageID = 2 ImageLocation = https://s3.amazonaws.com/bucket/img_2.jpg Date = 1252617979 Rated = 3, 4, 2 Tags = Work, Seattle, Office Width = 1024 Depth = 768  
ImageID = 3 ImageLocation = https://s3.amazonaws.com/bucket/img_3.jpg Date = 1285277179 Price = 10.25 Tags = Seattle, Grocery, Store Author = you Camera = phone  
ImageID = 4 ImageLocation = https://s3.amazonaws.com/bucket/img_4.jpg Date = 1282598779 Title = Hawaii Author = Joe Colors = orange, blue, yellow Tags = beach, blanket, ball