The NOSQL database movement has rapidly gained ground in the information management field. Here's what you need to consider when evaluating how this data management approach might fit your organization's needs.
Say Hello to NOSQL
The NOSQL movement — originally a reference to a relational database released in 1998 — refers to the rapid emergence of high performance data stores since 2009. These solutions run on cheap hardware, easily handle large volumes of unstructured data, support RESTful interaction and are architecturally non-relational.
Despite the recent NOSQL hype, most seasoned technology managers realize NOSQL is not a silver bullet for data management. No technology, including the relational database, is. NOSQL systems promise a high degree of horizontal scalability, but typically lack relational capabilities like transaction management. With adoption propelled by web luminaries such as Facebook, Google and Amazon, coupled with the promise of cheap, fast and highly available data storage, many organizations are considering incorporating NOSQL into their data strategy.
Business Thinking for NOSQL Geekery
The first factor that should be assessed when evaluating a move to NOSQL is the type of data that needs to be stored. Not all NOSQL databases are the same; some are better suited for storing some types of data than others.
NOSQL databases adopt one of four distinct storage strategies:
Key-value stores, such as BerkleyDB and Voldemort, are the simplest NOSQL solutions. They are organized as key-value pairs and can scale to support very large volumes of data. Columnar-based solutions, including Google BigTable and the Cassandra project, are table centric, similar to relational databases, but are optimized for semi-structured data.
Columnar databases scale by spreading columns and rows across multiple nodes. Document databases, like CouchDB and MongoDB, have a structure similar to key-value stores, but the value is always a document. Graph databases excel at managing complexity by focusing on modeling connections between data. Technology leaders may find that very complex data profiles cross these categorizations, suggesting the need for multiple NOSQL solutions. If this occurs, weigh the complexity of managing multiple tools against the expected benefits.
Know Your Date's Age
Before you get too involved, know the maturity level of your NOSQL vendor. The NOSQL market is still in its infancy and is highly segmented — no single leader has emerged. Many of the vendors are startups with limited funding or open source shops with small communities. Additionally, the majority of NOSQL products are less than 4 years old with no broad-based support model. Adoption of emerging technology brings innovation, but it also brings the risk that a vendor could fail to thrive leaving an organization with an un-supported platform.
In addition to external support, technology leaders must consider internal upkeep. Relational database technology has been in widespread use for decades. Therefore, you can quickly tap into a wealth of development, performance tuning and administration knowledge.
NOSQL promises simplicity and huge performance gains. The reality is that many of the tools implement proprietary interfaces that require specialized programming knowledge. Managers should also be realistic about performance. Ultimately, someone has to be responsible for ensuring system performance and currently a large wealth of knowledge or tools does not exist for NOSQL.
Know Your Date's Limitations
NOSQL solutions typically do not support ad hoc queries and do not integrate with existing business intelligence and reporting products. NOSQL databases, however, frequently include RESTful APIs and offer native integration with cloud computing platforms.
Managers must evaluate what integration strategy is required and if the intrinsic capabilities are adequate to meet organizational needs. If they are not, the features will likely have to be custom developed increasing implementation and maintenance costs.
The Carrots: Volume and Performance
Managers should consider the volume of data to be stored and the speed access. NOSQL databases typically perform very admirably in this area. Proponents of relational databases will argue it is possible to achieve the same scalability on solutions such as Oracle RAC or with database partitioning. It may be possible, but it is likely much more expensive and complex than comparable NOSQL approaches.
Like its relational predecessors, NOSQL comes with its own set of benefits and challenges. NOSQL data stores have the potential to offer substantial benefits when used in the appropriate context. However, you should exercise great care when determining this context. The emergence of NOSQL has not eliminated the need for relational solutions. Successful organizations will select a holistic approach leveraging each tool where it can provide optimal benefits.