By: Shannon Nagy
A Quick Definition of the “Cloud”
If you’re a technology professional, particularly in the data realm, you’ve no doubt heard about the cloud. If you’ve used a computer, the internet, and/or a smartphone in the past few years, then you’ve probably heard about the cloud as well.
If you’re unsure of what the cloud exactly is, the short answer is that instead of purchasing your own data storage hardware and maintaining servers on your network (plus the OS and all the software on top of that to access the data), a new business model has emerged where a handful of tech companies now provide all of these bundled together as a service (the cloud) that they host and you access through the web.
AWS Database Offerings – DynamoDB
The oldest and still the largest provider of cloud services is Amazon, which offers a vast array of products available on Amazon Web Services (AWS).
For this blog article, we are going to focus on their database offerings.
The main decision one has to make when migrating a database to AWS is whether the new database type needs to be a relational (traditional model) or NoSQL (non-relational) database.
NoSQL databases are widely considered to be more flexible, scalable, and performant due to the lack of overhead for schema requirements, foreign key validation, and SQL join operations. Some models of NoSQL databases include key-value store, document store, and graph store.
- Key-value store is the simplest model, where data is represented as pairs of identifiers (keys) and their corresponding values. It is most useful for lists, such as users, IP addresses, product information, etc.
- Document stores use JSON or XML files to store the hierarchical data and metadata within their text. These are considered to be semi-structured and can be nested. Applications for document stores can be numerous, with content management and catalogs being quite popular.
- Graph stores structure data in nodes and edges, or relationships. These are best for highly connected datasets, such as social media, fraud detection, recommendation engines, and network monitoring.
If choosing to transition from a relational model to NoSQL, the transition will require some additional time and effort to rearchitect the design. Doing so can pay off in the long run for high volume workloads with large user bases across the globe.
The basic NoSQL product in AWS is called DynamoDB, which supports key-value and document data structures. The service’s big selling point is that Amazon uses this engine in its own retail sales infrastructure and is said to be infinitely scalable with zero degradation in performance.
Using Amazon DynamoDB
Let’s explore how to get started with DynamoDB.
First, you’ll need at least a free-tier AWS account.
With a slick interface, it’s very easy to create a table and populate it with an initial record or two.
Here, I’ve created a key-value table called “Users.”
In this interface, either a traditional data entry form can be used, or JSON can be input.
For those who are coders, developers, or just fans of typing, Amazon now provides a web-based command line console called AWS CloudShell.
With a whole plethora of commands available, those more text-minded can surely bypass the entire GUI. Here, I add another table to my DynamoDB.
Although there are batch commands available, they seem to be limited to 25 requests in a single batch, with size limitations on both each individual item and the batch as a whole.
For an initial data migration, it’s probably best to use the AWS Data Migration Service (AWS DMS).
Thanks for reading! We hope you found this blog post useful. Feel free to let us know if you have any questions about this article by simply leaving a comment below. We will reply as quickly as we can.
Keep Your Business Intelligence Knowledge Sharp by Subscribing to our Email List
Get fresh Key2 content around Business Intelligence, Data Warehousing, Analytics, and more delivered right to your inbox!