Amazon DynamoDB provides a key-value store and document database designed for single-digit millisecond response times regardless of scale. It's durable (multi-master, multi-region), offers backup and restore, and can be fronted by an in-memory cache for production applications. As a fully managed service, scaling happens without customer intervention.
- Tables contain the data.
- Items are rows.
- Attributes are columns.
- Primary Keys uniquely identify values in the Table. There are two types:
- Partition Keys are composed of a single attribute. This key is used as the input to the hash function which determines the physical location of the data in the table's storage medium.
- Composite Primary Keys are comprised of separate partition keys and sort keys. The sort key is used to sort the data in the storage medium within a partition.
- Secondary Indexes allow querying for Items in a table by a non-primary key. They're not required for querying, but they generally improve performance. There are two kinds:
- A Global Secondary Index has both partition and sort keys that can be different to those on the table.
- A Local Secondary Index has the same partition key but a different sort key.
- Streams optionally allows you to capture modification events in tables in near real-time, in-order. Together with Lambda these can be used to create triggers to perform actions, e.g. send notifications.
DAX clusters can be deployed between your application and DynamoDB to perform in-memory caching to speed up data access.
- Storage utilisation.
- Read throughput.
- Write throughput.