Amazon DynamoDB is a fully managed fast and flexible NoSQL database service. This course will provide you a good understanding of how the service works, and the best way to leverage it, while avoiding the common pitfalls.
Getting up and started quickly is very important when delivering software. DynamoDB, being a full managed service in AWS, enables exactly this. In this course, AWS: Developer: Getting Started with DynamoDB, you'll learn how DynamoDB works under the covers. First, you'll explore the the very basics, and then move onto modeling a system in DynamoDB, to ensure it provides reliable performance and scalability. Next, you'll gain an understanding of the capabilities DynamoDB offers, such as Triggers. Finally, you'll learn all about Time to Live and DynamoDB Accelerator. When you are finished with this course, you'll have a solid grasp of DynamoDB as a service, the power it offers you, and understanding how to leverage it, while avoiding its common pitfalls.
Course Overview Hi everyone! My name's Abhaya Chauhan, and welcome to my course for AWS Developer: Getting Started with DynamoDB at Pluralsight. This beginner course will take you in the right path to understand DynamoDB to ensure you have a strong understanding of how the service works so you can leverage its strength to achieve the scale and reliability that DynamoDB provides. I'm a senior technical adviser working at PageUp based on Melbourne, Australia. I've got several systems using DynamoDB over the years. I'm keen to share the hard lessons I've learned in that time. DynamoDB is a result of 15 years of learning in areas of large-scale NoSQL databases and cloud services at AWS. It is a service that scales to any requirement. The part I love most about this service is the speed and ease at which any new developer takes to get going. This course will enable you to get started, and no prior knowledge of NoSQL is required. Some of the topics we cover are understanding the basic terminology we use with DynamoDB and how it compares to the SQL world. Then we'll take a look under the covers to see how the service really works. Next, we'll dive right in and start building a job site using DynamoDB. We'll understand how indexes work and how we can use them to tune our use cases and queries. And, finally, cover the pitfalls to be aware of when using DynamoDB. As with any technology, it's always good to be aware of some common pitfalls developers fall into. I'll walk you through some of the ones I myself fell into to ensure that you have the best chance for success. By the end of this course, you'll understand the fundamentals of DynamoDB and be comfortable using it when building your own application. Before beginning this course, you should have an AWS account. Having experience with AWS and Management Console will also help and understanding of Node. js as we'll be using Node to leverage the DynamoDB APIs. I hope you'll join me on this journey to learn DynamoDB with the AWS Developer course on getting started with DynamoDB at Pluralsight.
Introduction Hi! My name's Abhaya Chauhan, and welcome to my AWS Developer course for getting started with DynamoDB. I've helped deliver many systems in AWS using DynamoDB over the years. Even though DynamoDB is very easy to get started with, you can get into trouble very quickly if you don't understand how it works. I've seen many developers, myself included, fall into the trap of modelling relational data in DynamoDB. This does not leverage the service to its strengths and can be very costly and inefficient. Service is very powerful with impressive performance that scales almost to any requirement if used correctly. Through this course, you'll understand its strengths and be aware of its pitfalls to ensure you're set up to succeed.
The Basics of DynamoDB The basics of DynamoDB. In this module, we will take a high-level view of DynamoDB. We'll understand the fundamentals in building with the service and what it was designed to do. Next, we'll go into a little more detail and start understanding the key terminology used. We'll go through tables, columns, and rows. We'll cover keys and introduce data types supported by DynamoDB. Finally, we'll lightly touch on how DynamoDB scales and introduce capacity units. By the end of this module, we will provide you with the foundations to understand the key concepts, the terminology used, and how it translates to the SQL world.
Creating Our Tables In this module, we're going to introduce our problem domain for which we will build the solution in DynamoDB. Time to introduce Globomantics. Globomantics is a global organization operating in 20 countries. Globomantics operates a job site, which provides a platform for companies to advertise job vacancies to the public. And, in turn, people can apply to those job vacancies by sending in a job application. Let's run through the high-level workflow. First, we have companies. We have many companies who can register to the Globomantics job site platform to advertise job vacancies. When the company would like to fill a job vacancy, companies can post job ads to the Globomantics job site. Once advertised, users can view those advertised job vacancies and apply by filling in a job application and submitting it on the platform. For our solution, we're going to focus on the job site, users, and job applications. We can simplify our logical entities and, hence, our tables into three types--job, which is a vacant position that needs to be filled within a company, a user, a person who can apply to fill a job, and job application, an application from the user to apply for a job vacancy, the entity that glues the user to the job.
Creating, Querying, and Modifying Our Data Creating, Querying, and Modifying Our Data. The bulk of this module is going to be spent in code interacting with our tables. We've been looking at table structures, and now it's time to delve into interacting with the data. In this module, we're going to work with the AWS Management Console to create, update, and delete items. We're going to take a high-level view of the AWS SDK and how it interacts with DynamoDB. And then we're going to have a look at the DynamoDB JSON schema. The DynamoDB JSON schema describes attribute names, values, and data types. We're going to step into code. We're going to look at the write APIs for DynamoDB, then we're going to look at the read APIs, and, finally, we're going to touch on the Batch APIs.
Building DynamoDB Triggers Working with DynamoDB Streams and Triggers. In this module, we'll take a look at DynamoDB Streams and how we can leverage them to build our database triggers. It is a very useful feature, which can be leveraged for a variety of use cases. Let's start with, What are DynamoDB Streams? DynamoDB Streams is a feature available at the table level, and it allows us to track changes made to data within the table for a sliding 24-hour window. In other words, it allows us to access the database transaction log for a 24-hour period. Every successful Put, Delete, and Update request on the table, basically anything that changes the data itself, is available in an ordered fashion. Keep in mind by default, DynamoDB Streams is switched off for new tables. To use it, you will need to enable the stream for the table.
Optimizing Our Queries with Indexes Welcome to Optimizing Our Queries with Indexes. In this module, we'll cover two indexes available in DynamoDB, local secondary indexes, and global secondary indexes. We'll learn how they will work, and cover some use cases in our solution where we can leverage them to optimize our queries.
Capabilities in DynamoDB Welcome to Capabilities in DynamoDB. In this module, we'll cover the important features in DynamoDB and help you leverage the service a lot more effectively.
Avoiding Common DynamoDB Pitfalls Welcome to Avoiding Common Pitfalls. This module is slightly different to other modules in this course. This module is presented as a summary and reference module, targeting situations where you are evaluating DynamoDB for use in the system, you're about to start using it, or you simply need a checklist for your next use case. This is a compilation of my own checklist and common issues I've seen other systems fall into.