NoSQL

NoSQL is a database technology designed to support the requirements of cloud applications and architected to overcome the scale, performance, data model, and data distribution limitations of relational databases (RDBMS’s).

Learn NoSQL Basics At DataStax Academy

NoSQL Explained

A NoSQL (Not-only-SQL) database is one that has been designed to store, distribute and access data using methods that differ from relational databases (RDBMS’s). NoSQL technology was originally created and used by Internet leaders such as Facebook, Google, Amazon, and others who required database management systems that could write and read data anywhere in the world, while scaling and delivering performance across massive data sets and millions of users.

Today, almost every company and organization has to deliver cloud applications that personalize their customer’s experience with their business, with NoSQL being the database technology of choice for powering such systems.

How NoSQL Differs from Relational Databases

NoSQL and RDBMS’s are designed to support different application requirements and typically they co-exist in most enterprises. The key decision points on when to use which include the following:

Use an RDBMS when you need/have...
Use NoSQL when you need/have...

Centralized applications (e.g. ERP)

Decentralized applications (e.g. Web, mobile and IoT)

Moderate to high availability

Continuous availability; no downtime

Moderate velocity data

High-velocity data (devices, sensors, etc.)

Data coming in from one/few locations

Data coming in from many locations

Primarily structured data

Structured, with semi/unstructured

Complex/nested transactions

Simple transactions

Primary concern is scaling reads

Concern is to scale both writes and reads

Philosophy of scaling up for more users/data

Philosophy of scaling out for more users/data

To maintain moderate data volumes with purge

To maintain high data volumes; retain forever

For a detailed feature comparison between a NoSQL database like Apache Cassandra and RDBMS’s like Oracle, SQL Server, and MySQL, click here.

How NoSQL Databases Differ From Each Other

There are a variety of different NoSQL databases on the market with the key differentiators between them being the following:

  • Architecture: Some NoSQL databases like MongoDB are architected in a master/slave model in somewhat the same way as many RDBMS’s. Others (like Cassandra) are designed in a ‘masterless’ fashion where all nodes in a database cluster are the same. The architecture of a NoSQL database greatly impacts how well the database supports requirements such as constant uptime, multi-geography data replication, predictable performance, and more.
  • Data Model: NoSQL databases are often classified by the data model they support. Some support a wide-row tabular store, while others sport a model that is either document-oriented, key-value, or graph.
  • Data Distribution Model: Because of their architecture differences, NoSQL databases differ on how they support the reading, writing, and distribution of data. Some NoSQL platforms like Cassandra support writes and reads on every node in a cluster and can replicate / synchronize data between many data centers and cloud providers.
  • Development Model: NoSQL databases differ on their development API’s with some supporting SQL-like languages (e.g. Cassandra’s CQL).

A benchmark by End Point, an independent database firm, stress-tested Apache Cassandra, HBase, MongoDB, and Couchbase on operations typical to real-world applications: Cassandra vs. MongoDB vs. HBase vs. Couchbase performance comparison.

Benefits of NoSQL

NoSQL databases are primarily designed for supporting decentralized systems that target cloud applications. A NoSQL database like Cassandra typically offers the following benefits over other database management systems:

  • Continuously Available: A database that stays online even in the face of the most devastating infrastructure outages.
  • Geographically Distributed: Fully active data, everywhere you need it.
  • Operationally Low Latency: Response times fast enough for your most intense operational cloud applications.
  • Linearly Scalable: Predictably scale to meet the current and future data needs of cloud applications.
  • Immediately Decisive: Full range of data manipulation capabilities tightly integrated into a single system.
  • Functionally Cohesive: Coherent integration and interoperability of mixed workloads and multiple data models.
  • Operationally Mature: Enterprise-ready data management for cloud applications.
  • Low TCO: No requirements for specialized hardware or ancillary software.

How to Implement NoSQL

From a practical perspective, how do you go about actually moving to NoSQL and implementing your first application? In general, there are three ways to go about implementing a NoSQL database:

  • New Applications: Many begin with NoSQL by choosing a new cloud application and starting from the ground up, with either a small or large system. Such an approach mitigates the issues of application rewrites, data migrations, etc.
  • Augmentation: Some choose to augment an existing system by adding a NoSQL component to it. This oftentimes happens with applications that have outgrown an RDBMS due to scale problems, the need for better availability, or other issues.
  • Full Rip-Replace: For systems that simply are proving too costly from an RDBMS perspective to keep, or are breaking in major ways due to increases of user concurrency, data velocity, or data volume, a full replacement is done with a NoSQL database.

If you are looking to implement NoSQL or want to learn about NoSQL and its benefits, below are some recommended resource by experts.

Icon
Blog
The 5 Features to Look for in a NoSQL Database

