DynamoDB is a key-value, NoSQL database developed by Amazon. It’s unlike some other products offered by Amazon and other vendors in that it’s not just an open-source system, like Spark, hosted on the vendor’s platform.
DynamoDB looks just like JSON, with the one difference being that each JSON record must include the record key. That has the advantage that it lets you do updates on a record. In a JSON database, like MongoDB, you cannot update records. Instead, you must delete them then add back the changed version to affect the same change.
DynamoDB also lets you work with transactions, something that MongoDB supports as well. Not all NoSQL databases let you do that. This is important as certain database operations logically must go together. For example, a sales transaction must both decrement inventory and increase cash on hand. If one of those two operations failed then the sales and inventory systems would be out of balance.
You work with the database using the AWS command-line client, APIs for different programming languages, their NoSQL workbench desktop tool, or on the Amazon AWS website.
DynamoDB has these concepts and more:
As with most cloud systems, DynamoDB exposes its services via web services. But that does not mean you have to format your data to JSON and then post it using HTTP. Instead, they provide software development kits (SDKs). The SDK takes the requests you send it and then translates that to HTTP calls behind the scenes. In this way, the SDK provides a more natural and far less wordy way to work with the database. The SDK lets you work with DynamoDB as you would work with regular objects.
The SDK has these methods:
As with other Amazon products you can use the AWS command-line client. That lets you run database operations from the command line without having to write a program. You use JSON to work with DynamoDB.
For example, there are these operations and a few more:
DynamoDB has SDKs for these programming languages:
For Java and .NET, they provide objects. Those let you work with table items as if they were objects in those programming languages. And it translates from data types, letting you use, for example, you can use dates and bytes instead of being limited to facsimiles of those as strings or numbers, as you would with JSON.
DAX is an optional feature that turns DynamoDB into an in-memory database.