DynamoDB supports storing, querying, and updating documents. Using the AWS SDK you can write applications that store JSON documents directly into Amazon DynamoDB tables. This capability reduces the amount of new code to be written to insert, update, and retrieve JSON documents and perform powerful database operations like nested JSON queries using just a few lines of code.
Amazon DynamoDB supports key-value data structures. Each item (row) is a key-value pair where the primary key is the only required attribute for items in a table and uniquely identifies each item. DynamoDB is schema-less. Each item can have any number of attributes (columns). In addition to querying the primary key, you can query non-primary key attributes using Global Secondary Indexes and Local Secondary Indexes.
Amazon DynamoDB delivers seamless throughput and storage scaling via API and the AWS Management Console. There is virtually no limit on how much throughput or storage that you can dial up at a time.
Amazon DynamoDB is highly available, with automatic and synchronous data replication across three facilities in a Region. This helps protect your data against individual machine, or even facility level failures.
Amazon DynamoDB gives you the flexibility to efficiently query on any attribute (column) using secondary indexes. You can create and delete secondary indexes for your table at any time.
Amazon DynamoDB Streams is a time ordered sequence of item level changes in any DynamoDB table. Using DynamoDB Streams, you can keep of track of the latest item level change or get all item level updates in the last 24 hours, and use the data to build creative applications for replication, materialized views, backups and integration with other services.
Amazon DynamoDB supports cross-region replication that automatically replicates DynamoDB tables across AWS regions. You can use cross-region replication to build globally distributed applications with lower-latency data access, better traffic management, and easier disaster recovery and data migration.
DynamoDB is integrated with Titan, enabling you to efficiently store and traverse both small and large graphs up to hundreds of billions of vertices and edges. Graph databases are optimized for fast traversal of all kinds of relationships, such as social networks, customer relationship management (CRM), inventory, logistics management, pattern matching, and recommendation engines and more.
Amazon DynamoDB has a flexible database schema. The data items in a table need not have the same attributes or even the same number of attributes. Multiple data types (strings, numbers, binary data, and sets) add richness to the data model.
Unlike many non-relational databases, Amazon DynamoDB makes development easier by allowing you to use strong consistency on reads so that you are reading the latest values. The service also natively supports Atomic Counters, allowing you to atomically increment or decrement numerical attributes with a single API call.
Amazon Elastic MapReduce (Amazon EMR) allows businesses to perform complex analytics of their large datasets using a hosted Hadoop framework on AWS. It is easy for customers to use Amazon EMR to analyze datasets stored in DynamoDB and archive the results in Amazon Simple Storage Service (Amazon S3), while keeping the original dataset in DynamoDB intact.
Amazon Redshift complements Amazon DynamoDB with advanced business intelligence capabilities and a powerful SQL-based interface. When you copy data from a DynamoDB table into Amazon Redshift, you can perform complex data analysis queries on that data, including joins with other tables in your Amazon Redshift cluster.
You can use AWS Data Pipeline to automate data movement and transformation into and out of Amazon DynamoDB. The built-in scheduling capabilities of AWS Data Pipeline let you schedule and execute recurring jobs, without having to write your own complex data transfer or transformation logic.
The AWS Management Console for DynamoDB allows you to create, update, delete and query tables, adjust throughput, and set alarms with just a few clicks. In addition, DynamoDB supports rich functionality with a small number of APIs. Fewer APIs to learn means you can focus more on developing your application.