首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

HBase 鬆散資料儲存設計入門:資料模型、架構與寫入流程

     編輯:Oracle 資料庫基礎

什麼是鬆散資料?

介於 Key-Value 與關聯式資料列之間:需要多屬性儲存,但無複雜關聯查詢需求。傳統 RDBMS 過重、純 KV 又不足,HBase/BigTable 正是解決此類場景的方案。

邏輯資料模型

  • Row Key:列唯一識別碼。
  • Time Stamp:版本號,支援多版本保留。
  • Column:格式 <Family>:<Label>。Family 需 DDL 定義,Label 動態新增。

同一 Family 的資料物理鄰近存放,利於批次讀寫。

物理儲存模型

邏輯 Row 依 Column Family 拆分為多個 StoreFile(HFile),各自獨立壓縮、索引。

架構角色

寫入流程

  1. Client 寫入 → RegionServer。
  2. 並行寫入 MemStore (記憶體) 與 HLog (WAL)。
  3. MemStore 達閾值觸發 Flush → 生成不可變 HFile,清空 MemStore。
  4. HFile 採 B+Tree 索引,支援快速範圍查詢。

關鍵機制

  • Compaction:小 HFile 合併為大檔,減少讀放大。
  • Split:Region 過大自動切分;過小可 Merge。
  • Meta Table:記錄 Region 位置,Root Region 為入口。
  • Row 級原子性:單 Row 操作保證 ACID。

設計建議

  1. Row Key 設計均勻分散,避免熱點 Region。
  2. 依存取模式規劃 Column Family(共同讀寫的屬性歸同 Family)。
  3. 預估 MemStore 大小與 Flush 間隔,平衡記憶體與恢復時間。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
角色職責
HMaster管理 RegionServer、負載均衡、DDL、故障轉移(不儲存資料)
RegionServer服務一或多個 Region(Table 切分單位)
Region含 MemStore、HLog (WAL)、HFile (StoreFile)