26 September 2011

NoSQL and the impact for System Analysts

I love Ars Technica. Its a fabulous site. For what is the first time I can remember, they actually used the words 'business analysts' in a post, so I was naturally drawn to this post about Teradata combining SQL and NoSQL databases into a single product.

In all fairness, the article really isn't about business analysis, but it does bring up some interesting points for those of us who are business analysts that stray over into the system analyst realm. I've been curious about NoSQL in the past and done a small bit of reading about Hadoop and Big Table in the past, but really didn't know a lot about how either system really works. SQL is something I get, and while I am by no means up to the caliber of a qualified DBA, I can write some mean select statements.

My day job captures a lot of 'little' distributed transactions. Our back-end database servers aggregate that data and I am on occasion called upon to do some research, either to find a problem or to figure out what to do for the future. To do this research, I always use SQL. I realized that 'NoSQL' systems obviously didn't use SQL to find data, but I had no idea what they used instead.

This is why the Ars article was so enlightening to me... there really isn't an alternative to SQL, except code.

That's disheartening to me. Yes, these large data structures make it possible to store a lot of data in a lot of places, but it clearly is a step backwards in allowing anyone who is not a developer to freely access that data. These products require me to either learn a programming language or use programming-like syntax to find the data I need. There's a reason I'm not a programmer and requiring a programmer to give up time to help me find information is a really terrible option.

The Teradata solution, while a bit light on the documentation details, seems to provide a translation layer that either converts SQL into a map reduce language or vice versa. I expect that there is likely some performance degradation in this type of translation, but given that business analysts are unlikely to be performing a large number of searches repeatedly and overlapping on a single data set, I expect that the translation would be fairly minimal.

When companies come out with tools like this that allow developers to maximize the potential of an application but enable analysts to still perform their duties, I can't help but applaud. While I don't know if I will ever have the opportunity to work with this product, I like that business analysts are considered to be important enough to organizations to have tools created that enable them to be more effective in their work.