NoSQL databases have been around a long time - since the 1960s - but it wasn’t until the early 21st century that companies really started to use them, primarily to handle their big data and real-time web and cloud applications. Since then, the NoSQL database has surged in use and popularity, although relational databases still have their place. But when beginning to search for a NoSQL solution, what should you look for?  Here are the 5 key features to look for in a NoSQL database: 1. Multi-Model Where relational databases require data to be put into tables and columns to be accessed and analyzed, the various data model capabilities of NoSQL databases make them extremely flexible when it comes to handling data. They can ingest structured, semi-structured, and unstructured data with equal ease, whereas relational databases are extremely rigid, handling primarily structured data. Different data models handle specific application requirements. Developers and architects choose a NoSQL database to more easily handle different agile application development requirements. Popular data models include graph, document, wide-column, and key-value. The ideal is to support multiple data models, which allows you to use the same data in different data model types without having to manage a completely different database. 2. Easily Scalable It’s not that relational databases can’t scale, it’s that they can’t scale EASILY or CHEAPLY, and that’s because they’re built with a traditional master-slave architecture, which means scaling UP via bigger and bigger hardware servers as opposed to OUT or worse via  sharding. Sharding means dividing a database into smaller chunks across multiple hardware servers instead of a single large server, and this leads to operational administration headaches. Instead, look for a NoSQL database with a masterless, peer-to-peer architecture with all nodes being the same. This allows easy scaling to adapt to the data volume and complexity of cloud applications. This scalabilty also improves performance, allowing for continuous availability and very high read/write speeds. 3. Flexible Where relational databases require data to be put into tables and columns to be accesses and analyzed, the multi-model capabilities of NoSQL databases make them extremely flexible when it comes to handling data. They can easily process structured, semi-structured, and unstructured data, while relational databases, as stated previously, are designed to handle primarily structured data. 4. Distributed Look for a NoSQL database that is designed to distribute data at global scale, meaning it can use multiple locations involving multiple data centers and/or cloud regions for write and read operations. Relational databases, in contrast, use a centralized application that is location-dependent (e.g. single location), especially for write operations. A key advantage of using a distributed database with a masterless architecture is that you can maintain continuous availability because data is distributed with multiple copies where it needs to be. 5. Zero Downtime The final but certainly no less important key feature to seek in a NoSQL database is zero downtime. This is made possible by a masterless architecture, which allows for multiple copies of data to be maintained across different nodes. If a node goes down, no problem: another node has a copy of the data for easy, fast access. When one considers the cost of downtime, this is a big deal. NoSQL vs. SQL Decision Making Choosing between a NoSQL and a relational database is always going to come down to your company’s particular needs. And there are, of course, situations for which you might want to use both types, as they can often complement each other. If you deal with a lot of data types, and/or you want or need to build powerful web and cloud applications for a distributed and quickly growing user base, then you will need your database to be multi-model, flexible, easily scalable, distributed, and always on, which means you will need a NoSQL database that can handle these requirements. Introduction to the Active Everywhere Database (white paper) READ NOW

Get the Blog
Icon
Blog
The Evolution of NoSQL

