8/06/2013

NoSQL databases

NoSQL databases have been getting lot of attention over the last few years for their performance, scalability, schema flexibility and analytics capabilities. While relational databases are still good choice for certain use cases - like structured data and applications that require ACID transactions - NoSQL databases are better suited for use cases where:
  •     The data stored is semi-structured or unstructured in nature
  •     The applications that access this data require a certain level of performance and scalability
  •     The applications that access this data are ok with eventual consistency
 
Non-relational databases typically support the following capabilities:
  •     Schema flexibility
  •     Shared nothing architecture
  •     Sharing as part of the data storage model
  •     Asynchronous replication
 
Few NoSQL databases trending in the market:
If you are using or have used any of these databases, please share the details on how it is\was used.
 
Document Databases
  • MongoDB: MongoDB is an open-source document oriented database.
  • CouchDB: Apache CouchDB is a database that uses JSON for documents, JavaScript for MapReduce queries, and HTTP for an API.
  • RavenDB: RavenDB is a document-oriented database based on .NET language.
 
Graph Databases
  • Neo4j: Neo4j is a property graph database; supports ACID transactions.
  • InfiniteGraph: Graph database used to persist and traverse relationships between objects, supports distribute data stores.
  • AllegroGraph: AllegroGraph is a graph database that uses memory utilization in combination with disk-based storage for scalability, supports SPARQL, RDFS++, and Prolog reasoning.
 
Key Value Data Stores
  • Riak: Riak is an open source, distributed key value database, supports data replication and fault-tolerance.
  • Redis: Redis is an open source key-value store. Supports master-slave replication, transactions, Pub/Sub, Lua scripting, Keys with a limited time-to-live.
  • Dynamo: Dynamo is a key-value distributed data store. It is directly implemented as Amazon DynamoDB; used in Amazon S3 product.
  • Voldemort: Distributed key-value storage system with the data replication and partitioning.
  • Aerospike: Aerospike database is a key-value store; supports hybrid memory architecture and data integrity with strong or tunable consistency.
 
Columnar Databases
  • Cassandra: Cassandra is column database that supports data replication across multiple data centers. Its data model offers column indexes, log-structured updates, support for denormalization, materialized views, and built-in caching.
  • HBase: Apache HBase is an open-source, distributed, versioned, column-oriented store modeled after Google's Bigtable. It provides Bigtable-like capabilities on top of Hadoop and HDFS.
  • Amazon SimpleDB: Amazon SimpleDB is a non-relational data store that offloads the work of database administration. Developers store and query data items using web services requests.
  • Apache Accumulo: Apache Accumulo sorted, distributed key/value data store created based on Google's BigTable design and is built on top of Apache Hadoop, Zookeeper, and Thrift technologies.
  • Hypertable: Hypertable is an open source, scalable database, also modeled after Bigtable; supports sharing.
  • Azure Tables: Windows Azure Table Storage Service offers NoSQL capabilities for applications that require storage of large amounts of unstructured data. Tables can auto-scale to store up to several terabytes of data. They are accessible via REST and managed APIs.

1 comment:

SDB Explorer said...

Amazon SimpleDB can be useful for those who need a non-relational database for storage of smaller, non-structural data on the other hand Amazon DynamoDB can be useful for those who need a fast, highly scalable non-relational database. Amazon SimpleDB offers simplicity and flexibility whereas Amazon DynamoDB offers good performance and incremental scalability. DynamoDB is priced according to how much request capacity you have requested. Amazon SimpleDB is cheap than DynamoDB.

SDBExplorer has been design for fast and parallel operations. You can experience fast, multiple and parallel operations using SDB Explorer.

http://www.sdbexplorer.com.html

dzone.com