NoSQL Really !!!!!

                 Best Fit of No-SQL DB for your Organization

There has been a hype around NOSQL and its first cousin NEW-SQL, as they have evolved as new database technologies for wide variety of use cases.

The question to be asked here is:

1) Do you have a business Requirement and a use case ? Do you really need one of them ?
2) Is your current database not capable of catering the requirement you have?
3) Most of the NO-SQL Databases are open source, if your organization ready for productionising the open source NO-SQL DB or are looking for Enterprise level support.
4) Do you need a NO-SQL running in your datacentre or on Cloud ?
5) If you have a business requirement of using a NO-SQL DB then we need to have proper use case to find out which NO-SQL DB you would like to use?

We have a lot of Vendor giving Enterprise level support for NO-SQL databases and few cloud vendors have their own NOSQL running on the Cloud. To List few of them are:

1) Cassandra from Datastax.
2) Mark Logic NoSQL DB from Mark Logic.
3) MongoDB from MongoLab.
4) DynamoDB from Amazon
5) Hbase from Cloudera
6) Oracle NoSQL Database from Oracle.
7) Azure's NoTable Database from Microsoft
8) Neo4j (Open Source)
9) CouchDB (Open Source)

Now that we have a lot questions to answer and various choice of Databases lets start exploring the same in more details:

If you are a Oracle or SQL Server database user you would like to see a No-SQL Databases which can cater most of the requirements and can be used as a common platform for different uses cases which might come up.

My evaluation on the subject will more be based on above assumptions as that is the need of an hour, no organization will actually want to have multiple NO-SQL Databases for specific use cases and providing production level support for each of them.

To begin with lets start answering the questions :-

1) Do you have a business Requirement and a use case ? Do you really need one of them ?

         Before you conclude which NOSQL DB you might use, you have understand the business requirement and should have use cases to ensure you are choosing the right No-SQL database.
If you planning to have one in cloud then we should have thoroughly studies various cloud offerings on No-SQL from different vendors.

2) Is your current database not capable of catering the requirement you have?
              
           Well this one is tricky, sometimes we actually get very excited about the new technology doing lot of POC around them but we tend to forget that the existing database we are using is capable of catering the requirement we have and probably an appropriate one for the cloud as well with a lower cost as compared to NO-SQL Enterprise level support on cloud.

3) Most of the NO-SQL Databases are open source, if your organization ready for productionising the open source NO-SQL DB or are looking for Enterprise level support ?

             One of the driving factors before we actually opt for Enterprise or open source technology is kind of Community support it has, is the development around the same is still going on or is it stopped. Enterprise support can leverage this and work on the same Going with Enterprise level support you have your own set of advantages and disadvantages as compared with open source community, I leave this discretion to you, which way you want to choose.
       
4) No SQL in Cloud ?

             Yes! Every organization is forming their own cloud strategy and planning to move onto  Cloud to utilize the cloud offering like PaaS, IaaS etc.

5) If you have a business requirement of using a NO-SQL DB then we need to have proper use case to find out which NO-SQL DB you would like to use?

             Considering the fact we have a business requirement and use case , now we have to identify the NO-SQL databases which are available which suits our requirement. As mentioned earlier after elaborating the pros and cons of different No-SQL databases we will try and see which one can be the most generic option to use which can cater a lot of use cases.

Key considerations when choosing your NoSQL platform include:
  • Workload diversity
  • Scalability
  • Performance
  • Continuous Availability
  • Manageability
  • Cost
 We can categorize the No-SQL databases in to 4 generic Categories:

              1) Document Store :- MongoDB, Couchbase, Mark Logic, DynamoDB, Cassandra.
              2) Key Value Based :- Cassandra, Redis, DynamoDB, Oracle NoSQL, Azure Table Storage.
              3) Column Store:-  Hbase, Bigtable
              4) Graph :- Neo4j, Infinite Graph

MULTIMODEL DATABASES:- I do not want to categorise this as NO-SQL Database but in todays trend there is another type of requirement which is becoming the need of most of the organizations.

The Need is to identify a database which is capable of handling multiple types of workload like OLTP and OLAP and not only different workloads but also should be able to cater the requirement to use different models like Document, Key-Value , Column and graph.
These kind of multimodal databases are now becoming a major business requirement.

My personal opinion as per the recent evaluation i did with MongoDB, Cassandra and DynamoDB , where MongoDB really is a choice for Document Store like Jason or XML type of data , Cassandra and Amazons DynamoDB to me becomes the NoSQL database of choice as it supports multiple Models as shown above.

+ Cassandra also supports different workloads.
 
Cassandra is built-for-scale architecture that can handle terabytes of information and thousands of concurrent users/operations per second as easily as it can manage much smaller amounts of data and user traffic.

Not only this but also there is an enterprise level support from Datastax which gives it an upper hand as compared to other competitors.

Datastax had recently added support for Graph as well in its NoSQL offerings.

More on MultiModel Database in recently released whitepaper from Datastax:

http://www.datastax.com/wp-content/uploads/resources/whitepaper/DataStax_WP_The_Multi-Model_Database.pdf

Another very good whitepaper from Datastax which discusses why Cassandra is the choice of Database on Cloud.

http://www.datastax.com/wp-content/uploads/2011/11/WP-DataStax-Cloud.pdf?1

+ Planning Cassandra on AWS , this article from amazon details about the same:

https://d0.awsstatic.com/whitepapers/Cassandra_on_AWS.pdf

We also have vendor support Cassandra deployments on cloud:

Instaclustr lets companies effortlessly run and scale Cassandra on AWS.

Although AWS supports Cassandra deployment but they do not have any built in AMI to use, Datastax has an customized AMI which can be used to deploy a Cassandra cluster in the single region on AWS.

https://docs.datastax.com/en/cassandra/2.1/cassandra/install/installAMI.html

+ Planning MongoDB on AWS:

https://aws.amazon.com/blogs/aws/mongodb-on-the-aws-cloud-new-quick-start-reference-deployment/

Although we have a lot of blogs and statistics comparing multiple NoSQL  databases and different cloud offerings but most of them are outdated and might hold no added value as the technology is changing with new releases which includes new functionalities, bug fixes , etc. Hence in my next Blog release i will try to come up with latest stats where i will more focus on performance, stability , scalability and other important aspects of different NoSQL databases.

Not only this i will also be evaluating some major NoSQL offerings on cloud..

Will see you back soon in my next blog..

 

Comments

Popular Posts