Hbase的TTL字段超时设置测试
来源:互联网 发布:何以知之的以 编辑:程序博客网 时间:2024/05/22 18:33
在工作中,很多时候需要对表字段进行限定,例如限定一列的超时时间等。
今天就总结一下:
1. 做Hbase表做更改前,首先要disable 这个表,否则记录会丢失。
首先,我们建立一个测试表test,有一个列簇fa
hbase(main):111:0> describe 'test'
DESCRIPTION ENABLED
'test', {NAME => 'fa', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTE true
R => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSI
ON => 'NONE', MIN_VERSIONS => '0', TTL => '2147483647', KEEP_DELETED_CE
LLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOC
KCACHE => 'true'}
1 row(s) in 0.0770 seconds
表默认的TTL超时时间为:TTL => '2147483647' 大约596523.2352777778小时=24855.13天=69.04年
也就是说从最后一次更新的记录应该69.04年才会自动失效。
那么对于某些列,我存储一段时间后,需要该列值失效。那如何设置?下面我们做一个测试:
我们先向test表中插入一下记录:
1 2014-11-11 14:09:40
2 2014-11-12 14:09:40
3 2014-11-13 14:09:40
4 2014-11-14 14:09:40
5 2014-11-15 14:09:40
hbase(main):082:0> put 'test',1,'fa:uptime','2014-11-11 14:09:40'
。。。。。。。。。。。。。
hbase(main):123:0> scan 'test'
ROW COLUMN+CELL
1 column=fa:uptime, timestamp=1415688066815, value=2014-11-11 14:09:40
2 column=fa:uptime, timestamp=1415688082648, value=2014-11-12 14:09:40
3 column=fa:uptime, timestamp=1415688092101, value=2014-11-13 14:09:40
4 column=fa:uptime, timestamp=1415688101473, value=2014-11-14 14:09:40
5 column=fa:uptime, timestamp=1415688115318, value=2014-11-15 14:09:40
5 row(s) in 0.0400 seconds
我们修改过期时间为200s 查看记录
hbase(main):126:0> disable 'test' //修改表前,需要先disable 表
hbase(main):114:0> alter "test",NAME=>'fa',TTL=>'200' //修改表的列簇超时时间为200s
hbase(main):114:0> enable "test" //使表可用,以供查询
hbase(main):129:0> scan 'test' //此时查询时,表中原来的5条,记录均存在,接下来我们更新其中一条。再查看。
ROW COLUMN+CELL
1 column=fa:uptime, timestamp=1415688066815, value=2014-11-11 14:09:40
2 column=fa:uptime, timestamp=1415688082648, value=2014-11-12 14:09:40
3 column=fa:uptime, timestamp=1415688092101, value=2014-11-13 14:09:40
4 column=fa:uptime, timestamp=1415688101473, value=2014-11-14 14:09:40
5 column=fa:uptime, timestamp=1415688115318, value=2014-11-15 14:09:40
5 row(s) in 0.0420 seconds
由于200s时间很短,我们选择跟新第三条记录:跟新为:3 2014-11-16 14:09:40
hbase(main):130:0> put 'test',3,'fa:uptime','2014-11-16 14:09:40'
0 row(s) in 0.0200 seconds
更新后再去查看,发现表中的记录只剩下一条了:也就是我们最后跟新的这条。为什么后面的会消失呢,是因为,变测试变写博客,200s时间稍短,更新第三条,记录后,写过博客再去查看,此时就连第5条记录也过期了。
hbase(main):131:0> scan 'test'
ROW COLUMN+CELL
3 column=fa:uptime, timestamp=1415688323548, value=2014-11-16 14:09:40
1 row(s) in 0.0140 seconds
再过200后查看,表中的记录数为空,所有的记录都超时,被删除。
总结:测试说明,我们可用对hbase的某些列簇,做一些高级设置,例如超时,压索,等设置。注意在设置之前需要先disable表,否则,表中记录会被清空。
另外,TTL=>的更新超时时间是指:该列最后更新的时间,到超时时间的限制,而不是第一次创建,到超时时间。
- Hbase的TTL字段超时设置测试
- Hbase的TTL字段超时设置测试
- Hbase的TTL字段超时设置测试
- Hbase的TTL字段超时设置测试
- hbase 设置TTL释放空间
- 修改HBase表的TTL
- HBase Table的version和TTL实践
- hbase + 青云测试 ttl + 大合并 后 磁盘容量缩小
- hbase 客户端超时、重连设置
- hbase 客户端超时、重连设置
- HBase中的TTL应用
- VLC设置串流的TTL值
- couchbase 设置ttl失效的bug
- 简单的超时设置
- connect的超时设置
- 设置recv的超时
- 设置recv的超时
- 设置recv的超时
- Linux下用于查看系统当前登录用户信息的4种方法
- 全文检索之sphinx源码分析--索引创建流程
- 数据库设计中的范式规范
- ZooKeeper集群安装后无法启动ZooKeeper JMX enabled by default
- XtraBackup应用说明(支持TokuDB)
- Hbase的TTL字段超时设置测试
- 设计模式之禅笔记--面向对象设计六大原则之五
- 专题六-最小生成树
- sdut 数据结构实验之栈:行编辑器
- 学习SpringMVC——数据绑定和类型转换
- 孤儿进程,僵尸进程,守护进程的剖析
- 使用css动画样式库
- 字符串问题---找到被指的新类型字符
- 8月23日训练笔记