hbase和RDBMS的區別

2021-08-10 00:03:07 字數 1613 閱讀 5421

一 hbase是個什麼東西? 

首先我們來看看兩個概念,面向

行儲存和面向

列儲存。面向行儲存,我相信大夥兒應該都清楚,我們熟悉的rdbms就是此種型別的,面向行儲存的資料庫主要適合於事務性要求嚴格場合,或者說面向行儲存的儲存系統適合oltp,但是根據cap理論,傳統的rdbms,為了實現強一致性,通過嚴格的acid事務來進行同步,這就造成了系統的可用性和伸縮性方面大大折扣,而目前的很多nosql產品,包括hbase,它們都是一種最終一致性的系統,它們為了高的可用性犧牲了一部分的一致性。好像,我上面說了面向列儲存,那麼到底什麼是面向列儲存呢?hbase,casandra,bigtable都屬於面向列儲存的分布式儲存系統。看到這裡,如果您不明白hbase是個啥東西,不要緊,我再總結一下:

hbase是乙個面向列儲存的分布式儲存系統,它的優點在於可以實現高效能的併發讀寫操作,同時hbase還會對資料進行透明的切分,這樣就使得儲存本身具有了水平伸縮性。

二 hbase資料模型 

hbase,cassandra的資料模型非常類似,他們的思想都是**於google的

bigtable

,因此這三者的資料模型非常類似,唯一不同的就是cassandra具有super cloumn family的概念,而hbase目前我沒發現。

在hbase裡面有以下兩個主要的概念,

row key,column family

,我們首先來看看column family,column family中文又名「列族」,column family是在系統啟動之前預先定義好的,每乙個column family都可以根據「限定符」有多個column。

之前說的row key是啥東西,其實你可以理解row key為rdbms中的某乙個行的

主鍵,但是因為hbase不支援條件查詢以及order by等查詢,因此row key的設計就要根據你系統的查詢需求來設計了。

三 hbase的優缺點 

1 列的可以動態增加,並且列為空就不儲存資料,節省儲存空間.

2 hbase自動切分資料,使得資料儲存自動具有水平scalability.

3 hbase可以提供高併發讀寫操作的支援

hbase的缺點:

1 不能支援條件查詢,只支援按照row key來查詢.

2 暫時不能支援master server的故障切換,當master宕機後,整個儲存系統就會掛掉.

四.補充

1.資料型別,hbase只有簡單的

字元型別

,所有的型別都是交由使用者自己處理,它只儲存字串。而關聯式資料庫有豐富的型別和儲存方式。

2.資料操作:hbase只有很簡單的插入、查詢、刪除、清空等操作,表和表之間是分離的,

沒有複雜的表和表之間的關係

,而傳統資料庫通常有各式各樣的函式和連線操作。  

3.儲存模式:hbase是基於

列儲存的,每個列族都由幾個檔案儲存,不同的列族的檔案時分離的。而傳統的關係型資料庫是基於**結構和行模式儲存的 

4.資料維護,hbase的更新操作不應該叫更新,它實際上是插入了新的資料,而傳統資料庫是替換修改

5.可伸縮性,hbase這類分布式資料庫就是為了這個目的而開發出來的,所以它能夠輕鬆增加或減少硬體的數量,並且對錯誤的相容性比較高。而傳統資料庫通常需要增加中間層才能實現類似的功能

HBase和RDBMS的區別

1沒有真正的索引 行是順序儲存的,每行中的列也是,所以不存在索引膨脹問題,而且插入效能和表的大小無關。2自動分割槽 在表增長的時候,表會自動 成區域,並分布到可用的節點上。線性擴充套件和對新節點的自動處理 增加乙個節點,把它指向現有集群並執行regionserver。3區域自動重新進行平衡,負載均勻...

HBase與RDBMS的區別

此討論並不侷限於hbase,也會延伸到mongodb和cassandra這樣的nosql資料庫。1 rdbms rdbms有以下特點 面向檢視 rdbms表使用固定的檢視,表中的資料型別也會事先定義。表的檢視在建立時就已經定義,並且不容易修改。向檢視中新增元素的操作會以新建表的形式實現,這一操作會在...

RDBMS與NOsql的區別

關係型資料庫 關係型資料庫,是指採用了關係模型來組織資料的資料庫。關係模型是在1970年由ibm的研究員e.f.codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。簡單來說,關係模型指的就是二維 模型,而乙個關係型資料庫就是由二維表及其之間的聯...