HBase的数据结构

对于HBase需要四个维度才能定义一个数据

  • RowKey
    • 类似于关系型数据库的ID
    • 用来唯一的标明对应列族的数据
    • 列族一般占用64K的数据长度,但是可以动态分配
    • RowKey会默认按照字典序进行排序(这也是将来优化的一个重点)
  • Timestamp
    • 时间戳,或者数据的版本
    • 不同的列族可以有不同的时间版本
    • 默认version使用当前系统时间的毫秒数
    • 也可以自定义version,但是需要考虑版本的设置策略防止出现出重复的版本
    • 因为Hbase的数据存放在HDFS上
    • HDFS不支持数据的修改,所以对于修改操作其实就是新增操作,
    • 然后不同的数据上有对应的时间戳,数据以时间戳为标准降序排列
    • 新插入的数据就会被优先查询到,根据用户设置的版本数据,保留有效的时间戳
    • 一般数据有两种清除的方式
      • 超过版本数
      • 超过存储的时间
  • Column Family
    • 可以把它作为有相同意义的列集合体
    • 通过列族才能找到对应的列
    • 一般项目中很少设计超过3个列族
    • 在创建表的时候必须预先给出列族
  • Qualifier
    • 就属于列族中的一个属性
    • 或者可以把它当做列族中的一个子列
    • 查询的时候,通过rowkey找到列族,通过列族在查找子列
  • Cell
    • 这就是我们通过4个维度最终定位的数据
    • 单元格由上面四个维度共同决定
    • 所有数据存储在HBase上都是无数据类型的,统一为字节数组

你可能感兴趣的:(大数据,#,HBase,Linux)