Recently I've started looking at Serverless architecture inorder to move away from the monolithic architecture. While exploring AWS free tier, Amazon DynamoDB stood out to me. As a NOSQL database with free 25 GB of storage, I could use it for my personal projects basically for free.
So I've been reading up on AWS docs on the basics of DynamoDB, below listed are some of the basic terminology I have gotten to know about DynamoDB:
Tables
Strange name, given DynamoDB is NoSQL, However, it serves as a good mental model, and helps understand how data is grouped together. These 'tables' consists of a collection of 'items'.
Items
Items can be thought of as 'rows' in the tables, But unlike traditional tables, it does not have or need a specific schema. Aside from the primary key, it can contain any number of 'key-value' relations, and can also store nested objects upto 32 levels deep.
Primary Key
This is a simple one, Primary key uniquely identifies the 'item' in the table, it can be a single attribute or a combination of attributes.
Putting it all together
The image above is from AWS docs
In this specific case, 'People' is the table, which consists of a collection of items, And 'PersonID' is the primary key which uniquely identifies the item. Here, besides 'PersonID', other key value attributes can be anything, even nested items.
Conclusion
So AWS DynamoDB is an awesome free data storage option, however NoSQL Databases has its own use cases as does Relational Databases. So it is important to figure out what kind of storage option is best for your specific project before going forward.
Thanks for reading.
P.S. Please follow me on twitter @Nipeshkc7
Top comments (1)
Thanks for the straightforward insight about DynamoDB. For me, it's quite similar to MongoDB. I haven't used any of these DB in production yet ; do you know how they are related, and in what extend there are different?