Column stores and document stores

I read several posts, such as this one , that compare document stores, such as MongoDb, CouchDb, and CouchBase, with column stores, such as Cassandra.

One of the comparisons is the fact that document repositories operate at a higher level of detail, unlike column family repositories, which allow you to work with individual parts of a document. I believe this is simply not true because Redis supports this through hset operation , and therefore mongodb .

Is the argument that although both types of solutions allow you to update / read portions of a document, column family repositories are simply more efficient than document repositories?

Does this also mean that I have to take the document repository route to insert and read heavy applications, but the column family route to update and read heavy applications?

What are some other differences that will help me choose one solution over another?

Thanks!

+7
source share
1 answer

I would suggest that the main difference is in the query model. They can store similar data structures (for example, you can put a JSON document in the CF repository), but document repositories usually provide you with the ability to search by value, whereas in CF stores they usually don't. However, the lines are blurred, and it seems that such generalizations are becoming less applicable as each database project matures. For example, Cassandra (a popular CF store) offers some value query functionality with secondary indexes. However, most CF stores require you to write data the way you plan to read it, which means you have to think about your data model in terms of your queries.

It seems to me that there are other equally important differences between different database technologies, such as consistency model, data center replication capability, scalable model, ease of management, caching capabilities, etc.

+8
source

All Articles