在CGFT大數(shù)據(jù)中,HBase與傳統(tǒng)關系數(shù)據(jù)庫是緊密相連的。下文是對兩者的對比分析介紹,一起看看吧!
關系數(shù)據(jù)庫發(fā)展到今天,已經是一種成熟穩(wěn)定的數(shù)據(jù)庫管理系統(tǒng),通常具備的功能包括面向磁盤的存儲和索引結構、多線程訪問、基于鎖的同步訪問機制、基于日志記錄的恢復機制和事務機制等。
HBase與傳統(tǒng)的關系數(shù)據(jù)庫的區(qū)別主要體現(xiàn)在以下幾個方面:
1. 數(shù)據(jù)類型
關系數(shù)據(jù)庫采用關系模型,具有豐富的數(shù)據(jù)類型和存儲方式,HBase則采用了更加簡單的數(shù)據(jù)模型。
2. 數(shù)據(jù)操作
關系數(shù)據(jù)庫中包含了豐富的操作,如插入、刪除、更新、查詢等,其中會涉及復雜的多表連接,通常是借助于多個表之間的主外鍵關聯(lián)來實現(xiàn)的。
3. 存儲模式
關系數(shù)據(jù)庫是基于行模式存儲的,元祖或行會被連續(xù)地存儲在磁盤頁中。在去讀數(shù)據(jù)時,需要順序掃描每個元祖,然后,曹總篩選出查詢所需要的屬性。
4. 數(shù)據(jù)索引
關系數(shù)據(jù)庫通常可以針對不同列構建復雜的多個索引,以提高數(shù)據(jù)訪問性能。與關系數(shù)據(jù)庫不同的是,HBase只有一個索引---行鍵,通過巧妙的設計,HBase中的所有方位方法,或者通過行鍵訪問,或者通過行鍵掃描,從而使得整個系統(tǒng)不會慢下來。
5. 數(shù)據(jù)維護
在關系數(shù)據(jù)庫中,更新操作會用zui新的當前值去替換記錄中原來的舊值,舊值被覆蓋后就不會存在。而在HBase中執(zhí)行更新操作時,并不會刪除數(shù)據(jù)舊的版本,而是生成一個新的版本,舊有的版本仍然保留。
6. 可伸縮性
關系數(shù)據(jù)庫很難實現(xiàn)橫向擴展,縱向擴展的空間也比較有限,相反,HBase和bigtable這些分布式數(shù)據(jù)庫就是為了實現(xiàn)靈活的水平擴展而開發(fā)的,能夠輕易地通過在冀全中增加或者減少硬件數(shù)量來實現(xiàn)性能的伸縮。
但是,相對于關系數(shù)據(jù)庫來說,HBase也有自身的局限性,如HBase不支持事務,因此,無法實現(xiàn)跨行的原子性。
