Amazon DynamoDB
Developer Guide (API Version 2012-08-10)

Document History for DynamoDB

The following table describes important changes to the documentation.

  • API version: 2012-08-10

Change Description Date Changed
Announcing Amazon DynamoDB Accelerator (DAX), Delivering up to 10X Faster Query Performance (Preview)

Amazon DynamoDB Accelerator (DAX) is a fully managed, highly available, in-memory cache for DynamoDB that delivers up to a 10x performance improvement – from milliseconds to microseconds – even at millions of requests per second. For more information, see In-Memory Acceleration with DAX (Preview).

April 19, 2017
DynamoDB now supports automatic item expiration with Time-To-Live (TTL)

Amazon DynamoDB Time-to-Live (TTL) enables you to automatically delete expired items from your tables, at no additional cost. For more information, see Time To Live.

Feb 27, 2017
DynamoDB now supports Cost Allocation Tags

You can now add tags to your Amazon DynamoDB tables for improved usage categorization and more granular cost reporting. For more information, see Tagging for DynamoDB.

Jan 19, 2017
New DynamoDB DescribeLimits API

The DescribeLimits API returns the current provisioned capacity limits for your AWS account in a region, both for the region as a whole and for any one DynamoDB table that you create there. It lets you determine what your current account-level limits are so that you can compare them to the provisioned capacity that you are currently using, and have plenty of time to apply for an increase before you hit a limit. For more information, see Limits in DynamoDB and the DescribeLimits in the Amazon DynamoDB API Reference.

March 1, 2016
DynamoDB Console Update and New Terminology for Primary Key Attributes

The DynamoDB management console has been redesigned to be more intuitive and easy to use. As part of this update, we are introducing new terminology for primary key attributes:

  • Partition Key—also known as a hash attribute.

  • Sort Key—also known as a range attribute.

Only the names have changed; the functionality remains the same.

When you create a table or a secondary index, you can choose either a simple primary key (partition key only), or a composite primary key (partition key and sort key). The DynamoDB documentation has been updated to reflect these changes.

November 12, 2015
Amazon DynamoDB Storage Backend for Titan

The DynamoDB Storage Backend for Titan is a storage backend for the Titan graph database implemented on top of Amazon DynamoDB. When using the DynamoDB Storage Backend for Titan, your data benefits from the protection of DynamoDB, which runs across Amazon’s high-availability data centers. The plugin is available for Titan version 0.4.4 (primarily for compatibility with existing applications) and Titan version 0.5.4 (recommended for new applications). Like other storage backends for Titan, this plugin supports the Tinkerpop stack (versions 2.4 and 2.5), including the Blueprints API and the Gremlin shell. For more information, see Amazon DynamoDB Storage Backend for Titan.

August 20, 2015
DynamoDB Streams, Cross-Region Replication, and Scan with Strongly Consistent Reads DynamoDB Streams captures a time-ordered sequence of item-level modifications in any DynamoDB table, and stores this information in a log for up to 24 hours. Applications can access this log and view the data items as they appeared before and after they were modified, in near real time. For more information, see Capturing Table Activity with DynamoDB Streams and the DynamoDB Streams API Reference.

DynamoDB cross-region replication is a client-side solution for maintaining identical copies of DynamoDB tables across different AWS regions, in near real time. You can use cross region replication to back up DynamoDB tables, or to provide low-latency access to data where users are geographically distributed. For more information, see Cross-Region Replication.

The DynamoDB Scan operation uses eventually consistent reads, by default. You can use strongly consistent reads instead by setting the ConsistentRead parameter to true. For more information, see Read Consistency for Scan and Scan in the Amazon DynamoDB API Reference.

