当前位置:   article > 正文

hbase 列族 版本数,TTL和二级索引_hbase最大版本数为什么是1

hbase最大版本数为什么是1

版本数量

最大版本数量

通过HColumnDescriptor为每个列族配置要存储的最大行数版本为最大版本默认值为1。这是因为在所描述的一个重要参数,数据模型部分的HBase也没有覆盖行的值,但每行而存储不同的值按时间(和限定)。在重要的压缩过程中删除多余的版本。最大版本的数量可能需要根据应用需求增加或减少。

不建议将最高版本数设置为极高的级别(例如,数百或更多),除非这些旧值对您非常重要,因为这会大大增加StoreFile大小。

最小版本数量

像行版本的最大数量一样,通过HColumnDescriptor为每个列族配置要保留的最小行数版本min版本的默认值为0,这意味着该功能被禁用。行版本参数的最小数量与生存时间参数一起使用,并且可以与行版本数量参数组合,以允许诸如“保留最后T分钟值数据,最多N个版本,但是至少保留M个版本 “(其中M是最小行数的值,M <N)。此参数只应在为列族启用生存时间时设置,并且必须小于行版本的数量。

生存时间(TTL)

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

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

最近的HBase版本也支持设置时间以每个单元为基础生存。

单元TTL处理和ColumnFamily TTL之间有两个显着的区别:

  • 单元TTL以毫秒为单位而不是秒。

  • 单元TTL不能将一个单元的有效生命周期延长超过ColumnFamily级TTL设置。

二级索引

过滤查询

根据具体情况,可能适合使用客户端请求过滤器在这种情况下,不会创建二级索引。但是,请不要在应用程序(如单线程客户端)上对这样的大表进行全面扫描。

定期更新二级索引

二级索引可以在另一个通过MapReduce作业定期更新的表中创建。该工作可以在一天内执行,但根据加载策略,它可能仍然可能与主数据表不同步。

双写二次索引

另一种策略是在将数据发布到集群时构建二级索引(例如写入数据表,写入索引表)。如果这是在数据表已经存在之后采取的方法,那么对于具有MapReduce作业的二级索引将需要引导

汇总表

在时间范围非常广泛的情况下(例如,长达一年的报告)以及数据量大的地方,总结表是一种常见的方法。这些将通过MapReduce作业生成到另一个表中。





声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/437260
推荐阅读
相关标签
  

闽ICP备14008679号