赞
踩
通过HColumnDescriptor为每个列族配置要存储的最大行数版本。为最大版本默认值为1。这是因为在所描述的一个重要参数,数据模型部分的HBase也没有覆盖行的值,但每行而存储不同的值按时间(和限定)。在重要的压缩过程中删除多余的版本。最大版本的数量可能需要根据应用需求增加或减少。
不建议将最高版本数设置为极高的级别(例如,数百或更多),除非这些旧值对您非常重要,因为这会大大增加StoreFile大小。
像行版本的最大数量一样,通过HColumnDescriptor为每个列族配置要保留的最小行数版本。min版本的默认值为0,这意味着该功能被禁用。行版本参数的最小数量与生存时间参数一起使用,并且可以与行版本数量参数组合,以允许诸如“保留最后T分钟值数据,最多N个版本,但是至少保留M个版本 “(其中M是最小行数的值,M <N)。此参数只应在为列族启用生存时间时设置,并且必须小于行版本的数量。
ColumnFamilies可以以秒为单位设置TTL长度,一旦达到到期时间,HBase将自动删除行。这适用于所有版本的行 - 即使是当前版本。在该行的HBase中编码的TTL时间以UTC指定。
存储仅包含过期行的文件将在小型压缩中删除。设置hbase.store.delete.expired.storefile
为false
禁用此功能。将最小版本数设置为0以外的值也会禁用此功能。
单元TTL处理和ColumnFamily TTL之间有两个显着的区别:
单元TTL以毫秒为单位而不是秒。
单元TTL不能将一个单元的有效生命周期延长超过ColumnFamily级TTL设置。
根据具体情况,可能适合使用客户端请求过滤器。在这种情况下,不会创建二级索引。但是,请不要在应用程序(如单线程客户端)上对这样的大表进行全面扫描。
二级索引可以在另一个通过MapReduce作业定期更新的表中创建。该工作可以在一天内执行,但根据加载策略,它可能仍然可能与主数据表不同步。
另一种策略是在将数据发布到集群时构建二级索引(例如写入数据表,写入索引表)。如果这是在数据表已经存在之后采取的方法,那么对于具有MapReduce作业的二级索引将需要引导
在时间范围非常广泛的情况下(例如,长达一年的报告)以及数据量大的地方,总结表是一种常见的方法。这些将通过MapReduce作业生成到另一个表中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。