tecosystems

It’s Beginning to Look a Lot Like SQL

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

Besides the fact that it has been used to group otherwise fundamentally dissimilar technologies, the fact is that the fundamental rejection of SQL implied by the term NoSQL misidentifies the issue. As the 451 Group’s Matthew Aslett says, “in most cases SQL itself is not the ‘problem’ being avoided.”

Having a standardized or semi-standardized interface for datasets is, in fact, desirable. Google App Engine, for example, which is backed by a non-relational store, exposes stored data to its own GQL query language. And the demand for a query language is, in fact, the reason that the Hive and Pig projects exist.

SQL is more easily learned than MapReduce, and an order of magnitude more available from a skills perspective.

MapReduce vs SQL

That this lesson has not been lost on other non-relational datastore projects is now obvious. Last week saw the introduction of UnQL, a SQL-like query language targeted at semi-structured datasets, document databases and JSON repositories. Backed by Couchbase and SQLite, it is seeking wider adoption within the NoSQL term with its donation to the public domain.

Cassandra, meanwhile, has evolved its own SQL alternative, the Cassandra Query Language (CGL). Described by Jonathan Ellis as a subset of UnQL – CGL has no ORDER BY, for example – the Cassandra project has focused on the features that fit its particular data model best.

MongoDB also makes an effort to relate its querying syntax to SQL-trained developers, as do related projects like MongoAlchemy’s Mongo Query Expression Language.

It is too early to handicap the probable outcomes for these various query language projects. Nor is it certain that NoSQL will achieve the same consolidation the relational market did around a single approach; the differing approaches of the various NoSQL projects argue against this, in fact.

What is apparent is the demand for query languages within the NoSQL world. The category might self-identify with its explicit rejection of the industry’s original query language, but the next step in NoSQL’s evolution will be driven in part by furious implementations of SQL’s children.

Disclosure: Couchbase is a RedMonk client, and we supplied a quote for the release announcing UnQL.

8 comments

  1. Although I don’t dispute your estimate of SQL vs MapReduce, doesn’t the indeed.com graph of job postings indicate demand rather than availability?

  2. In this context, you’d probably be interested in the formalization of NoSQL query engines that Erik Meijer is working on. Presumably, it should lead to the development of a relational “coalgebra”, which would give you a set of standard operations to base any new querying language on.

    I’m a little disappointed at how fundamentally little he’s published on it so far though. He’s been kicking the idea around for almost a year and only written one short paper that I know of for the ACM.

  3. @Donnie Berkholz: it does indeed. i employed it here as a proxy for supply, given that there are no obvious sources that i’m aware of for that end. the theory being that an obviously high, sustained demand is likely to manifest a higher level of supply in response.

  4. @Danno: i am indeed. will read up. thx!

  5. For availability, you could search the résumé-like profiles on StackOverflow . For SQL: 1K active, 3.2K passive; for MapReduce, 9 active, 29 passive.

  6. […] O’Grady (@sogrady) asserted It’s Beginning to Look a Lot Like SQL in an 8/5/2011 post to his RedMonk blog: Besides the fact that it has been used to group otherwise […]

  7. […] NoSQL – It’s Beginning to Look a Lot Like SQL – tecosystems – What is apparent is the demand for query languages within the NoSQL world. The category might self-identify with its explicit rejection of the industry’s original query language, but the next step in NoSQL’s evolution will be driven in part by furious implementations of SQL’s children. […]

Leave a Reply

Your email address will not be published. Required fields are marked *