HBase是一個基于Hadoop的分布式、可擴展、面向列的NoSQL數據庫,其數據存儲結構主要包括以下幾個關鍵組成部分:
HBase數據存儲結構
- Namespace(表命名空間):類似于關系型數據庫的database概念,用于將多個表分組管理。
- Table(表):由一個或多個列族組成,是數據的邏輯結構。
- Row(行):表中的每一行數據,由唯一的RowKey標識。
- Column(列):在HBase中,數據以列族為單位進行存儲,每個列族下可以有多個列限定符。
- Cell(單元格):由{RowKey, Column Family, Column Qualifier, Time Stamp}唯一確定,存儲實際的數據。
HBase的物理存儲結構
- Store(存儲):HRegion中的存儲單元,一個Region中的不同Store存儲不同的列簇。
- MemStore:Store中的存儲及預處理單元,數據寫入HBase表時,首先寫入MemStore。
- StoreFile:Store中的存儲單元,存的是對應列簇的數據。
- Hlog(Write-Ahead Log):記錄文件寫入,用于數據持久化和恢復。
HBase的數據模型特點
- 列式存儲:數據按列存儲,適合處理大量列數據。
- 稀疏性:表可以設計得非常稀疏,節省存儲空間。
- 多版本數據存儲:每個單元格可以保存多個版本的數據,支持數據版本回溯和數據恢復。
通過上述結構,HBase能夠高效地處理大規模數據集,并提供實時讀寫訪問的能力。