The Business Pros and Cons of NoSQL

Loraine Lawson

Recently, my colleague Mike Vizard wrote about the "NoSQL movement" at our CTO Edge site.

 

When I first read the post, I thought this was some sort of protest movement, as in we're not going to take SQL any more. And in a way, it is-but really, it's more useful to think of it as an alternative way to approach data, rather than anti-SQL. Instead of the good ole relational database model we all know and love, NoSQL uses a non-relational and distributed data store approach.

 

That's pretty geeky, right? I mean, who cares? Let the data admin people sort it out.

 

Well, it turns out, there are some rather intriguing advantages to NoSQL offerings-advantages a business user would notice and appreciate.

 

In a recent blog post, Om Malik of GigaOm looks at why Digg recently switched to Cassandra, a NoSQL, open source data software developed by Facebook. What's great about Malik's post (from a business executive's perspective) is it nicely summarizes the business reasons companies are switching without all the tech talk.


 

In short, NoSQL solutions offer a way to store and use large amounts of data, but with:

  • Less overhead
  • Less work
  • Less downtime
  • Faster results

 

But keep in mind, when I say "large amounts of data," I mean LARGE amounts of data. As Malik wrote in his post, Digg manages 40 million visitors a month, for roughly 500 million page views each month. There's 20,000 submissions each day, with 170,000 daily Diggs and 19,000 comments: That's not what you'd call typical of most businesses.

 

Digg's vice president of engineering, John Quinn, explained why Digg is switching to NoSQL:

Our primary motivation for moving away from MySQL is the increasing difficulty of building a high performance, write intensive, application on a data set that is growing quickly, with no end in sight. ... As our system grows, it's important for us to span multiple data centers for redundancy and network performance and to add capacity or replace failed nodes with no downtime. We plan to continue using commodity hardware, and to continue assuming that it will fail regularly. All of this is increasingly difficult with MySQL.

I should note that in Digg's case, it's not just about switching from SQL to NoSQL. As Quinn shared in his post, Cassandra offers distinct advantages over other NoSQL tools. Twitter also recently switched to Cassandra.

 

Quite possibly there are advantages beyond effectively storing and moving massive amounts of data. For instance, last October, someone posted about the possible implications of NoSQL for business intelligence. But for the most part, the discussion is focused on those who trade in large volumes of data.

 

But then again, as Alex Popescu, a self-proclaimed geek, NoSQL aficionado and co-founder/CTO of InfoQ.com, pointed out in a January post, if NoSQL is here to stay, "integration with popular frameworks is a critical phase" for adoption. Just what you need: Another integration challenge.

 

If you're curious about other NoSQL options and how they work, Database Journal has a nice, short piece coming off last week's NoSQL Live conference in Boston. It looks at some of the other solutions, and includes this piece of cautionary advice from Mark Atwood, community development director at memcached vendor Gear6:

In Atwood's view, the learning curve for many of the NoSQL systems can be too steep, particularly in cases when the RDBMS approach would only require a database with a few tables. He noted that not all of the NoSQL database query tools are as well understood as their SQL counterparts, which have been in use for many years.

Still. It wouldn't hurt to keep NoSQL on your radar.



Add Comment      Leave a comment on this blog post
Mar 16, 2010 2:47 AM dm dm  says:

I think the catalyst for nosql trend was a desire for scalability: so certainly solving scale and big data problems is very key to the space.

That said, the solutions are not relational data model, so once they moved beyond that, there are new opportunities to innovate in other ways.  Some of the products make development a lot easier - I've seen a lot of developers of small scale data apps starting to really enjoy developing on NoSQL for productivity reasons.

I find that the nosql products are good at "online" problems, and less suitable for bulk load data warehousing and business intelligence.  SQL is very useful in that context.

dwight/mongodb

Reply
Mar 16, 2010 5:23 AM Mark Atwood Mark Atwood  says:

This is not to say I'm not a fan of NoSQL, the various "other than SQL" storage models and patterns that are emerging.  There are many use cases and scales where one of them will fit very well.

Just don't commit a live site to a NoSQL solution until you and your arch and ops team have spent the time to understand what you're getting into.  This is all very new, so there are going to be a lot of surprises, and also a lot of pressure to use something just because it's "new and shiney", instead of old and understood.

Reply
Mar 17, 2010 10:19 AM Mike Kavis Mike Kavis  says:

There is a time and place for everything.

For online transation processing (OLTP) aka data entry, relational databases are a great solution because of its ability to enforce data integrity and handle locking.  Retrieving data from huge datasets is not a problem that relational databases handle well because of the overhead involved to handle data integrity, indexing, complex joins, etc.

NoSQL is a perfect fit for these types of problems because it is built for speed.  Keep in mind that often, NoSQL deals with data sets that are historical in nature (ie transactions, web logs, etc.) which have static rows and don't have the need to deal with constant updates to the data.  Often large datasets are denormalized or flattened which uses more space but eliminates the need for joining huge tables together.  Normalized data is what gives you the data integrity that relational database enforce.  Denormalized data makes the processing sequential, thus allowing NoSQL to distribute its work load and quickly access and retrieve the desired rows.

So for static, historical type data, you just can't beat the speed and efficiency of NoSQL.  For dynamic, data entry type data, relational databases are better suited.  To put it simply, relational databases solved problems when data integrity is the key, NoSQL solves problems when speed and size are the key.  Most data warehouse data has gone through an ETL process where the data integrity issues were handled.  That means that many data warehouse datasets are flattened and built for speed.

</end geekiness>

Reply
Sep 14, 2010 4:02 AM griddle griddle  says:

I am really good at doing something when I'm waiting. It might be jotting down my to-list or prepare a draft my next piece. I hate waiting and I always make sure time on hold doesn't go to waste.

Reply
Mar 25, 2011 3:00 AM yasmine delaco yasmine delaco  says:

Useful article. You make me interesting in NoSQL. This month I try new ways to promote my business, name badges, different discounts at some products. For no is good, but I want to develop my business through Internet. Are you saying that this NoSQL is helpful for large data?

Reply
May 18, 2011 5:10 AM Jogos Jogos  says:

My observation is that NoSQL is often taken for performance reasons. However, performance is often a bad reason to choose NoSQL, especially if the side effects, like eventual consistency, are poorly understood.

Reply
Jul 20, 2011 4:15 AM Simon Gatte Simon Gatte  says:

I agree the organisation and structuring of data is very important and getting it right is vital. We have databases of name badges supplied and these need to be stored effectively. NoSQL is definitely to be investigated.

Reply
Sep 22, 2011 12:09 PM Dickoz Dickoz  says:

I work for a NoSQL database company. The NoSQL advantages that our customers commonly relate are performance, scalability and ease of development (compared to RDBMS'). Having worked in the relational db world for many years, I would agree that they are best suited for OLTP and BI apps where data integrity is key.

Reply

Post a comment

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Subscribe to our Newsletters

Sign up now and get the best business technology insights direct to your inbox.


 
Resource centers

Business Intelligence

Business performance information for strategic and operational decision-making

SOA

SOA uses interoperable services grouped around business processes to ease data integration

Data Warehousing

Data warehousing helps companies make sense of their operational data


Close
Thanks for your registration, follow us on our social networks to keep up-to-date