增加版本化的HBase中的列值

时间:2016-07-08 21:25:15

标签: hbase

我有一个HBase表“t”,列族“f”,版本为2

create 't', {NAME => 'f', VERSIONS => 2}

我在这个表中有一行,键是'r1',我有一个'c1'列,其中2个版本加上时间戳,其值如下

put 't','r1','f:c1', 1, 12345678
put 't','r1','f:c1', 2, 12345679

现在我想将版本时间戳“12345678”的f.c1增加10.这是HBase中的一个可能的操作。我检查了文档,但没有找到任何文档。

有什么建议吗?我不想先读取然后回写因为可能有多个线程更新此列并且存在大量数据,因此2个操作(获取然后放置)不是一个可行的选项。

1 个答案:

答案 0 :(得分:0)

如评论中所述,您可以设法将f.c1的时间戳12345678增加10,这意味着在您调用incr之后,该行中列的最新值将是11。相关的java代码是:

        incr.setTimeRange(12345678L, 12345679L);

但是在调用incr时没有api来设置该单元格的时间戳,我想你可以通过自己实现一个协处理器来实现这个目标。