Hacker News new | ask | show | jobs
by nissimk 4856 days ago
There are two primary categories of applications that were traditionally developed on sql platforms: Operational and Analytical. Operational applications want the ACID and transactions features of the RDBMS, but analytical applications benefit tremendously from the SQL language itself. If there is a question that my user wants me to answer and I can answer it by writing a SQL query but in the NoSQL world I have to write a program, I just lost one of my super powers. SQL gives me the ability to rapidly answer complex questions about my data. Please recognize that ACID and transactions are not your only hurdles to successfully competing with RDBMS.
2 comments

Absolutely spot on. But there is no reason why the translation from the user's query into a series of data accesses cannot happen in the front end. In many ways, NoSQL is a reaction to the poor job RDBMSs were doing in the front end. Everyone has seen the cases where AWK programs on desktops could outperform expensive Oracle servers, and that's mostly because they enable the user to put to use what they know of their specific data and their access patterns.

So, in between "writing a program for each query" (which I agree is a non-starter in some settings) and "SQL is the one and only interface" lies an exciting space of opportunities.

I don't see why there's a competition. SQL is great for analytics. NoSQL is great for operations. When you want to do analytics on the data from your operations--which are presumably Big Data and far too much to pack into a single node--just query your Operations data using statistical sampling methods to generate a representative data set, stuff that "analytic snapshot" into any old RDBMS, and query it to your heart's content.

(And if they're not Big Data--well, then, the solution is even more obvious. :)