HBase as the brother of big data
Use Cases and Deployment Scope
I use HBase because it is a NoSQL database and it is open sourced and can store big data. We can store any structured, semi-structured and unstructured data easily. One other major benefit is, it is a columnar database so no need to specify any schema. I generally use it when I store the streaming data, the analysis is also faster after connecting the HBase with Spark. HBase is a mature database so we can connect HBase with various execution engine and other component using JDBC.
Pros
- HBase stores the big data in a great manner and it is horizontally scalable.
- Another major reason is security, we can secure the HBase database using Atlas, Ranger.
- Store any format of data like structured, semi-structured and unstructured.
- Consistency
- Strongly consistent reads and writes are provided by HBase, we use it for high-speed requirements if we do not need RDBMS-supported features such as full transaction support or typed columns.
Cons
- There are very few commands in HBase.
- Stored procedures functionality is not available so it should be implemented.
- HBase is CPU and Memory intensive with large sequential input or output access while as Map Reduce jobs are primarily input or output bound with fixed memory. HBase integrated with Map-reduce jobs will result in random latencies.
Likelihood to Recommend
While we have a variable schema with slightly different rows and when you are going for a key dependent access to our stored data, we prefer to use HBase. No requirement of relational features. If we do not need features like transaction, triggers, complex query, complex joins etc. then go for HBase.
