CGFT《大數(shù)據(jù)技術(shù)原理與應(yīng)用》中HBase與傳統(tǒng)關(guān)系數(shù)據(jù)庫的對比分析,今天小編帶大家一起學(xué)習(xí)。
數(shù)據(jù)庫從20世紀(jì)70年代發(fā)展到今天,已經(jīng)是一種*成熟穩(wěn)定的數(shù)據(jù)庫管理系統(tǒng),通常具備的功能包括面向磁盤的存儲和索引結(jié)構(gòu)、多線程訪問、基于鎖的同步訪間機(jī)制、基于日志記錄的恢復(fù)機(jī)制和事務(wù)機(jī)制等。
但是,隨著Web2.0應(yīng)用的不斷發(fā)展,傳統(tǒng)的關(guān)系數(shù)據(jù)庫已經(jīng)無法滿足Web2.0的需求,無論在數(shù)據(jù)高并發(fā)方面,還是在高可擴(kuò)展性和高可用性方面,傳統(tǒng)的關(guān)系數(shù)據(jù)庫都顯得力不從心,關(guān)系數(shù)據(jù)庫的關(guān)鍵特性——完善的事務(wù)機(jī)制和高效的查詢機(jī)制,在eb2.0時代也成為“雞肋”。包括HBase在內(nèi)的非關(guān)系型數(shù)據(jù)庫的出現(xiàn),有效彌補(bǔ)了傳統(tǒng)關(guān)系數(shù)據(jù)庫的缺陷,在Web2.0應(yīng)用中得到了大量使用。
HBase與傳統(tǒng)的關(guān)系數(shù)據(jù)庫的區(qū)別主要體現(xiàn)在以下幾個方面。
數(shù)據(jù)類型。關(guān)系數(shù)據(jù)庫采用關(guān)系模型,具有豐富的數(shù)據(jù)類型和存儲方式,HBase則采用了更加簡單的數(shù)據(jù)模型,它把數(shù)據(jù)存儲為未經(jīng)解釋的字符串,用戶可以把不同格式的結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)都序列化成字符率,保存到HBase中,用戶需要自己編寫程序把字將半解析成不同的數(shù)據(jù)類型。
數(shù)據(jù)操作、關(guān)系數(shù)假庫中包含了豐富的操作,如插入、刪除、更新、查詢等、其中會涉及復(fù)雜的多表連接,通常是借助于多個表之間的主外鍵關(guān)聯(lián)來實(shí)現(xiàn)的。HBase操作則不存在復(fù)雜的表與表之間的關(guān)系、只有簡單的輔入、查詢、刪除、清空等、因?yàn)镠Base在設(shè)計(jì)上就避免了復(fù)雜的表和表之間的關(guān)系,通常只采用單表的主鍵查詢,所以,它無法實(shí)現(xiàn)像關(guān)系數(shù)據(jù)庫中那樣的表和表之間的連接操作。
存儲模式。關(guān)系數(shù)據(jù)庫是基于行模式存儲的,元組或行會被連續(xù)地存儲在磁盤頁中。在讀取數(shù)據(jù)時、需要順序掃描每個元組、然后、從中篩選出查詢所需要的屬性。如果每個元組只有少量屬性的值對于查詢是有用的、那么基于行模式存儲就會浪費(fèi)許多做做空間和內(nèi)存管寬。
HBase是基于列存儲的,每個列族都由幾個文件保存,不同列族的文件是分離的,它的優(yōu)點(diǎn)是:
可以降低10開銷、支持大量并發(fā)用戶查詢、因?yàn)閮H需要處理可以回答這些查詢的列,而不需要處理與查詢無關(guān)的大量數(shù)據(jù)行;同一個列族中的數(shù)據(jù)會被一起進(jìn)行壓縮,由于同一列族內(nèi)的數(shù)據(jù)相似度較高,因此,可以獲得較高的數(shù)據(jù)壓縮比。
數(shù)據(jù)索引。關(guān)系數(shù)據(jù)庫通??梢葬槍Σ煌袠?gòu)建復(fù)雜的多個索引,以提高數(shù)據(jù)訪問性能與關(guān)系數(shù)據(jù)庫不同的是,HBase只有一個索引——行鍵,通過巧妙的設(shè)計(jì),HBase中的所有請問方法,或者通過行鍵訪問,或者通過行鍵掃描,從而使得整個系統(tǒng)不會慢下來,由于HBase位于Hadoop框架之上,因此,可以使用Hadoop MapReduce來快速,高效地生成索引表。
數(shù)據(jù)維護(hù)。在關(guān)系數(shù)據(jù)庫中,更新操作會用*的當(dāng)前值去替換記錄中原來的舊值,舊信被覆蓋后就不會存在。而在HBase中執(zhí)行更新操作時,并不會刪除數(shù)據(jù)舊的版本,而是生成一個新的版本,舊有的版本仍然保留。
可伸縮性。關(guān)系數(shù)據(jù)庫很難實(shí)現(xiàn)橫向擴(kuò)展,縱向擴(kuò)展的空間電比較有限,相反,HBase和BigTable這些分布式數(shù)據(jù)庫就是為了實(shí)現(xiàn)靈活的水平擴(kuò)展面開發(fā)的,能夠輕易地通過在集群中增加或者減少硬件數(shù)量來實(shí)現(xiàn)性能的伸縮。
但是,相對于關(guān)系數(shù)據(jù)庫來說,HBase也有自身的局限性,如HBase不支持事務(wù),因此,無法實(shí)現(xiàn)跨行的原子性。
學(xué)習(xí)交流群(掃碼免費(fèi)加群)
- 1、新手入門
- 2、學(xué)習(xí)資料
- 3、免費(fèi)課程
- 4、考試動態(tài)
- 5、備考干貨
- 6、答疑沖刺