# If your data is unstructured.
# If data model is likely to change (have dynamic schema rather than static schema (relational database has fixed / static schema))
# If the data is in large volume.
# Is there any chance that data growing exponentially ?
# Do you want the real-time analytics on data ?
Please feel free to add the points if any points are missing
i. Application Types
when you are going for a key dependent access to our stored data as well as have a variable schema with slightly different rows, go for HBase.
i. Hardware environment
While we have good hardware support like HDFS since HBase runs on top of HDFS, we can go for HBase.
iii. No requirement of relational features
When there is no requirement of relational features like transaction, triggers, complex query, complex joins HBase can be used.
iv. Quick access to data
Also, HBase can be used while we need a random and real-time access to our data. Apart from that, we use it for storing large tables with multi-structured data. Additionally, in order to fetch data in a particular instance of time HBase is used.
Moreover, while we require fault tolerant, fast as well as data management in a non-relational environment we use HBase.