The course I’ve been following on NoSQL databases finished last night with some more CouchDB and a very (very) brief overview of other NoSQL solutions including MongoDB and Cassandra.
The course was interesting, but I feel it would have been a lot more useful if it had been rewritten after CouchDB 2.0 came out. The Futon web interface used in the course is nothing like the Fauxton web interface CouchDB is now bundled with, so every step required a lot of Googling and documentation reading to achieve the same thing. On the one hand, that’s a good thing because I felt like I got a more hands-on demonstration of the product than I would otherwise. After all, I had to dig deep to build the teeny tiny website the course demonstrated, because a lot of the convenience in the old interface was gone.
On the other hand, it ended up being an incredibly frustrating exercise, because I had to do so much Googling and documentation reading to achieve things the instructor achieved with three mouse clicks. So that wasn’t a great introduction to the platform!
What I did learn is what CouchDB is best for. It’s not a database that’s useful for the kind of reporting and data analysis that’s my bread and butter. Extracting anything from it is done through an HTTP API, which is RESTful and lovely, but not useful for data analysis. I’m not sure any database accessed like this will be good for that (although I’ll be happy to be proved wrong).
I’m glad I took a poke around, though, and I probably will continue to play a little to test out what it can do and build personal projects.
On the NoSQL database front, though, I’ll be investing my immediate time in other products and projects that are better suited to analysis and reporting. I’ve got a couple of courses on Apache Spark bookmarked, plus some Hadoop/HBase/Hive courses, and Cassandra also looks interesting. Why yes, platforms where my knowledge of SQL gives me a step up are more my speed! But they’re also where the data science work is focused, and as that’s my wheelhouse, I’ll leave the web apps to the web developers and get back to my home in data.