This course looks at how to read and write data to and from DynamoDB tables. We’ll also touch on performance considerations to allow you to get the most possible performance out of your DynamoDB deployment.
- Reading and Writing from the console
- Reading and Writing from code
- Looking for items in your DynamoDB tables
- Developers looking to learn how to read and write data to/from your DynamoDB tables
- Cloud Development
- AWS Software Development Kit (SDK)
- DynamoDB Basics
In this lecture, let's take a look at reading and writing data to DynamoDB directly from the console. In practice, you won't be doing this very much, however, it's a great tool while developing an application, troubleshooting, or simply designing a new DynamoDB table. Let's go ahead and start with a single record and then move on to a more practical example. I'll go ahead and click on 'Dynamo' and then 'Tables'. I already have one ready for us here called frequent_flyers. I'm going to select 'Explore table items' and there's really nothing to see here.
So, let's go ahead and create an item. I don't like this view for this purpose, so I'll switch over to JSON, and be sure to disable the DynamoDB formatted JSON document because I prefer the standard plain and simple JSON format. I'll remove this and paste my own record, and I'll go down to 'Create item'. And now as you can see, we're back in this view right here and we have one record. I can click on the 'id' and as you can see everything is populated correctly, let's switch over to JSON view to look at it. Again, it's really cumbersome to work in the DynamoDB formatted JSON, but fortunately for us, I just click this and everything looks exactly as the original input document. I can just switch this over to false if I want to and then click 'Save changes'.
And that's how you make an edit here. Let's make sure that it worked. Sure enough, it's false. As you can see, this is a very practical way for your CRUD operations; create, read, update, delete. Very, very simple. I can click on 'Cancel' here. In fact, let's go ahead and throw in another one using the same data. Click 'Create JSON'. I'll show you what happens if I just paste the exact same record, I'll paste the value here and click on 'Create Item'. We should get an error message because as I mentioned, this ID needs to be different. So, let's go ahead and make some changes here. Let's call this 10, change the name to my name, change the airport, Dallas Fort Worth and then let's try that again. Create item, now it works this time.
Now we have an additional record here. So, again, this is great if you're just troubleshooting, fixing records, or just creating a few records for the purpose of testing or just designing a new table, but not very, very practical if you need to actually test performance or you have a lot of records to populate at the same time. However, there's a functionality just for that purpose and we're going to take a look at that up next. I'm moving to something a little bit more practical, which is this file right here, which is a CSV or comma separated value file. It has a ton of rows, it starts with ID, first_name, last_name, home_airport and so on. And we have this data inside a file and this file is here in Amazon S3, as you can see, it's called MOCK_DATA.csv. So, the question is, taking this file, how do we create a DynamoDB table and load everything all at the same time? Well, let me show you. And before we go there, I'm going to copy this value, which is the URI of our file and then move over to DynamoDB.
Here in Dynamo, we have a brand new feature, it's called imports from S3. We're going to click on that. As you can see, I already have a completed job, but let's go ahead and create a brand new job. I'll click on import from S3 and then I'll paste the URL of our file right there. The owner is the same account, so we don't have any cross account issues here. The file is not compressed it's just plain text, and the format is CSV. So, we need to be sure to click on CSV in this case. And the header or the first line of the file contains the name of the fields, in this case ID, first_name, last_name and so on. The separator is the default one, which is the comma. So, we'll just click 'Next'. And now let's go ahead and input a name, I'll call it imported_pax or passengers. The partition key is going to be an ID and this is a number. For the sort key we're going to use last_flight, and because we don't have a date, so we're going to keep it as a string. Defaults are fine. We're going to talk about performance later on, but you need to be aware of read capacity and write capacity based on your use case, but we'll talk about that later.
Let's click 'Next', and this is just a confirmation screen and we're going to click on 'Import'. Now, this job might take a while depending on how much data is in the original file. So, we're going to pause here and we're going to continue once the loading completes. All right, our job is now completed. Let's take a look over to tables. Let's refresh the screen, there you go. Let's click on imported_pax, and we'll go down here and go to, let's see, explore table items. And as you can see, we have a ton of data here. This is great, I'm just going to click on any random value here. Let's take a look at the JSON view, everything is exactly as if we loaded each one of these records manually. As you can see, the import from file approach is a lot more efficient since you can just assign your CSV file using a text editor or even a spreadsheet like Microsoft Excel. And then in a single step, you can create your DynamoDB table and import all your data pretty much really. Nice new feature, it is really most welcome at this time, I'll be using it frequently and I hope you do too.
Software Development has been my craft for over 2 decades. In recent years, I was introduced to the world of "Infrastructure as Code" and Cloud Computing.
I loved it! -- it re-sparked my interest in staying on the cutting edge of technology.
Colleagues regard me as a mentor and leader in my areas of expertise and also as the person to call when production servers crash and we need the App back online quickly.
My primary skills are:
★ Software Development ( Java, PHP, Python and others )
★ Cloud Computing Design and Implementation
★ DevOps: Continuous Delivery and Integration