小記--------hbase數據庫介紹及存儲方式


一、Hbase基本原理

1hbase基本介紹

HBASE是一個分布式的,面向列的開源數據庫。Hbase的存儲是基於hadoop的。因為Hadoop實現了一個分布式文件系統(HDFS),基於hadoop意味着hbase與生俱來的超強的擴展性和吞吐量,hbase采用的是keyvalue的存儲方式。意味着即使隨着數據量增大,也幾乎不會導致查詢的性能下降。

 

 

 

2、hbase存儲方式

hbase將數據按列簇分別存儲,而並非簡單的列式存儲;首先了解幾個概念:行式存儲、列式存儲、列簇式存儲。

 

A.行式存儲:會將一行數據存儲在一起,一行數據寫完之后再接着寫下一行數據。eg:mysql等關系型數據庫;

行式存儲在獲取一行數據時很高效,但是如果某個查詢只需要讀取表中指定列對應的數,那么行式存儲會先取出一行行的數據,再在每一行數據中截取待查找目標列。因此會導致大量的內存占用

 

B.列式存儲:列式存儲理論上會將一列數據存儲在一起,不同列的數據分別接種存儲。eg:kudu 、 parquet on HDFS;

列式存儲查找與行式存儲,恰恰相反,對於只查找某些列數據的請求非常高效,但是對於獲取一行的請求就比較差; 

因為同一列的數據通常都具有相同的數據類型,因此列式存儲具有天然的高壓縮特性

 

C.列簇式存儲:列簇式存儲介於行式存儲和列式存儲之間;如果一張表只設置一個列簇,這個列簇包含所有的列,hbase中一個列簇的數據是存儲在一起的,因此這種設計模式就等同於行式存儲;如果一張表的每一列都屬於一個唯一的列簇,那么就相當於列式存儲。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM