递增版本控制的hbase中的列值

hwamh0ep  于 2021-06-10  发布在  Hbase
关注(0)|答案(1)|浏览(402)

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

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

我在这个表中有一行的键是'r1',我有一列'c1',它有两个版本的时间戳,值如下

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

现在,我想将版本时间戳为“12345678”的f.c1增加10。这是hbase中可能的操作。我查了一下文件,但没找到。
有什么建议吗?我不想先读后写,因为可能有多个线程更新这个列,而且有大量的数据,所以2个操作(get和put)是不可行的。

7xllpg7q

7xllpg7q1#

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

incr.setTimeRange(12345678L, 12345679L);

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

相关问题