Elegance from Ugliness: Lessons from MongoDB at Chicago Trib

Posted Friday, November 5, 2010 at 10:46 a.m. by Chris Amico in Lessons From... about Django, Local, MongoDB, NoSQL and Python

Chris Groskopf gives us the backstory on building the recently-launced Illinois School Report Cards:

The site is a comprehensive look at how schools across the state performed on standardized tests, with faceted and geographic search and lots of ways to interpret the data. It's the kind of project any regional news organization should be all over, and the Trib did it well (no surprise there).

A couple quick takeaways here:

The data is a mess: Nothing says "government data" like a 210 megabyte text file with 9,000(!) columns. Have a look.

That made the site a good candidate for MongoDB's document store. The data was already denormalized, so mapping it to relational models would have meant reverse-engineering schemas in uncomfortable ways.

NoSQL != Fast: I've made this assumption, too, and Chris reminds us that it's a bad one, especially when doing serious map/reduce queries. It can be fast, but only if done right.

Elegance matters: As Chris says, this project probably could have been pulled off using PostGreSQL, but it would have been ugly, and beautiful is better than ugly.

I've kicked around MongoDB for a couple recent projects, and the pain points are real, but as the Trib team shows here, there is some real beauty in the right use case.


Comments are closed for this post. If you still have something to say, please email me.