在 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。
假设我们有 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。