HBase note. Data Operations and Versions

目前只有四个操作:

get: 拿特定row

put: 插入多行新的rows或者更新已有的rows

scan: 获取指定table的指定attributes的rows

delete: 删除table中的某一行. HBase不会马上delete, 而是会在该行加入tombstones, 而这些rows会在major compaction中才被删除.

四个操作的操作对象都是Table


Versions

HBase中的版本是用timestamp表示, 是一个8个字节的long.

所以当对同一个row做很多次修改后, 会产生很多个rowkey, family, qualifier相同但仅版本号不同的cell.

版本号之间的排序按降序排序

所以每次读取row的值的时候都能保证拿到最新的版本

默认是版本数目不上限, 也可以人工设定保留的最多的版本数量, 也可以设置至少保留的版本数量

关于版本问题的更多有趣的小细节, 建议前往: Bending time in HBase 阅读


Versions and Operations

get, 在默认情况下只会拿最新的versions

但是可以指定, 指定拿最多几个versions, Get.setMaxVersions(), 或者指定区域的versions, Get.setTimeRange()

scan和get一样

put, 在默认情况下, 用当前的currentMilliionSeconds来确定version, 用户也可以自己设定version, 但不建议怎么做, 因为维护起来会有困难, 而且HBase的TimeToLive是根据这个vtimestamp来确定的.

delete: delete有三种版本, 1. delete一个column的某个指定version; 2. delete column, 删除一个column的所有versions; 3. delete family, 删除一个column family的所有columns.


Join

HBase不支持join, 但是不代表不能join, 需要用户自己根据使用需求进行实现




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值