July 16, 2015
AWS CloudTrail support for Amazon DynamoDB DynamoDB is now integrated with CloudTrail. CloudTrail captures API calls made from the DynamoDB console or from the DynamoDB API and tracks them in log files. For more information, see Logging DynamoDB Operations by Using AWS CloudTrail and the AWS CloudTrail User Guide. May 28, 2015
Improved support for Query expressions This release adds a new KeyConditionExpression parameter to the Query API. A Query reads items from a table or an index using primary key values. The KeyConditionExpression parameter is a string that identifies primary key names, and conditions to be applied to the key values; the Query retrieves only those items that satisfy the expression. The syntax of KeyConditionExpression is similar to that of other expression parameters in DynamoDB, and allows you to define substitution variables for names and values within the expression. For more information, see Working with Queries. April 27, 2015
New comparison functions for conditional writes In DynamoDB, the ConditionExpression parameter determines whether a PutItem, UpdateItem, or DeleteItem succeeds: The item is written only if the condition evaluates to true. This release adds two new functions, attribute_type and size, for use withConditionExpression. These functions allow you to perform a conditional writes based on the data type or size of an attribute in a table. For more information, see Condition Expressions. April 27, 2015
Scan API for secondary indexes In DynamoDB, a Scan operation reads all of the items in a table, applies user-defined filtering criteria, and returns the selected data items to the application. This same capability is now available for secondary indexes too. To scan a local secondary index or a global secondary index, you specify the index name and the name of its parent table. By default, an index Scan returns all of the data in the index; you can use a filter expression to narrow the results that are returned to the application. For more information, see Working with Scans. February 10, 2015
Online operations for global secondary indexes Online indexing lets you add or remove global secondary indexes on existing tables. With online indexing, you do not need to define all of a table's indexes when you create a table; instead, you can add a new index at any time. Similarly, if you decide you no longer need an index, you can remove it at any time. Online indexing operations are non-blocking, so that the table remains available for read and write activity while indexes are being added or removed. For more information, see Managing Global Secondary Indexes. January 27, 2015
Document model support with JSON DynamoDB allows you to store and retrieve documents with full support for document models. New data types are fully compatible with the JSON standard and allow you to nest document elements within one another. You can use document path dereference operators to read and write individual elements, without having to retrieve the entire document. This release also introduces new expression parameters for specifying projections, conditions and update actions when reading or writing data items. To learn more about document model support with JSON, see Data Types and Using Expressions in DynamoDB. October 7, 2014
Flexible scaling For tables and global secondary indexes, you can increase provisioned read and write throughput capacity by any amount, provided that you stay within your per-table and per-account limits. For more information, see Limits in DynamoDB. October 7, 2014
Larger item sizes The maximum item size in DynamoDB has increased from 64 KB to 400 KB. For more information, see Limits in DynamoDB. October 7, 2014
Improved conditional expressions DynamoDB expands the operators that are available for conditional expressions, giving you additional flexibility for conditional puts, updates, and deletes. The newly available operators let you check whether an attribute does or does not exist, is greater than or less than a particular value, is between two values, begins with certain characters, and much more. DynamoDB also provides an optional OR operator for evaluating multiple conditions. By default, multiple conditions in an expression are ANDed together, so the expression is true only if all of its conditions are true. If you specify OR instead, the expression is true if one or more one conditions are true. For more information, see Working with Items in DynamoDB. April 24, 2014
Query filter The DynamoDB Query API supports a new QueryFilter option. By default, a Query finds items that match a specific partition key value and an optional sort key condition. A Query filter applies conditional expressions to other, non-key attributes; if a Query filter is present, then items that do not match the filter conditions are discarded before the Query results are returned to the application. For more information, see Working with Queries. April 24, 2014
Data export and import using the AWS Management Console The DynamoDB console has been enhanced to simplify exports and imports of data in DynamoDB tables. With just a few clicks, you can set up an AWS Data Pipeline to orchestrate the workflow, and an Amazon Elastic MapReduce cluster to copy data from DynamoDB tables to an Amazon S3 bucket, or vice-versa. You can perform an export or import one time only, or set up a daily export job. You can even perform cross-region exports and imports, copying DynamoDB data from a table in one AWS region to a table in another AWS region. For more information, see Exporting and Importing DynamoDB Data Using AWS Data Pipeline. March 6, 2014
Reorganized higher-level API documentation Information about the following APIs is now easier to find:
  • Java: DynamoDBMappper

  • .NET: Document model and object-persistence model

