Table Operations
DynamoDB provides operations to create, update and delete tables. After the table is created, you can
use the UpdateTable operation to increase or decrease a table's provisioned throughput. DynamoDB
also supports an operation to retrieve table information (the DescribeTable operation) including the
current status of the table, the primary key, and when the table was created.The ListTables operation
enables you to get a list of tables in your account in the region of the endpoint you are using to commu-
nicate with DynamoDB. For more information, see Working with Tables (p. 57).
Item Operations
Item operations enable you to add, update and delete items from a table. The UpdateItem operation
allows you to update existing attribute values, add new attributes, and delete existing attributes from an
item.You can also perform conditional updates. For example, if you are updating a price value, you can
set a condition so the update happens only if the current price is $20.
DynamoDB provides an operation to retrieve a single item (GetItem) or multiple items (BatchGetItem).
You can use the BatchGetItem operation to retrieve items from multiple tables. For more information,
see Working with Items (p. 89).
Query and Scan
The Query operation enables you to query a table using the hash attribute and an optional range filter.
If the table has a secondary index, you can also Query the index using its key.You can query only tables
whose primary key is of hash-and-range type; you can also query any secondary index on such tables.
Query is the most efficient way to retrieve items from a table or a secondary index.
DynamoDB also supports a Scan operation, which you can use on a table or a secondary index. The
Scan operation reads every item in the table or secondary index. For large tables and secondary indexes,
a Scan can consume a large amount of resources; for this reason, we recommend that you design your
applications so that you can use the Query operation mostly, and use Scan only where appropriate. For
more information, see Query and Scan Operations (p. 185).
You can use conditional expressions in both the Query and Scan operations to control which items are
returned.
Data Read and Consistency Considerations
DynamoDB maintains multiple copies of each item to ensure durability. When you receive an "operation
successful" response to your write request, DynamoDB ensures that the write is durable on multiple
servers. However, it takes time for the update to propagate to all copies.The data is eventually consistent,
meaning that a read request immediately after a write operation might not show the latest change. However,
DynamoDB offers you the option to request the most up-to-date version of the data. To support varied
application requirements, DynamoDB supports both eventually consistent and strongly consistent read
options.
Eventually Consistent Reads
When you read data (GetItem, BatchGetItem, Query or Scan operations), the response might not
reflect the results of a recently completed write operation (PutItem, UpdateItem or DeleteItem).The
response might include some stale data. Consistency across all copies of the data is usually reached
within a second; so if you repeat your read request after a short time, the response returns the latest data.
By default, the Query and GetItem operations perform eventually consistent reads, but you can optionally
request strongly consistent reads. BatchGetItem operations are eventually consistent by default, but
you can specify strongly consistent on a per-table basis.Scan operations are always eventually consistent.
For more information about operations in DynamoDB, see Using the DynamoDB API (p. 466).
API Version 2012-08-10
9
Amazon DynamoDB Developer Guide
Table Operations