10 things you Need to Know About NoSQL Databases
September 30, 2010
For about two decades, the relational database (RDBMS) model was the only game in town for database management. Over the past few years, another game has emerged: NoSQL, a non-relational distributed database model. Read on to learn the top 5 benefits and the top 5 disadvantages.
While far from new -- the NoSQL concept has been around for 10 years or so -- NoSQL has been attracting a lot of attention in recent years, primarily due to big-name production implementations. Amazon’s Dynamo and Google’s BigTable are among the best known implementations.
While NoSQL offers a number of benefits, it is not without inevitable downsides.
Here are Five Benefits of NoSQL
It's Open Source - Mostly a Good Thing
Open source products provide developers with some great benefits, notably their no-cost status. Other benefits: open-source software tends to be more reliable, secure, and faster to deploy than proprietary alternatives.
Popular NoSQL DBs are Cassandra, CouchDB, Hbase, MongoDB, and Redis.
NoSQL replaces the old 'scale up' mantra of database managers with a new one: 'scale out.' Instead of adding bigger servers to handle more data load, a NoSQL database allows a company to distribute the load across multiple hosts as the load increases.
Different NoSQL DBs for Different Projects
MongoDB and Redis are good choices for storing frequently-written, rarely read statistical data, such as a web hit counter.
Hadoop, a freeform, distributed DB does a good job of storing Big Data such as weather stats or business analytics work.
Memcache, a transient DB, excels at storing web sessions, locks, and short-term stats) .
Cassandra and Riak (automatically clustered, redundant stores) perform well in environments with high availability apps, when maximum uptime is vital.
NoSQL’s Impressive Implementations
Companies such as Amazon, the BBC, Facebook and Google rely on NoSQL DBs.
NoSQL Flies High in the Cloud
NoSQL and the cloud are a natural fit. Today’s servers are inexpensive and can easily be scaled up on demand using a service such as Amazon EC2. Like all cloud technology, EC2 is based on virtualization. The weak link of virtualization is I/O performance, with memory and CPU being the strong links.
NoSQL databases mostly use memory over disk as the primary write location – thereby preventing inconsistent I/O performance. And since NoSQL datastores typically leverage horizontal scalability via partitioning, they are able to take advantage of the cloud’s elastic provisioning.
Here are Five Downsides of NoSQL
Open Source can Mean Spotty Support for Enterprises
While major RMBMS vendors such as Oracle, IBM and Sybase deliver good to outstanding support for their mid-size and enterprise customers, smaller, typically start-up open source vendors cannot be expected to deliver comparable support – except to a handful of blue-chip customers.
The average open-source vendor lacks the global reach, support services, and credibility of an Oracle or IBM.
Not Mature Enough for Enterprises
Despite their implementations at some major companies, NOSQL databases still face a major credibility problem with many enterprises. Critics point to NoSQL’s lack of maturity and possible instability issues, while citing the maturity, rich functionality and stability of long-established RDBMSes.
Business Intelligence Limitations
There’s a question mark or two around the BI capabilities of NoSQL databases. Can these databases provide the sort of rigorous data-mining that corporations are used to with RDBMSes? How much programming expertise is needed to do ad-hoc query and analysis?
The answers are not exactly positive. NoSQL databases do not have many hooks to commonly used BI tools, while the simplest ad-hoc query and analysis involves pretty heavy programming expertise. Nevertheless, solutions are available. Quest Software, for example, has created Toad for cloud databases, which delivers ad-hoc query capabilities to some NoSQL databases.
Lack of Expertise
The very newness of NoSQL means there are not a lot of developers and administrators who know the technology – making it difficult for companies to find people with appropriate expertise. In contrast, the RDBMS world has thousands of very qualified people.
Unlike relational databases, NoSQL databases share little in the way of standards. Each NoSQL database has its own API, unique query interfaces, and peculiarities. This lack of standards means it’s impossible to simply switch from one vendor to another, if you become unhappy with the service.