在 HBase 中,ColumnFamily TTL 的真正含义是什么?

In HBase what does ColumnFamily TTL really mean?

假设我们有 2 个 CF(CF1、CF2)。

假设 CF2 的 TTL 为一天,并且 CF2 有 2 个 ColumnQualifiers。

这是否意味着在主要压缩过程中,CF2 中任何早于一天的单元格都会被自动删除(只要 min-version == 0)?

我很困惑,因为在文档中他们一直引用行,不确定它们的意思...

根据我对文档的理解,行指的是列族中特定行键的一个版本。

VERSIONS - 要在列族中维护的行键的最大版本数。

TTL - 保留行键版本的持续时间

MIN_VERSIONS - 在任何时间点要维护的行键的最小版本数。

以上三点我想举例说明。比方说,您的 CF2 已配置为 VERSIONS = 100,TTL = 1Day,MIN_VERSIONS=3

因此,CF2 中的特定 rowKey 最多保留 100 个版本,如果没有版本 > 3,任何早于 1day 的版本将被主要压缩删除。这确保了记录的总是 3 版本那里有 CF2。