Hbase的優點及應用場景:
- 半結構化或非結構化數據:
對於數據結構字段不夠確定或雜亂無章非常難按一個概念去進行抽取的數據適合用HBase,因爲HBase支持動態添加列。 - 記錄很稀疏:
RDBMS的行有多少列是固定的。爲null的列浪費了存儲空間。HBase爲null的Column不會被存儲,這樣既節省了空間又提高了讀性能。 - 多版本號數據:
依據Row key和Column key定位到的Value能夠有隨意數量的版本號值,因此對於須要存儲變動歷史記錄的數據,用HBase是很方便的。比方某個用戶的Address變更,用戶的Address變更記錄也許也是具有研究意義的。 - 僅要求最終一致性:
對於數據存儲事務的要求不像金融行業和財務系統這麼高,只要保證最終一致性就行。(比如HBase+elasticsearch時,可能出現數據不一致) - 高可用和海量數據以及很大的瞬間寫入量:
WAL解決高可用,支持PB級數據,put性能高 - 適用於插入比查詢操作更頻繁的情況。比如,對於歷史記錄表和日誌文件。(HBase的寫操作更加高效)
- 業務場景簡單:
不需要太多的關係型數據庫特性,列入交叉列,交叉表,事務,連接等。
Hbase的缺點:
- 單一RowKey固有的侷限性決定了它不可能有效地支持多條件查詢[2]
- 不適合於大範圍掃描查詢
- 不直接支持 SQL 的語句查詢