訳:Amazon DynamoDB API概要
http://aws.amazon.com/jp/dynamodb/#access_model_api_overview
主キー ( Primary Key)
DynamoDBは、データにアクセスするためにテーブル毎に主キーの定義が必須である。主キーは各アイテムを一意に識別する。主キーはテーブルの一部であり、索引化されている。さらに、複数サーバにまたがったハッシュパーティションデータにも使われている。テーブル作成時に主キーを明示する必要がある。
言い換えれば、各アイテムは 名前/値のペアの集合である。アイテム用にテーブルを作る時、主キーとして名前/値のペアを明示する。同一テーブルにある全てのアイテムは主キー属性の値を持たなければならず、Amazon DynamoDBは名前の値が一意であることを保証する。索引は主キーを基に作られる。
レンジクエリ用の複合主キー( Composite Primary Key for Range Queries)
複合主キーは、テーブル内の2つの属性を指定して、一意な主キーを生成する。t-エブル内の全アイテムは必ずこの2つの属性を持つ必要がある。1つは "hash partition attribute( ハッシュパーティション属性)" で、もうひとつは"range attribute"である。
例えば、" Status Updates"テーブルが複合主キーとして "UserID"( ハッシュ属性、複数サーバにまたがるパーティションに使われる)と、"Time" (レンジ属性)を持っているとする。
- 1) UserIDとTimeの組み合わせであるアイテムを一意に識別する
- 2) UserIDに関連する特定のハッシュ"bucket"を持つ全アイテム
- 3)特定の時刻範囲にある特定のUserIDに関する全アイテム
"Time"に対するレンジクエリは、UserIDとハッシュバケットが明示されている場合に有効となる。
CreateTable
データアクセスに用いる主インデックスを明示してテーブルを作成する。
UpdateTable
指定したテーブルのスループットを変更する
DeleteTable
テーブルを削除する
DescribeTables
テーブルサイズ、ステータス、インデックスの情報を返す
PutItem
新しいアイテムを保存する、もしくは同じ主キーの古いアイテムを入れ替える。
UpdateItem
既存のアイテムの属性を編集する。属性に対する条件にマッチした場合にのみ変更することも可能
DeleteItem
主キーで指定されたアイテムを消す。属性に対する条件にマッチした場合のみ削除することも可能。
GetItem
主キーにマッチする1アイテムの属性集合を返す。eventually consistency readがデフォルト。ConsistentReadも使える。
BatchGetItem
複数テーブルから複数アイテムを取得する。1レスポンスのサイズ上限は1MB、100アイテム。
Query
主キーで1つ以上のアイテムを取得する。eventual consistentとstrong consistencyの両方をサポートする。 composite hash-rangeキーを持つテーブルで使われる
Scan
主キー以外の属性を検索条件にして、テーブルをフルスキャンして複数のアイテムを返す。インデックスが無いので、性能予測のクエリーに使うべきではない。結果集合はeventually consistentである。 Scan APIはiteratorと考えることができる。
Scan APIによるリクエストで集めたアイテムサイズの合計が1MB制限に達した場合、リクエストは強制的に停止し、フェッチされた結果は LastEvaluatedKeyと共に返される。LastEvaluatedKyeは、Scanを継続するために継続操作する際に必要になる。