我使用hbase来存储一些流数据,我有一些值,这些值从一个插入到另一个插入,并且使用现有的值。
我有一个这样创建的表:
hbase(main):005:0> create ‘mytable’,’mycolfam’
该表将包含一个名为val的字段
首先,我插入数据(key=1,val=10):
hbase(main):005:0> put 'mytable','1','mycolfam:val',10
然后,我有相同键“1”(key=1,val=12)的传入数据,hbase中插入的值必须是新值和旧值的总和(10+12)。
hbase(main):005:0> put 'mytable','1','mycolfam:val',oldvalue+newvalue
我尝试了get first来获取旧值,但是我想以一种更优化的方式来实现它。
有人知道怎么做吗?谢谢。
1条答案
按热度按时间oxalkeyp1#
可以使用计数器和增量进行此操作。它将在单个事务中执行,不同于执行get和put来增加值。
请注意,存储的值是二进制格式的。
要从值中减去,只需使用负数作为最后一个参数。