For years, organizations have relied on relational databases management systems (RDBMSs) to store, process, and analyze critical business information. The idea originated in a paper written in 1970 by a computer scientist named Edgar Codd, who thought to archive information in tables containing rows and columns. The concept was a major leap forward from the slow and inefficient flat file systems that businesses were using at the time, although these systems did work in conjunction with pre-relational model databases. The Rise of SQL Shortly after, IBM developed the SQL language to scan and manipulate sets of transactional data sets stored within RDBMSs. With SQL, it became possible to quickly access and modify large pools of records without having to create complex commands. SQL essentially enabled one-click access to sets of data. The idea took off, and the RDBMS eventually emerged as the most widely used data management system. Today, most organizations are still using RDBMSs one way or another. RDBMSs, however, have one major limitation: They are only capable of efficiently processing relatively small amounts of structured data—like names and ZIP codes. The NoSQL Imperative When the era of big data hit, a new kind of database was required. The real driver for NoSQL was the sheer shift in data volumes that the Internet brought. Prior to the internet, and in its early days, relational databases only had to deal with the data of a single company or organization. But when faced with the millions of Internet users that could discover a company's service in waves, the RDBMS model either broke or became very challenging to shard correctly. Relational databases also required a tremendous amount of maintenance. A database of a few thousand objects may handle things decently, but as you scale up, performance declines. This is a big problem—especially considering the massive volume of unstructured data that is being generated on a daily basis. According to 451 Research, 63% of enterprises and service providers today are managing storage capacities of at least 50 petabytes—and more than half of that data is unstructured. The concept of NoSQL has been around for decades. Believe it or not, businesses have been using non-relational databases to store and retrieve unstructured data since the 1960s. The technology, however, wasn’t referred to as NoSQL until developer Carlo Strozzi created the Strozzi NoSQL Open Source Relational Database in 1998. Strozzi’s database, though, was really just a relational database that didn’t have an SQL interface. It wasn’t until 2009 that we saw a true departure from the relational database model and the first working NoSQL application. NoSQL databases offer several advantages over relational databases. Most importantly, they can handle large volumes of big data. Other advantages include: Elastic scalability. Unlike relational databases, NoSQL databases can scale outward into new nodes instead of upward. This strategy is much more flexible, efficient and affordable than scaling with traditional legacy storage systems. Lower operating costs. One of the biggest downsides to using an RDBMS is the fact that you will have to deal with expensive servers. Since NoSQL databases leverage commodity server clusters, you can process and store larger data volumes at a lower cost. Reduced management. NoSQL databases are much easier to install and maintain as they are simpler and come with advanced auto-repair capabilities. While it’s not completely hands-off, NoSQL is much easier for network teams to manage on a daily basis. Bridging RDBMS With NoSQL Right now, NoSQL databases only account for about 3% of the $46 billion database market, but  they are quickly gaining traction and on pace to become a legitimate long-term market disruptor. But while NoSQL is heating up and the RDBMS market is experiencing a significant slowdown, this doesn’t mean that businesses are running out and abandoning their RDBMS systems altogether. RBDMSs, after all, are still great at managing transactional workloads, which are heavily used today. The best solution often involves finding a way to use your legacy technology to support your new applications, and this means getting an enterprise data layer. What’s an enterprise data layer? It’s a way to connect your systems of record with your systems of engagement. Essentially, it’s a data management layer that precludes you from having to go through a painfully expensive and time-consuming “rip and replace” process, and it allows you to salvage your legay tech and put it to good use. You may still be stuck in the relational age, but that doesn’t mean you can’t take full advantage of the NoSQL revolution. The Architect’s Guide to NoSQL (white paper) READ NOW

Get the Blog
Icon
Blog
Top 5 NoSQL Database Myths

As today’s fastest-growing companies shift towards utilizing more cloud applications, data problems have become a growing concern. Application and data center requirements of several key internet players, including Amazon, Facebook, and Google quickly outgrew the relational database management systems (RDBMS) many of their applications were once built on. There was a sudden need for more flexible data models that supported agile development methodologies and could handle a much higher volume of data. This is where NoSQL came into play, but many of today’s organizations are still unsure about whether NoSQL is a viable database solution for their enterprise. Here are the top five myths about NoSQL databases:   1. NoSQL is Not Secure Data security is always a top priority, but one of the myths about NoSQL databases is that they don’t provide the level of security needed in an enterprise production environment,  when in fact  NoSQL data platforms offer security through multiple levels of encryption. They also have permission management authorization features, internal-based authentication, and even data auditing capabilities where you can configure data audits to understand what events took place on a particular node or cluster.   2. NoSQL is Not Reliable NoSQL databases are designed to have continuous availability, so reliability is never an issue. They not only handle high-velocity data, including structured and semi-structured data, but can also provide constant uptime thanks to data and function redundancies. NoSQL databases are also designed to have no single point of failure, so there is no downtime to worry about.   3. NoSQL is Not Scalable This is a common misconception and it’s important to note that while relational databases can certainly scale, they can only scale UP for increased performance. NoSQL databases can be scaled out, allowing them to be able to handle large amounts of data and thousands of concurrent users/operations per second across multiple data centers. When it’s time to increase capacity, all you have to do is add new nodes to an existing cluster.   4. NoSQL is Not Usable Some believe that NoSQL database are not used by anyone in their organization in meaningful ways. However, one of the key benefits of a NoSQL database with a distributed architecture is that it provides a solid framework for running analytics right on the platform. This means members of the organization can run real-time and batch analytics on data to perform analytics quickly and efficiently. It’s also easy to obtain in-depth diagnostic data about how well a certain cluster is running and configure it to provide only data on certain performance metrics.   5. NoSQL Is Not Ready for Serious Applications While relational databases are designed to handle centralized applications that can handle many sophisticated transactional processes, NoSQL databases are far better for supporting distributed cloud and hybrid applications. As more organizations shift to a multi- and hybrid cloud strategy, NoSQL databases offer numerous benefits to enterprises that have rapidly growing data management demands. NoSQL databases are not designed for every company, and many companies can very adeptly combine relational databases and NoSQL databases to satisfy their data management needs. However, as more companies shift to hybrid cloud, the need for a fast, secure, flexible, and most importantly, always on database with real-time capabilities becomes ever-more imperative. The time to start taking advantage of a NoSQL database is now. White Paper: The Power of an Active Everywhere Database READ NOW

Get the Blog