为什么无论我是否设置了{version=100},Hbase都只返回单元格的3版本 v=data.getValues(XP\U手机); 对于(int i=0;i

为什么无论我是否设置了{version=100},Hbase都只返回单元格的3版本 v=data.getValues(XP\U手机); 对于(int i=0;i,version,hbase,Version,Hbase,这是我使用的代码,电话号码应该是8或更多,但在提交put后,我只能在hbase shell中查看最新的3版本结果。为什么?以及如何修复它?创建表时,可以存储的最大版本数已设置。最大版本的默认值为3: 您可以更改现有表以更改最大版本数 使用hshell: v = data.getValues(XP_PHONE); for (int i = 0; i < v.length; i++) { put.add(COLFAM, COL_PHONE, i, Bytes.

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

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

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

使用hshell:

    v = data.getValues(XP_PHONE);
    for (int i = 0; i < v.length; i++) {
        put.add(COLFAM, COL_PHONE, i, Bytes.toBytes(v[i].trim()));
    }
你必须使用
public Get setMaxVersions(int-maxVersions)
获取更多版本或使用
setTimeStamp(长时间戳)

要设置要获取的版本,如果在列中插入相同的值10次并请求保留所有值的完整lit,默认情况下,您将只接收最后3个版本。这意味着您将只接收表架构中配置的内容

参考:Hbase权威指南

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