为什么Hbase只为单元格返回3个版本,无论我是否设置{VERSION = 100}

时间:2011-11-05 00:36:43

标签: version hbase

    v = data.getValues(XP_PHONE);
    for (int i = 0; i < v.length; i++) {
        put.add(COLFAM, COL_PHONE, i, Bytes.toBytes(v[i].trim()));
    }

这是我使用的代码,电话号码应该是8或者更多,但是在提交了put之后,我只能在hbase shell中查看最新的3版本结果。为什么?以及如何解决它?

3 个答案:

答案 0 :(得分:6)

创建表时,设置可存储的最大版本数。最大版本的默认值为3:

http://hbase.apache.org/book/schema.versions.html

您可以更改现有表格以更改最大版本数。

使用hshell:

hbase> alter 'table_foo', {NAME => 'column_fam_foo', VERSIONS => 100}

答案 1 :(得分:0)

你必须使用 public Get setMaxVersions(int maxVersions) 获得更多版本或使用 setTimeStamp(long timestamp) 设置您想要的版本

答案 2 :(得分:0)

如果您向列中插入10次相同的值并请求完全点亮所有保留的值,则默认情况下您只会收到最后3个版本。这意味着您只会收到表架构中配置的内容。

参考:Hbase权威指南