Reputation: 13501
What tasks should one not use HBase for?
My understanding is that HBase and HDFS should be treated as transient data stores, holding data only for the duration of time that a map/reduce job needs them for.
Is it inappropriate to use HBase as a canonical data store? Its random-access latency spikes make this pretty impractical anyway, but this could be mitigated with caching and other badn-aids.
Upvotes: 3
Views: 527
Reputation: 14004
HBase is supposed to be used as a canonical data store (like Big Table, which is used heavily in many Google services). HDFS is made for MapReduce, but HBase is built on HDFS for allowing more than just MapReduce. HBase is really a data base.
The main reason why you should choose HBase over traditional relational database systems is scalability. If you don't have Big Data, do not bother using HBase. If your application requires many joins, needs a query language like SQL, and doesn't have data scaling around the globe, prefer a RDBMS.
On the other hand, if your relational database has a huge number of NULL entries, HBase is a nice alternative since it is sparse: it doesn't store NULLs.
Upvotes: 2