為什麼說HBase是列式資料庫?

時間 2021-05-11 09:59:12

1樓:向上的蝸牛

不是列資料庫。 準確說Hbase 是面向列族+(kv)儲存。在實際場景中,列族幾乎都是當作表來使用。 和greenplum 那些列式儲存差別很大。

2樓:陳葉超

HBase 準確說應該是kv資料庫,每個列與rowkey,時間戳等組成乙個kv,列式資料庫的說法可能原因是HBase是把不同列族的資料放在一起,所以被誤解為列資料庫了。

3樓:要早睡的Zzzy

Hbase本質上是源自google bigtable的。每個列族中,一行的所有列都是和行主鍵一起儲存的,而且不使用列壓縮。這類bigtable的模型主要還是面向行的。

比如還有cassandra。

4樓:大資料技術架構

HBase 是面向列族的 NoSQL資料庫,不能歸為「列式資料庫」。HBase 其實更像是行式資料庫 ,這一點社群有相關介紹

5樓:DinGYun

其實HBase 不是列式儲存資料庫

不管是儲存在記憶體的 MemStore,還是儲存在 HDFS 上的 HFile,其都是基於 LSM(Log-Structured Merge-Tree)結構儲存的。(一整行資料在磁碟結構上是在一起的,更新時可能不在一起)

而列式資料庫在磁碟結構上是一列一列列儲存的,一整行資料在磁碟結構上一般不在一起

6樓:

有點冷門,因為從典型的關係型資料庫來看,他並不是乙個列式儲存的資料庫(但實際會認為他是列式儲存資料庫),但是因為 HBase 利用了磁碟上的列式儲存格式,這也是關係型資料庫和 HBase 最大的區別,因為 HBase 以列式儲存的格式在磁碟上儲存資料。

但它與傳統的列式資料庫有很大的不同,傳統的列式資料庫比較適合實時儲存資料的場景,HBase 比較適合鍵值對的訪問,或有序的資料訪問。

7樓:冰封

Hbase的儲存方式就決定了列資料庫!!

1、儲存方式:在HBase中,Key-Value是最小的儲存單元。每乙個Key-Value對應乙個列,Value對應於乙個列的列值。

2、Rowkey作用:而且HBase是根據Rowkey來進行檢索的(索引),系統通過找到某個Rowkey所在的Region,然後將查詢資料的請求路由到該Region獲取資料。

所以設計Rowkey就決定了未來你的查詢效能

3、hbase為什麼叫列式儲存

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

舉個例子吧,概念說多了也不直觀,如下:

1)Mysql結構化資料:你要指定乙個表user,你必須預先定義好各個字段,姓名、年齡、ID。後期要擴充套件新字段麻煩

2)Hbase列式儲存:你只要設計好rowKey,定義好列簇,至於裡面什麼屬性,有多少字段型別,無需預先定義好,擴充套件性極佳,需要的列欄位可以不停的增加。

也許前期你就姓名、年齡、ID三個字段,未來你隨時可以儲存第四個字段,第五個字段,第n個字段到你的列簇裡,因為同乙個列簇中的所有資料都儲存在乙個檔案裡。

開源列式記憶體資料庫MonetDB有成功的商業應用嗎?

我在用,壓縮上不夠info bright,但是速度槓槓的,infobright估計執行的時候要解壓所,所以跑起來比monetdb慢一點,大家都是列儲存,monetDB還繼續發展,而info bright停止開源了,因此,更看好monetDB。 利益相關,在MonetDB 組訪問過三個月。華麗的分割線...

什麼是資料庫事務?

大資料流動 事務是資料庫系統中的重要概念。但是事務理解起來非常的抽象,所以我們舉個栗子 轉賬是生活中常見的操作,比如從A賬戶轉賬100元到B賬號。站在使用者角度而言,這是乙個邏輯上的單一操作,然而在資料庫系統中,至少會分成兩個步驟來完成 1.將A賬戶的金額減少100元 2.將B賬戶的金額增加100元...

為什麼雲上資料庫網路是瓶頸,amazon aurora採用存算分離架構,解決網路問題,提高效能

羽凡 儲存計算分離不是為了解決網路問題 儲存計算分離好處有很多,例如 更加Cloud Native,計算節點不儲存資料,可以更方便的擴縮容,更加彈性。增加計算節點速度更快而不需要像MySQL增加從庫一樣同步資料。計算節點更加關注業務,不需關注底層儲存。確實可以一定程度解決傳統MySQL增加節點資料冗...