More NoSQL (some CouchDB conclusions)

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).

What CouchDB is good for is building scaleable web apps and sites. That’s where it really shines and is the reason it’s quoted as being used for some major sites. It’s a document database, so adding new information to your app is as easy as adding a record to the database. With the right interface (written in a Python framework, for example, thanks to its couchdb library), it would be pretty easy to manage. If you know some Javascript, adding new views and new pages is simple, and the site or app can grow easily thanks to the clustering, replication, and other scaleability and availability features built it. So CouchDB is a good platform, but not a platform I’m likely to use for the work I usually do.

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.


One thought on “More NoSQL (some CouchDB conclusions)

Comments are closed.