Amazon DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. DynamoDB lets you oﬄoad the administrative burdens of operating and scaling a distributed database so that you don’t have to worry about hardware provisioning, setup, and conﬁguration, replication, software patching, or cluster scaling. DynamoDB also oﬀers encryption at rest, which eliminates the operational burden and complexity involved in protecting sensitive data.
To get in-Depth knowledge on Amazon DynamoDB you can enroll for live AWS Online Training
With DynamoDB, you can create database tables that can store and retrieve any amount of data and serve any level of request traﬃc. You can scale up or scale down your tables’ throughput capacity without downtime or performance degradation. You can use the AWS Management Console to monitor resource utilization and performance metrics.
DynamoDB provides an on-demand backup capability. It allows you to create full backups of your tables for long-term retention and archival for regulatory compliance needs.
You can create on-demand backups and enable point-in-time recovery for your Amazon DynamoDB tables. Point-in-time recovery helps protect your tables from accidental write or delete operations. With point-in-time recovery, you can restore that table to any point in time during the last 35 days.
DynamoDB allows you to delete expired items from tables automatically to help you reduce storage usage and the cost of storing data that is no longer relevant.
High Availability and DurabilityDynamoDB automatically spreads the data and traﬃc for your tables over a suﬃcient number of servers to handle your throughput and storage requirements, while maintaining consistent and fast performance. All of your data is stored on solid-state disks (SSDs) and is automatically replicated across multiple Availability Zones in an AWS Region, providing built-in high availability and data durability. You can use global tables to keep DynamoDB tables in sync across AWS Regions
DynamoDB Core ComponentsIn DynamoDB, tables, items, and attributes are the core components that you work with. A table is a collection of items, and each item is a collection of attributes. DynamoDB uses primary keys to uniquely identify each item in a table and secondary indexes to provide more querying ﬂexibility. You can use DynamoDB Streams to capture data modiﬁcation events in DynamoDB tables.
Tables, Items, and AttributesThe following are the basic DynamoDB components:
- Tables – Similar to other database systems, DynamoDB stores data in tables. A table is a collection of data. For example, see the example table called People that you could use to store personal contact information about friends, family, or anyone else of interest. You could also have a Cars table to store information about vehicles that people drive.
- Items – Each table contains zero or more items. An item is a group of attributes that is uniquely identiﬁable among all of the other items. In a People table, each item represents a person. For a Cars table, each item represents one vehicle. Items in DynamoDB are similar in many ways to rows, records, or tuples in other database systems. In DynamoDB, there is no limit to the number of items you can store in a table.
- Attributes – Each item is composed of one or more attributes. An attribute is a fundamental data element, something that does not need to be broken down any further. For example, an item in a People table contains attributes called PersonID, LastName, FirstName, and so on. For a Department table, an item might have attributes such as DepartmentID, Name, Manager, and so on. Attributes in DynamoDB are similar in many ways to ﬁelds or columns in other database systems.
When you create a table, in addition to the table name, you must specify the primary key of the table. The primary key uniquely identiﬁes each item in the table, so that no two items can have the same key.DynamoDB supports two diﬀerent kinds of primary keys:
- Partition key – A simple primary key, composed of one attribute known as the partition key.DynamoDB uses the partition key’s value as input to an internal hash function. The output from the hash function determines the partition (physical storage internal to DynamoDB) in which the item will be stored.
- Partition key and sort key – Referred to as a composite primary key, this type of key are composed of two attributes. The ﬁrst attribute is the partition key, and the second attribute is the sort key.
- DynamoDB uses the partition key value as input to an internal hash function. The output from the hash function determines the partition (physical storage internal to DynamoDB) in which the item will be stored. All items with the same partition key value are stored together, in sorted order by sort key value.
- In a table that has a partition key and a sort key, it’s possible for two items to have the same partition key value. However, those two items must have diﬀerent sort key values.
Secondary IndexesYou can create one or more secondary indexes on a table. A secondary index lets you query the data in the table using an alternate key, in addition to queries against the primary key. DynamoDB doesn’t require that you use indexes, but they give your applications more ﬂexibility when querying your data. After you create a secondary index on a table, you can read data from the index in much the same way as you do from the table.
DynamoDB supports two kinds of indexes:
- Global secondary index – An index with a partition key and sort key that can be diﬀerent from those on the table.
- Local secondary index – An index that has the same partition key as the table, but a diﬀerent sort key.
DynamoDB Streams is an optional feature that captures data modiﬁcation events in DynamoDB tables. The data about these events appear in the stream in near-real-time, and in the order that the events occurred.
Each event is represented by a stream record. If you enable a stream on a table, DynamoDB Streams writes a stream record whenever one of the following events occurs:
- A new item is added to the table: The stream captures an image of the entire item, including all of its attributes.
- An item is updated: The stream captures the “before” and “after” image of any attributes that were modiﬁed in the item.
- An item is deleted from the table: The stream captures an image of the entire item before it was deleted.
Take your career to new heights of success with a AWS Training