Starting a new project can be a big challenge in terms of idea, market, adoption, technology decisions, and many more. Selecting the right set of tools and technologies keeping in mind scalability and maintenance at the start of the project avoids any rework down the line and plays a major role in success.
A database is one of the pillars for starting a new project, and no system exists without a database. Certain parameters should be kept in mind while selecting the right database.
The following article talks about various database services and different cloud providers offering these services along with cloud-agnostic solutions for future flexibility in shifting infrastructure from one provider to another or deploying on-premise.
What database to use with different cloud service providers?
Here’s an infographics showing which database is being offered by the cloud service providers:
So without further ado, let's dig right into what each of these databases are:
Relational database:
A type of database that stores and provides access to a collection of data items having predefined relations between them. This collection of data, organized as a set of tables, contains useful information about the items in the database. In the table, each column represents a certain attribute of the data, and each row contains a unique ID called the key representing the attribute. Corresponding to these attributes and keys, the value is stored in the record.
Following cloud providers provide relational database services on their platform:
AWS - Relational Database Service (RDS)
Azure - Azure SQL Database
GCP - Cloud SQL, Cloud Spanner
Cloud Agnostic - SQL Server, Oracle, DB2, MySQL, PostgreSQL
Key-Value Database
A key-value database is a NoSQL type database where data is being stored in a simple key-value method. A simple unique string (the key) is stored in a hash table which points towards the arbitrary data field (the value). The value can range from scalar data types like integers to complex structures like BLOB, lists, JSON, etc.
Following cloud providers provide key-value database services on their platform:
AWS - DynamoDB
Azure - Cosmos DB
GCP - Datastore
Cloud Agnostic - Redis, ScyllaDB, Ignite
In-memory database
An in-memory database is a purpose-built database that uses the main memory of the computer to store the data instead of the disk drive. This makes accessing the data faster and efficient, allowing rapid response time as well as real-time database management. However, the drawback is that it is volatile, as it uses the RAM of the computer, a power failure or crash will lead to loss of data. Telecommunications, travel, banking, and gaming industries are some of the examples where it is used.
Following cloud providers provide in-memory database services on their platform:
AWS - ElastiCache
Azure - Azure Cache for Redis
GCP - Memorystore
Cloud Agnostic - Redis, Memcached, Ignite, Hazelcast
Graph database
A graph database is a specialized purpose-built platform for storing and navigating relationships. Relationships are the key in a graph database as it provides the most value. A graph database uses nodes and edges where nodes store all the data entities or profiles and there is no restriction to the number of relationships they might have between them. The edges store the relationship between these entities and it always has a start and end node, its type, and a direction.
Following cloud providers provide graph database services on their platform:
AWS - Neptune
Azure - Cosmos DB
GCP - JanusGraph + BigTable
Cloud Agnostic - OrientDB, Neo4J, Giraph
Full-text search database
Full-text search accelerates the content search in your database for unstructured, semi-structured, or unstructured data. Based on the user's search text criteria, it provides rich text search capabilities for one or more keywords. It provides NLP and a strong recommendation system for misspelled search queries, leading to a more personalized experience. Full-text search is quick undefined efficient, ultimate in the categorization of specific data values, and gives the relevant ranking capability for providing the best query match.
Following cloud providers provide Full-text search database services on their platform:
AWS - ElasticSearch, CloudSearch
Azure - Cognitive Search
GCP - Search APIs on Datastores
Cloud Agnostic - ElasticSearch, Solr, Elassandra
BLOB database
A BLOB database is used to store a large amount of unstructured data as a single entity in the database system. They support the storage of multimedia objects like images, videos, sounds, programs, texts, and binary data. Using Append BLOBS, the database can also be optimized for append operations. BLOBs are quite a good alternative and cost-effective way for adding large binary files. However, they are not universal as not all the DBs support them.
Following cloud providers provide BLOB database services on their platform:
AWS - S3
Azure - BLOB storage
GCP - Cloud storage
Cloud Agnostic - HDFS, MinIO
Knowing these databases will be helpful for your next full-stack development project, aiding you to decide which databases would provide the most value to the development. Now that you know what all the database does, keep the above infographic handy for future reference in case you need to know which cloud provider offers the service as per the requirement
We, at Seaflux, believe in agility and use various technologies like Cloud Computing, Enterprise Mobility, and Data Science for helping enterprises worldwide with their needs. Are you still confused about choosing the right database or want to know more about the pros and cons of any database? Schedule a meeting with us here, we'll be happy to talk to you!
Director of Engineering