The thing is, the NoSQL stuff is pretty much just a key-value store.
There's generally no way to "query" the store, instead you can simply
look up a document by ID.
If this meets the needs of your application, all you need is a key-value
store, and not any kind of query, then it's definitely going to be a lot
less overhead than an actual SQL rdbms, and simpler to manage, with
advantages for scalability and replication etc. The reason it's simpler
and more performant, is well, because it's _simpler_, you don't actually
have querrying or joining abilities.
But if you are actually going to need querrying on values other than
ID... SQL rdbms is a pretty standardized, well understood way to do
this. There are certainly other ways -- you could combine a "noSQL"
key-value store with Solr/Lucene, for instance. Which in some cases may
get you even better performance and more flexiblity than an rdbms
solution. But it's (IMO) going to be a bit harder to set up and manage
and use in your favorite development environment, precisely because
rdbms is such a time-tested standardized mature approach.
So, as usual, the right tool for the job. If all you really need is a
key-value store on ID, then a "NoSQL" solution may be the right thing.
But if you need actual querrying and joining, then personally I'd stick
with rdbms unless I had some concrete reason to think a more complicated
"nosql"+solr solution was required. Certainly if you are planning on
using Solr _anyway_ because your application is a search engine of some
type, that would lessen the incremental 'cost' of a nosql+solr solution.
[ Note that if all you want is a "schemaless" storage, you CAN just
stick large chunks of binary or text in an rdbms 'blob' or 'text'
column. You won't be able to efficiently search on these -- but you
aren't able to efficiently search in a 'nosql' solution either. So you
_can_ use an rdbms like a "nosql" solution to store arbitrary data, no
problem. If you're using an rdbms, you can have _other_ columns in
addition to your blob/text one, that you can populate for select and
join. If you _aren't_ going to need those -- then there's be no reason
to do it in an rdbms (even though you could), you would indeed then just
want to use a 'nosql' key-value store solution which will be higher
performance. So the conclusion again I think is that rdbms is _more
powerful_ than nosql, but that power comes with a performance cost. If
you don't need it, nosql. If you do need it -- there's no reason you
can't store "structureless" units of data in text/blob in an rdbms too. ]
Peter Schlumpf wrote:
> I'd opt for the first response. I hope NoSQL is not flash in the pan. It makes eminent sense to me. SQL is just one way of looking at data. A level of abstraction. What authority says that SQL is the only or the best way of looking at a dataset? Or the MARC record format for that matter? They certainly weren't inscribed on stone tablets. These things can become mind prisons. I think it's refreshing that there are those willing to look at databases beyond SQL.
>
> Peter Schlumpf
> www.avantilibrarysystems.com
>
>
> -----Original Message-----
>
>> From: Thomas Dowling <[log in to unmask]>
>> Sent: Apr 12, 2010 10:55 AM
>> To: [log in to unmask]
>> Subject: [CODE4LIB] NoSQL - is this a real thing or a flash in the pan?
>>
>> So let's say (hypothetically, of course) that a colleague tells you he's
>> considering a NoSQL database like MongoDB or CouchDB, to store a couple
>> tens of millions of "documents", where a document is pretty much an
>> article citation, abstract, and the location of full text (not the full
>> text itself). Would your reaction be:
>>
>> "That's a sensible, forward-looking approach. Lots of sites are putting
>> lots of data into these databases and they'll only get better."
>>
>> "This guy's on the bleeding edge. Personally, I'd hold off, but it could
>> work."
>>
>> "Schedule that 2012 re-migration to Oracle or Postgres now."
>>
>> "Bwahahahah!!!"
>>
>> Or something else?
>>
>>
>>
>> (<http://en.wikipedia.org/wiki/NoSQL> is a good jumping-in point.)
>>
>>
>> --
>> Thomas Dowling
>> [log in to unmask]
>>
|