Amazon DynamoDB Documentation
Amazon DynamoDB is a NoSQL database that is designed to support key-value and document data models. Developers use DynamoDB to build modern, serverless applications that can start small and scale globally. DynamoDB is designed to run high-performance, internet-scale applications that would overburden many traditional relational databases.
Performance at scale
DynamoDB is a key-value and document database that can support very large tables with horizontal scaling.
Key-value and document data models
DynamoDB is designed to support both key-value and document data models. This enables DynamoDB to have a flexible schema, so each row can have many columns at any point in time. This helps you to adapt the tables as your business requirements change, without having to redefine the table schema as you would in relational databases.
Low latency with DynamoDB Accelerator
DynamoDB Accelerator (DAX) is an in-memory cache that delivers fast read performance for your tables at scale by enabling you to use a managed in-memory cache. Using DAX, you can significantly improve the read performance of your DynamoDB tables.
Global replication with global tables
DynamoDB global tables are designed to replicate your data across your choice of AWS Regions and scale capacity to accommodate your workloads. With global tables, your globally distributed applications can access data locally in the selected regions.
Advanced streaming applications with Kinesis Data Streams for DynamoDB
Amazon Kinesis Data Streams for DynamoDB is designed to capture item-level changes in your DynamoDB tables as a Kinesis data stream. This feature helps you to build advanced streaming applications such as real-time log aggregation, real-time business analytics, and Internet of Things data capture. Through Kinesis Data Streams, you also can use Amazon Kinesis Data Firehose to deliver DynamoDB data to other AWS services.
Integration with Amazon S3
DynamoDB supports bulk data imports in various formats from Amazon S3, helping you migrate data from other systems, load test data, facilitate data sharing between tables and accounts, and simplify your disaster recovery and business continuity plans. DynamoDB also supports exportation to S3, enabling you to perform analytics and complex queries on your data using other AWS services such as Amazon Athena, AWS Glue, and AWS Lake Formation.
Serverless
With DynamoDB, there are no servers to provision, patch, or manage, and no software to install, maintain, or operate. DynamoDB is designed to scale tables to adjust for capacity and maintains performance without the administration requirements of traditional relational databases.
Read/write capacity modes
DynamoDB is designed to provide capacity modes for each table: on-demand and provisioned. For workloads that are less predictable for which you are unsure that you will have high utilization, on-demand capacity mode takes care of managing capacity for you, and you only pay for the resources you consume. Tables using provisioned capacity mode require you to set read and write capacity.
On-demand mode
For tables using on-demand capacity mode, DynamoDB is designed to accommodate your workloads as they ramp up or down to any previously reached traffic level. If a workload’s traffic level hits a new peak, DynamoDB can adapt to accommodate the workload. You can use on-demand capacity mode for both new and existing tables, and you can continue using the existing DynamoDB APIs.
Scaling
For tables using provisioned capacity, DynamoDB is designed to scale throughput and storage based on your previously set capacity by monitoring the performance usage of your application. If your application traffic grows, DynamoDB increases throughput to accommodate the load. If your application traffic shrinks, DynamoDB scales down.
Change tracking with triggers
DynamoDB is designed to integrate with AWS Lambda to provide triggers. Using triggers, you can execute a custom function when item-level changes in a DynamoDB table are detected. With triggers, you can build applications that react to data modifications in DynamoDB tables. The Lambda function can perform the applicable actions you specify, such as sending a notification or initiating a workflow.
Enterprise ready
DynamoDB can be used for certain mission-critical workloads, including support for ACID transactions for a broad set of applications that require complex business logic. DynamoDB is designed to help you secure your data with encryption and back up your data.
ACID transactions
DynamoDB is designed to provide native, server-side support for transactions, and helps simplify the developer experience of making coordinated, all-or-nothing changes to multiple items both within and across tables. With support for transactions, developers can extend the scale, performance, and enterprise benefits of DynamoDB to a broader set of workloads.
Encryption at rest
DynamoDB enables customers to encrypt their data at rest by default. Encryption at rest helps enhances the security of your data by using encryption keys stored in AWS Key Management Service.
Point-in-time recovery
Point-in-time recovery (PITR) is designed to help protect your DynamoDB tables from accidental write or delete operations. PITR provides continuous backups of your DynamoDB table data, and is designed to enable you to restore that table to any point in time up to the second during the preceding 35 days. You can enable PITR or initiate backup and restore operations in the AWS Management Console or with a single API call.
On-demand backup and restore
On-demand backup and restore allows you to create backups of your DynamoDB tables’ data for data archiving.
Additional Information
For additional information about service controls, security features and functionalities, including, as applicable, information about storing, retrieving, modifying, restricting, and deleting data, please see https://docs.aws.amazon.com/index.html. This additional information does not form part of the Documentation for purposes of the AWS Customer Agreement available at http://aws.amazon.com/agreement, or other agreement between you and AWS governing your use of AWS’s services.