CGFT大數(shù)據(jù)原理中HBase與傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)的對(duì)比?關(guān)系數(shù)據(jù)庫(kù)從20世紀(jì)70年代發(fā)展到今天,已經(jīng)是一種*成熟穩(wěn)定的數(shù)據(jù)庫(kù)管理系統(tǒng),通常具備的功能包括面向磁盤的存儲(chǔ)和索引結(jié)構(gòu)、多線程訪問(wèn)、基于鎖的同步訪間機(jī)制、基于日志記錄的恢復(fù)機(jī)制和事務(wù)機(jī)制等。

HBase與傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)的區(qū)別主要體現(xiàn)在以下幾個(gè)方面。

數(shù)據(jù)類型。

關(guān)系數(shù)據(jù)庫(kù)采用關(guān)系模型,具有豐富的數(shù)據(jù)類型和存儲(chǔ)方式,HBase則采用了更加簡(jiǎn)單的數(shù)據(jù)模型,它把數(shù)據(jù)存儲(chǔ)為未經(jīng)解釋的字符串,用戶可以把不同格式的結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)都序列化成字符率,保存到HBase中,用戶需要自己編寫程序把字將半解析成不同的數(shù)據(jù)類型。

存儲(chǔ)模式。

關(guān)系數(shù)據(jù)庫(kù)是基于行模式存儲(chǔ)的,元組或行會(huì)被連續(xù)地存儲(chǔ)在磁盤頁(yè)中。在讀取數(shù)據(jù)時(shí)、需要順序掃描每個(gè)元組、然后、從中篩選出查詢所需要的屬性。如果每個(gè)元組只有少量屬性的值對(duì)于查詢是有用的、那么基于行模式存儲(chǔ)就會(huì)浪費(fèi)許多做做空間和內(nèi)存管寬。

數(shù)據(jù)索引。

關(guān)系數(shù)據(jù)庫(kù)通常可以針對(duì)不同列構(gòu)建復(fù)雜的多個(gè)索引,以提高數(shù)據(jù)訪問(wèn)性能與關(guān)系數(shù)據(jù)庫(kù)不同的是,HBase只有一個(gè)索引——行鍵,通過(guò)巧妙的設(shè)計(jì),HBase中的所有請(qǐng)問(wèn)方法,或者通過(guò)行鍵訪問(wèn),或者通過(guò)行鍵掃描,從而使得整個(gè)系統(tǒng)不會(huì)慢下來(lái),由于HBase位于Hadoop框架之上,因此,可以使用Hadoop MapReduce來(lái)快速,高效地生成索引表。

數(shù)據(jù)維護(hù)。

在關(guān)系數(shù)據(jù)庫(kù)中,更新操作會(huì)用*的當(dāng)前值去替換記錄中原來(lái)的舊值,舊信被覆蓋后就不會(huì)存在。

可伸縮性。

關(guān)系數(shù)據(jù)庫(kù)很難實(shí)現(xiàn)橫向擴(kuò)展,縱向擴(kuò)展的空間電比較有限,相反,HBase和BigTable這些分布式數(shù)據(jù)庫(kù)就是為了實(shí)現(xiàn)靈活的水平擴(kuò)展面開(kāi)發(fā)的,能夠輕易地通過(guò)在集群中增加或者減少硬件數(shù)量來(lái)實(shí)現(xiàn)性能的伸縮。