Benefits of NoSQL with DynamoDB
Posted By : Rudhishthir Prakash | 30-Jul-2019
DynamoDB is a NoSQL Serverless database that is managed by Amazon Web Services. It is very well integrated with AWS Lambda and other AWS services.
In contrast, traditional databases leverage RDBMS(Relational Database Management System) databases and these databases use SQL query language. SQL is a very intuitive query language that allows you to quickly find information from databases and join data.
These databases have strong requirements about how the data should be modeled. The benefits of this are that you are able to do joins, aggregations, and computations. But these can become compute-heavy very quickly and hence very costly. And so, if you want to scale them, in case your application gets bigger, usually, that means vertical scaling. That means we are getting a more powerful CPU, RAM, better disc, etc.
Though this database is fine and is powering many websites and applications in the world, a new type of architecture is emerging which is called NoSQL database. NoSQL does not mean it's not SQL, it means not only SQL.
1. These are non-relational databases and are distributed.
2. These include MongoDB, DynamoDB, etc.
3. These do not support joins.
4. All the data that is needed for a query is present in a row.
5. These do not perform aggregations such as "SUM". All they do is give you the data you need very efficiently.
6. These databases scale horizontally and that is why it is a very good fit for serverless because we can scale these databases without doing much work which is due to the design of the database.
There is no right or wrong for NoSQL vs SQL, they just require to model the data differently and think about user queries differently. But for the use cases where NoSQL is good, it is usually very powerful and allows you to scale your website to a great extent.
DynamoDB is a fully managed, highly available with replication across 3 Availability Zones. It is a NoSQL database and it scales to massive workloads, distributed databases. It can process millions of requests per second, trillions of row, 100s TB of storage.
It has a fast and consistent performance with very low latency in retrieval. Since it is in Amazon, it is integrated with IAM for security, authorization, and administration. And since it is serverless, we do not need to manage anything - we do not see the servers, we just provision the tables.
It also enables event-driven programming with DynamoDB Streams. And finally, it costs very low and has auto-scaling capabilities.
Hence, DynamoDB is becoming more and more popular among developers as it has so many benefits attached to it.