Compare types of NoSQL databases in the cloud
The emergence of globally scalable online services for social networking, streaming content, news distribution, retail and other business uses has dramatically changed the infrastructure requirements of application and software architectures. One of the most important transformations concerns the way computer systems store, organize and provide access to data.
Consumer-grade relational database management system (RDBMS) software, such as Oracle Database and SQL Server, is not suitable for web applications that require a distributed and scalable cluster infrastructure. NoSQL databases are best suited for loosely coupled systems where application data and executable code are distributed across multiple machines and perhaps data centers. They can also handle datasets that don’t fit well into the rigid schema of SQL-based relational databases.
With their origins often rooted in the open source community, NoSQL vendors have built different types of databases to target different types of data and use cases. Oracle, Microsoft, and other RDBMS vendors have also developed NoSQL databases. Today, with the global market shift towards cloud databases, cloud-native development has taken hold: NoSQL databases are widely available in the cloud, both for self-managed IaaS deployments and database as a service (DBaaS) managed by the provider.
Advantages and Disadvantages of NoSQL Databases
Since web applications and services were the main drivers of NoSQL development, the different types of NoSQL databases have certain advantages over RDBMSs. These include in particular the following:
- the ability to handle a variety of data types;
- higher performance and lower latency in some applications;
- ideal for unstructured and semi-structured data, such as text, images, audio, and video;
- horizontal scaling capabilities for large workloads and data volumes;
- well suited for time series or other streaming data, such as event logs and IoT data; and
- access to a wide variety of open-source or low-cost implementations that are cheaper to procure and operate than a sophisticated RDBMS.
However, these benefits come at a cost in other ways. For example, relational database systems provide more immediate data consistency and reliability through the ACID model: atomicity, consistency, isolation, and durability. NoSQL databases generally follow the BASE model: basic availability, software state, and eventual consistency, although some now support ACID transactions.
Additionally, these non-relational databases often lack built-in mechanisms to verify data integrity; in this case, it must be done in external code. Finally, although many NoSQL databases include some SQL functionality, they generally do not support complex SQL operations, such as compound select statements or table joins..
NoSQL Database Categories
The right way to think of NoSQL is not as a certain type of database, but rather as a category with several variations as follows:
- Key-value store. This database organizes datasets as a sequence of records that include a unique key associated with a data value. It uses hash tables to store keys with pointers to associated values, which can be a single entry or a complex data object with multiple elements. A key-value store is like a dictionary, in that each key is like a word and the value represents its meaning.
- Cache in memory. It is a type of key-value store designed to fit entirely in system memory. This speeds up performance and potentially reduces costs by removing the need to scale an entire database just to handle a specific functionality or application scenario.
- Document database. It stores data objects in key-value pairs, but it places them in document-like structures that can also embed metadata about the content. Sometimes called a document storethe database typically encodes documents in JSON, XML, YAML, and other text formats or binary variants, such as BSON.
- Research database. A search database is a specialized document store where document indexes can be fragmented and distributed across multiple nodes to provide massive scalability to speed the retrieval of particular entries.
- Wide column magazine. This technology organizes data into columns rather than rows. As the name suggests, a wide column store can contain tables with many columns, allowing it to handle very large sets of data. Columns are grouped into related data families that are accessed together.
- Graphic database. This type of database removes the common row-column structure in favor of a graph-like structure to store data sets as a collection of nodes and highlight their relationships to each other.
- Time series database. A TSDB, as it is called for short, collects continuously generated data and stores it in successive order, usually with timestamps. Examples include stock market, sensor, and computer network data. A time series database can be used to track these data sets and analyze how they change over time.
Key-value stores, document databases, wide column stores, and graph databases are the four main categories of NoSQL databases. Additionally, vendors are increasingly turning their products into multi-model databases that support multiple of these categories through different modules.
Comparison of NoSQL databases
As public cloud infrastructure has become a popular option for running web and mobile applications and other computing workloads, cloud platform market leaders AWS, Microsoft, and Google Cloud have all created a variety of NoSQL database products and services suitable for different data types and use cases. Although the details of their product offerings vary, the technologies available for each type of NoSQL database are listed in the table below.
As the comparison table indicates, there are also many other open source and commercial offerings available in the cloud for each type of NoSQL database. For DBaaS environments, users can Choose between the major cloud platform vendors – the three in the table plus Oracle – and other NoSQL database vendors that host their software on one or more of these platforms. Each third-party option has its own characteristics and strengths that might make them the best NoSQL alternative in the cloud.
Another big decision about running a NoSQL database in the cloud is the deployment model: privately managed IaaS versus a fully managed database service. The choice depends on whether an organization prefers a self-managed, highly configurable and controlled database system or a managed DBaaS platform that removes the upfront capital expense and ongoing infrastructure management overhead.
Editor’s note: This article, originally written by Kurt Marko in 2019, has been updated by TechTarget Editor Craig Stedman. Kurt was a longtime TechTarget contributor who passed away in January 2022. He was an experienced IT analyst and consultant, a role in which he applied his broad and deep knowledge of enterprise IT architectures. You can explore all the articles he has written for TechTarget on his contributor page.