Today Couchbase, the creator of an Enterprise NoSQL database server, announces N1QL ( pronounced Nickle) at their user conference. N1QL is designed to ease the pain for SQL developers when considering NoSQL, by creating a new query language to sit on top. It is essentially SQL for JSON documents.
But it does a lot more than ease the pain, it supports the enterprises move to NoSQL.
Authors Note: Couchbase is not a customer of mine, nor am I a customer of theirs
I work at a small incubator in Downtown Livermore called i-Gate. It is full of startups, and thus I get to enter into a lot of interesting conversations, and many about code. When we get talking about backends, to my surprise I am still justifying the what, why, and how of using NoSQL. And the opposition I get is amazing. Haven’t we bridged this gap?
There is no questions that the comfort level of using SQL language and relational databases is high. But is the reason because of the logical nature of columns and rows, or is it that developers are extremely efficient of standing up, creating connection strings, and querying their favorite SQL database? It is similar to how knowledge workers won’t dump folders, but can’t really explain why.
Because i’ve seen it with IDEs and all the other regular/habitual aspects of a developer’s job, i’m going to say it is the later. They are just plain comfortable with SQL.Not only is their a generation of DBAs that are not able to just jump into modern development, the more modern developers have a hard time letting go of their MySQL prowess.
But for me, making the backend developers life easier by not learning something new is not the biggest benefit N1QL. While I believe relational databases have their place for some aspects of an application, such as user information. Programming language comfort is no excuse to avoid the power of NoSQL.
The biggest benefit is operationally. You have:
- A workforce that has deep subject matter expertise in your existing applications, and who you cannot replace or spend time and money to train.
- Big investments in existing SQL infrastructure. There is no way that an enterprises is suddenly going turn around and say “hey you know that $1.5 million dollar system we bought 3 years ago and have been paying $750K a year to keep up and running? Yeah just throw it all away”
- You have done the integrations and have a standardized set of queries. Many of your applications modern or legacy applications have already been integrated into a backend. And thus spending the time to update all your libraries of queries and stored procs is risky and expensive.
N1QL stands to alleviate the pain behind all of these issues. Your workforce can query NoSQL without learning anything new. And still leverage all that they already done and know about the system. Although I do see the danger of it being clear when to use one over the other, this could get confusing at times, in the shuffle of a busy day.
There is also the maintenance side. DBAs, where they still exist, might organizational be responsible for all database maintenance. So NoSQL does not work because it does not fit into this paradigm. But now they do not need to limit developers from NoSQL just because their backend team were unable to maintain it.
You do not have to throw your SQL investments out right away. Because cohabitation is now at lot easier. No need to separate teams by tool expertise. So applications can easily leverage the benefits of SQL where it fits, like transactions, and NoSQL where it fits on all “unstructured” data.
And finally all the investments in the query library, and understanding of your own internal best practices for using systems, does not need to be thrown away and recreated. Everything stays the same. In theory…
I really like this announcement, but having not yet tested it, i’m a bit skeptical. What techie would I be if I did not have servations.
First is the compatibility, supporting the nuances in Microsoft SQL Server and Oracle Database. I suspect that it will be less suitable for companies using these platforms, and more for those using MySQL. Which would limit the penetration into the enterprise that I had hoped for. They are really going to have to prove support.
I also am skeptical about the language coverage, and ability to work with things like stored procs. With anything like this, there is the risk that if it imposes a lot of query tinkering on the developer, it will not have a long life.
I think Enterprises will struggle a little, as this does require they commit to Couchbase server. Why would it not. And really in myhack experience with NoSQL databases, i’ve yet to find a key differentiator when choosing one, perhaps this is it. And finally, the name, at least until I get used to it, is ridiculous.
My hope is that N1QL is an answer to NoSQLs lack of adoption in Enterprise applications. And it removes some of the walls that have been put up. I does re-enforces habits, and old ways. Which is not great. But secretly i’m happy because I know SQL well.