如何更新HBase中的现有列值

时间:2014-05-18 13:24:40

标签: java hbase

我有以下插入声明。

Put put = new Put(UserId.getBytes(charSet));
put.add("Actor".getBytes(charSet), "Verified".getBytes(charSet),Bytes.toBytes(verified));       
put.add("Actor".getBytes(charSet), "UtcOffset".getBytes(charSet),Bytes.toBytes(utcOffset));
put.add("Actor".getBytes(charSet), "PreferredUsername".getBytes(charSet),preferredUserName.getBytes(charSet));  
table.put(put);

现在我想用new preferredUsername更新插入值preferredUserName。 请帮帮我

1 个答案:

答案 0 :(得分:5)

在HBase中,您可以分别更新不同列限定符中的值,并且一个列限定符中的旧值将被新值“遮蔽”。严格来说,新值形成一个新版本,默认情况下,如果未在Get / Scan中指定时间戳,则始终获取最新版本。

所以只需将新的preferredUsername“Put”到“PreferredUsername”列限定符中。

Put put = new Put(UserId.getBytes(charSet));
put.add("Actor".getBytes(charSet), "PreferredUsername".getBytes(charSet),newPreferredUserName.getBytes(charSet));  
table.put(put);

这将“shadow”插入preferredUserName,其中newPreferredUserName为“UserId”行。