"I have yet to meet a database that isn’t a key/value store"
Dimensions that are "somewhat orthogonal"
"It suffices to say that MapReduce is all about giving programmers an efficient way to consume data without needing to know how or where it is actually stored."
I don't think that definition suffices, and it misses (or buries in 'efficient') the rather central point that MapReduce is a programming model for distributing computation.
I'm all for non-relational databases where they're appropriate, and Cloudant sounds like it is doing great things. But I think that there's a risk in presenting toy examples in a way that seems to sell them as the solution to common use cases that really could be solved more easily with old-school tools.
I suppose "somewhat orthogonal" is like being "almost pregnant", perhaps the author was just speaking loosely here.
I agree that the examples were toy ones, but it's precisely these simple things like projections that we see folks struggling with when coming from the relational world.
The answer to "can't you just do this in SQL" is always yes you can. Things change, non-relational dbs were around before relational ones and are now returning for a variety of reasons.
I'd like to see some follow on posts that delve into the subtleties of rereduce, another real pain point for new users.
One thing that is not emphasized enough in my mind is the flexibility that a schema-less database such as BigCouch gives you. Consider the trivial schema one would construct to support the 3 or 4 lines of SQL required for these toy examples and then consider how that schema might evolve as needs for different queries change, as the data grows, as different apps with different O-R mapping issues are brought into play and so on.
A schema-less approach does push more of the complexity into the app layer for sure, but it allows the schema to evolve more naturally. After all schema-less doesn't mean the schema really goes away conceptually.
I agree also that Cloudant is doing great things, that's why I joined the team, that and the free coffee :) Thanks for the feedback.
"I have yet to meet a database that isn’t a key/value store"
Dimensions that are "somewhat orthogonal"
"It suffices to say that MapReduce is all about giving programmers an efficient way to consume data without needing to know how or where it is actually stored."
I don't think that definition suffices, and it misses (or buries in 'efficient') the rather central point that MapReduce is a programming model for distributing computation.
I'm all for non-relational databases where they're appropriate, and Cloudant sounds like it is doing great things. But I think that there's a risk in presenting toy examples in a way that seems to sell them as the solution to common use cases that really could be solved more easily with old-school tools.