HBase:列族TTL

And*_*rea 3 hbase ttl

根据HBase规范:

"ColumnFamilies可以设置TTL长度(以秒为单位),HBase会在到达到期时间后自动删除行.这适用于行的所有版本 - 甚至是当前版本.在行的HBase中编码的TTL时间在世界标准时间."

特别是我不理解的是这句话"一旦达到到期时间"......什么?所有版本的所有细胞?一个单元格的至少一个版本?

假设我的表有一个TTL设置为X的列族.

  • 我正在插入一个时间戳为1的单元格:这一行的到期日期是多少?1 + X?
  • 接下来,我正在插入另一个单元格(使用相同的行键)和时间戳2:整行的到期日期是多少?还是1 + X或2 + X?

Ian*_*ley 10

这似乎是HBase参考指南中的拼写错误.它应该说"细胞",而不是"行"; 除了单元格的时间戳之外,行没有内置时间戳.

  • @Andrea 我亲自测试了它,将 TTL 设置为 60 秒,每 10 秒向一个单元格插入 6 个值,发现它们逐渐被删除——每 10 秒一个一个地删除。 (2认同)