NoSQL

NoSQL Data Stores

MongoDB ( C++) - document database
CouchDB - document database(key/value )
Cassandra - Column based , no single point of failure(Dynamo Architecture), Data modeling is based on Google Big Table.

Hbase ( Java )  - Google BigTable based architecture, Column Oriented distributed database on top of HDFS ( non distributed version works on local filesystem also , but distributed is only supported on HDFS).  See cassandra-vs-hbase for differences between Cassandra vs. Hbase.  High availability(No single point of failure-almost 100% uptime) , high number of reads/writes and if read/write consistency is not big issue Cassandra is wins. If Read/Write consistency is important and also if you need to query(read) large amount of data and extract small amount of result out of it Hbase wins.  Cassandra includes data storage and management both while Hbase is only for data management. For most of other activities, it relies on external services like HDFS, ZooKeeper etc.  In fact it does not have a query language, while Cassandra does.

Neo4j,OrientDB - Graph based, for handling complex relations/connections, for modeling classification

MemcacheDB, Redis - key/value based distributed caching.



MongoDB document field renaming

Had to find all the documents which have a certain  embedded document and rename the field in the embedded documents.

db.user.find({"filed1.field2": {$exists:true}})
db.user.update( {"field1.field2":{$exists:true}},{ $rename: { "field1.field2":"field1.newfield2"}},{multi:true})

to find collections where field2 inside field1 has a particular "value".

db.user.find( { "field1.field2" : "value" } );



Comments

Popular posts from this blog

SQL

Analytics

HIVE