Hbase TTL(Time To Live)详解

一、概念解析:TTL:time to live,存活时间

二、Hbase TTL设置的两种方式:

  1) ColumnFamily TTL

  2) Cell TTL

三、ColumnFamily TTL详解

  create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 30, BLOCKCACHE => true},{NAME => 'f2',VERSIONS => 1,BLOCKCACHE => true}

  解析:

    f1列簇下的所有cell的存活时间为30秒,从最后一次更新开始计时

    f2列簇下的所有cell的存活时间为默认值,TTL => 'FOREVER'

  实例演示:

    1、创建测试使用的表

      create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 30, BLOCKCACHE => true},{NAME => 'f2',VERSIONS => 1,BLOCKCACHE => true}

    2、插入数据

      put 't1','0001', 'f1:name','123'

      put 't1','13954059087', 'f2:name','123'

    3、查看表数据

      

    4、30秒之后查看

      

    5、修改 VERSIONS => 3,查看效果

      disable 't1'

      alter 't1',NAME => 'f1',VERSIONS => 3

      enable 't1'

      describe 't1'

      添加数据:

      put 't1','0001', 'f1:name','1'

      put 't1','0001', 'f1:name','2'

      put 't1','0001', 'f1:name','3'

     插入三条数据稍微存在一点间隔,便于发现规律,我们这里设置TTL为30秒(间隔略短,为了测试方便)

        执行语句:

      get 't1','0001',{COLUMN=>'f1:name',VERSIONS=>3}

    

   

四、Cell TTL详解  

        1.0.0, 0.98.9版本及以后可以使用这个特性。

  

    val put = new Put(Bytes.toBytes(keyPhone))
    put.addColumn(Bytes.toBytes(Constants.TB_HBASE_FAMILY), Bytes.toBytes(colName), Bytes.toBytes(colValue.toString))
    put.setTTL(0L)  // 在这里可以使设置,Cell TTL

  查看源码这个值,是通过Mutation来设置的。
    public Mutation setTTL(long ttl) {
setAttribute(OP_ATTRIBUTE_TTL, Bytes.toBytes(ttl));
return this;
}

 

五、 总结

  ColumnFamily TTL和 Cell TTL的区别:

  1)时间单位的区别:

    ColumnFamily TTL的时间单位是:秒

         Cell TTL的时间单位是:毫秒

  2)优先级的问题:

    Cell TTL设置的值,优先于ColumnFamily TTL的值,但是需要注意的是,Cell TTL不能大于ColumnFamily TTL的值。

  如果使用ColumnFamily TTL,则TTL值对该列簇下面的所有列,都起作用,包括多版本的值。Cell TTL针对当前列起作用。

转载于:https://www.cnblogs.com/dreamfor123/p/8806351.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值