These higher-level APIs are now documented here: Higher-Level Programming Interfaces for DynamoDB.
January 20, 2014
Global secondary indexes DynamoDB adds support for global secondary indexes. As with a local secondary index, you define a global secondary index by using an alternate key from a table and then issuing Query requests on the index. Unlike a local secondary index, the partition key for the global secondary index does not have to be the same as that of the table; it can be any scalar attribute from the table. The sort key is optional and can also be any scalar table attribute. A global secondary index also has its own provisioned throughput settings, which are separate from those of the parent table. For more information, see Improving Data Access with Secondary Indexes and Global Secondary Indexes. December 12, 2013
Fine-grained access control DynamoDB adds support for fine-grained access control. This feature allows customers to specify which principals (users, groups, or roles) can access individual items and attributes in a DynamoDB table or secondary index. Applications can also leverage web identity federation to offload the task of user authentication to a third-party identity provider, such as Facebook, Google, or Login with Amazon. In this way, applications (including mobile apps) can handle very large numbers of users, while ensuring that no one can access DynamoDB data items unless they are authorized to do so. For more information, see Using IAM Policy Conditions for Fine-Grained Access Control. October 29, 2013
4 KB read capacity unit size The capacity unit size for reads has increased from 1 KB to 4 KB. This enhancement can reduce the number of provisioned read capacity units required for many applications. For example, prior to this release, reading a 10 KB item would consume 10 read capacity units; now that same 10 KB read would consume only 3 units (10 KB / 4 KB, rounded up to the next 4 KB boundary). For more information, see Provisioned Throughput. May 14, 2013
Parallel scans DynamoDB adds support for parallel Scan operations. Applications can now divide a table into logical segments and scan all of the segments simultaneously. This feature reduces the time required for a Scan to complete, and fully utilizes a table's provisioned read capacity. For more information, see Working with Scans. May 14, 2013
Local secondary indexes DynamoDB adds support for local secondary indexes. You can define sort key indexes on non-key attributes, and then use these indexes in Query requests. With local secondary indexes, applications can efficiently retrieve data items across multiple dimensions. For more information, see Local Secondary Indexes. April 18, 2013
New API version With this release, DynamoDB introduces a new API version (2012-08-10). The previous API version (2011-12-05) is still supported for backward compatibility with existing applications. New applications should use the new API version 2012-08-10. We recommend that you migrate your existing applications to API version 2012-08-10, since new DynamoDB features (such as local secondary indexes) will not be backported to the previous API version. For more information on API version 2012-08-10, see the Amazon DynamoDB API Reference. April 18, 2013
IAM policy variable support

The IAM access policy language now supports variables. When a policy is evaluated, any policy variables are replaced with values that are supplied by context-based information from the authenticated user's session. You can use policy variables to define general purpose policies without explicitly listing all the components of the policy. For more information about policy variables, go to Policy Variables in the AWS Identity and Access Management Using IAM guide.

For examples of policy variables in DynamoDB, see Authentication and Access Control for Amazon DynamoDB.

April 4, 2013
PHP code samples updated for AWS SDK for PHP version 2 Version 2 of the AWS SDK for PHP is now available. The PHP code samples in the Amazon DynamoDB Developer Guide have been updated to use this new SDK. For more information on Version 2 of the SDK, see AWS SDK for PHP. January 23, 2013
New endpoint DynamoDB expands to the AWS GovCloud (US) region. For the current list of service endpoints and protocols, see Regions and Endpoints. December 3, 2012
New endpoint DynamoDB expands to the South America (São Paulo) region. For the current list of supported endpoints, see Regions and Endpoints. December 3, 2012
New endpoint DynamoDB expands to the Asia Pacific (Sydney) region. For the current list of supported endpoints, see Regions and Endpoints. November 13, 2012

