我正在将 TTL 用于我参与的项目。我了解该功能,当我执行扫描时,我不会取回过期的数据。我只是想知道过期数据(在主要压缩之间)的性能影响是什么。我们有 10 分钟的 TTL,并且收集了很多数据(并且已过期),所以我想知道使用 TTL 是否是正确的方法,或者可能使用时间戳作为密钥的一部分并进行实际上不包括的扫描过期范围。
问问题
696 次
1 回答
0
您可以在扫描中使用 HBase 过滤器来过滤掉 HBase 服务器端的过期行。从记忆中,我不记得单元格时间戳是否可以用作过滤器表达式的一部分。
- 如果是,您可以直接将它们与任何过滤器一起使用(我认为可能没有过滤器)。
- 如果没有,您可以将时间戳列添加到列族,然后使用ValueFilter过滤出时间戳小于或等于阈值时间戳的行。此选项存储冗余时间戳,但如果它允许您使用过滤器,那将是一个不错的权衡。
您绝对不应该选择的一件事是使用看起来像"{timestamp}{other data}"
. 这将使您的 HBase 表像一个巨大的队列一样工作,这会降低性能。
于 2013-05-01T17:35:08.040 回答