HBase是一個基于列族的NoSQL分布式數據庫,其存儲結構具有以下特點:
-
數據模型:
- 行鍵(Row Key):唯一標識一行數據,決定了數據在表中的物理存儲位置,并按字典序排序。
- 列族(Column Family):一組相關的列共享相同的命名空間和屬性,如時間戳、版本等,是HBase的核心概念。
- 列(Column):屬于特定列族的單元,由行鍵、列族名和列限定符(Qualifier)組成。
- 單元格(Cell):由行鍵、列族和列限定符確定,是HBase中最小的數據單元,存儲數據及其版本信息。
-
存儲結構:
- 表(Table):數據存儲的基本單位,由行鍵排序分割成多個Region。
- Region:分布式存儲和負載均衡的最小單元,隨著數據增加而分裂,分布在不同的RegionServer上。
- MemStore:內存級別的存儲區域,用于緩存最近訪問過的數據,提高隨機讀取速度。
- HFile:HBase的主要持久化文件格式,存儲在Hadoop的HDFS上,是MemStore數據序列化并壓縮后的二進制文件。
- HLog:WriteAheadLog,用于保證數據的安全性,在HRegionServer意外退出時,通過HLog恢復數據。
-
存儲特點:
- 稀疏性:對于為空(null)的列,并不占用存儲空間,表可以設計得非常稀疏。
- 高性能:通過內存緩存和LSM樹結構,實現了高效的隨機讀寫操作。
- 可擴展性:HBase設計為易于橫向擴展,通過增加服務器節點來提高存儲和計算能力。
- 高可靠性:數據存儲在Hadoop HDFS上,提供了數據的冗余備份和故障恢復機制。
HBase的存儲結構使其非常適合于需要處理大量數據、具有高讀寫負載的應用場景,如實時數據分析、日志處理等。