ColumnFamilies 可以设置 TTL 长度(以秒为单位),HBase 将在到达到期时间后自动删除行。这适用于 _ 行的所有 _ 版本 - 即使是当前版本。在 HBase 中为行编码的 TTL 时间以 UTC 指定。

在次要压缩时删除仅包含过期行的存储文件。将hbase.store.delete.expired.storefile设置为false将禁用此功能。将最小版本数设置为 0 以外也会禁用此功能。

有关详细信息,请参阅 HColumnDescriptor

最新版本的 HBase 还支持按每个单元格设置生存时间。有关详细信息,请参阅 HBASE-10560 。使用 Mutation#setTTL 将细胞 TTL 作为突变请求(Appends,Increments,Puts 等)的属性提交。如果设置了 TTL 属性,则它将应用于操作在服务器上更新的所有单元。细胞 TTL 处理和 ColumnFamily TTL 之间存在两个显着差异:

  • Cell TTL 以毫秒而不是秒为单位表示。

  • 细胞 TTL 不能延长细胞的有效寿命超过 ColumnFamily 水平 TTL 设置。