HBase 是 Hadoop 生态中的 NoSQL 数据库,基于 HDFS,支持海量数据的随机读写。适合什么场景?与 MySQL/MongoDB 有何不同?

一、HBase 的数据模型

  • 1.1 RowKey——行键,唯一标识
  • 1.2 Column Family——列族
  • 1.3 Column Qualifier——列名
  • 1.4 Timestamp——多版本
  • 1.5 与关系型数据库的对比

二、存储架构

  • 2.1 HMaster——管理节点
  • 2.2 RegionServer——数据节点
  • 2.3 Region——表的水平分片
  • 2.4 HFile——底层存储格式

三、RowKey 设计

  • 3.1 RowKey 是唯一索引
  • 3.2 热点问题——避免连续递增
  • 3.3 散列——加盐/反转
  • 3.4 业务查询决定 RowKey

四、基本操作

  • 4.1 Put——写入/更新
  • 4.2 Get——按 RowKey 查询
  • 4.3 Scan——范围扫描
  • 4.4 Delete——删除

五、适用场景

  • 5.1 海量数据随机读写
  • 5.2 时序数据存储
  • 5.3 推荐系统特征存储
  • 5.4 不适合的场景