首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在HBase设置行TTL

在HBase设置行TTL
EN

Stack Overflow用户
提问于 2016-02-20 19:16:58
回答 1查看 3.9K关注 0票数 2

我正试图在Hbase将TTL设置为一行。我无法将TTL设置为列族,因为该表已经存在,并且无法更改该表。

我尝试的是在Put操作中使用setTTL函数。但这似乎不起作用,因为即使时间已经过去,当我对表进行扫描操作时,信息仍然存在。

如果我在函数中放一个负值,我在表中没有任何数据,我认为这是有意义的,因为我使用的是负的ttl,因此数据根本不被存储.

( 1)你认为我在使用适当的函数吗?

2)是否有一种方法可以在HBase中查看此信息(一行的TTL值)?

编辑:这里是一个描述命令的输出(请提醒我不能更改列族的TTL值):

代码语言:javascript
运行
复制
hbase(main):010:0> describe "Snapshot"
Table Snapshot is ENABLED
Snapshot, {CONFIGURATION => {'KeyPrefixRegionSplitPolicy.prefix_length' => '8', 'SPLIT_POLICY' => 'org.apache.hadoop.hbase.regionserver.KeyPrefixRegionSplitPolicy'}}
COLUMN FAMILIES DESCRIPTION
{NAME => 'metadata', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'GZ', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
{NAME => 'sample', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'GZ', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}

Edit2: --我想我可能在HBase 1.0.0版本中遇到了一个bug或一些奇怪的地方,因为TTL在大多数情况下都是按预期工作的。但是如果我设置它,在它到期之前,我在表中强制分割,我发现TTL将不再起作用。这就像在拆分过程中没有维护Cell值一样。我发现它以前对我不起作用,因为我的TTL是不起作用的。一天后,我在那段时间里发生了一些分裂的事件。

我将在其他版本中验证这种行为,如果我发现了新的东西,请告诉您。

EN

Stack Overflow用户

发布于 2016-02-22 09:27:03

列族中的MIN_VERSION参数是什么?正如这里提到的,如果它是1,hbase保持值即使是ttl已经过期。

http://comments.gmane.org/gmane.comp.java.hadoop.hbase.user/44036

(谢谢你的提问,我今天学到了新的东西:)

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35527840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档