DynamoDB implements support for CRC32 checksums, supports strongly consistent batch gets, and removes restrictions on concurrent table updates.

  • DynamoDB calculates a CRC32 checksum of the HTTP payload and returns this checksum in a new header, x-amz-crc32. For more information, see DynamoDB Low-Level API.

  • By default, read operations performed by the BatchGetItem API are eventually consistent. A new ConsistentRead parameter in BatchGetItem lets you choose strong read consistency instead, for any table(s) in the request. For more information, see Description.

  • This release removes some restrictions when updating many tables simultaneously. The total number of tables that can be updated at once is still 10; however, these tables can now be any combination of CREATING, UPDATING or DELETING status. Additionally, there is no longer any minimum amount for increasing or reducing the ReadCapacityUnits or WriteCapacityUnits for a table. For more information, see Limits in DynamoDB.

November 2, 2012

Best practices documentation

The Amazon DynamoDB Developer Guide identifies best practices for working with tables and items, along with recommendations for query and scan operations.

September 28, 2012

Support for binary data type

In addition to the Number and String types, DynamoDB now supports Binary data type.

Prior to this release, to store binary data, you converted your binary data into string format and stored it in DynamoDB. In addition to the required conversion work on the client-side, the conversion often increased the size of the data item requiring more storage and potentially additional provisioned throughput capacity.

With the binary type attributes you can now store any binary data, for example compressed data, encrypted data, and images. For more information see Data Types. For working examples of handling binary type data using the AWS SDKs, see the following sections:

For the added binary data type support in the AWS SDKs, you will need to download the latest SDKs and you might also need to update any existing applications. For information about downloading the AWS SDKs, see .NET Code Samples.

August 21, 2012

DynamoDB table items can be updated and copied using the DynamoDB console

DynamoDB users can now update and copy table items using the DynamoDB Console, in addition to being able to add and delete items. This new functionality simplifies making changes to individual items through the Console.

August 14, 2012

DynamoDB lowers minimum table throughput requirements

DynamoDB now supports lower minimum table throughput requirements, specifically 1 write capacity unit and 1 read capacity unit. For more information, see the Limits in DynamoDB topic in the Amazon DynamoDB Developer Guide.

August 9, 2012

Signature Version 4 support

DynamoDB now supports Signature Version 4 for authenticating requests.

July 5, 2012

Table explorer support in DynamoDB Console

The DynamoDB Console now supports a table explorer that enables you to browse and query the data in your tables. You can also insert new items or delete existing items. The Creating Tables and Loading Sample Data and Using the Console sections have been updated for these features.

May 22, 2012

New endpoints

DynamoDB availability expands with new endpoints in the US West (N. California) region, US West (Oregon) region, and the Asia Pacific (Singapore) region.

For the current list of supported endpoints, go to Regions and Endpoints.

April 24, 2012

BatchWriteItem API support

DynamoDB now supports a batch write API that enables you to put and delete several items from one or more tables in a single API call. For more information about the DynamoDB batch write API, see BatchWriteItem.

For information about working with items and using batch write feature using AWS SDKs, see Working with Items in DynamoDB and .NET Code Samples.

April 19, 2012

Documented more error codes

For more information, see Error Handling.

April 5, 2012

New endpoint

DynamoDB expands to the Asia Pacific (Tokyo) region. For the current list of supported endpoints, see Regions and Endpoints.

February 29, 2012

ReturnedItemCount metric added

A new metric, ReturnedItemCount, provides the number of items returned in the response of a Query or Scan operation for DynamoDB is available for monitoring through CloudWatch. For more information, see Monitoring DynamoDB.

February 24, 2012

Added examples for incrementing values

DynamoDB supports incrementing and decrementing existing numeric values. Examples show adding to existing values in the "Updating an Item" sections at:

Working with Items: Java.

Working with Items: .NET.

January 25, 2012

Initial product release

DynamoDB is introduced as a new service in Beta release.

January 18, 2012