hbase checkAndPut表示现有值或更大或相等

时间:2015-07-03 21:51:37

标签: hbase

我需要对以下条件进行checkandput操作:

1:存在 2:值小于指定值。

如果该值不存在或该值小于特定值,则执行put操作。

我知道它有两个版本用于checkandput,我可以使用其中一个请求实现任一条件。但我不知道如何通过一次原子调用来检查这两种情况。

boolean checkAndPut(byte[] row, byte[] family, byte[] qualifier, byte[] value, Put put)
boolean checkAndPut(byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, byte[] value,Put put)

提前致谢!

詹姆斯

1 个答案:

答案 0 :(得分:0)

与RDBMS不同,HBase或大多数KeyValue存储中都没有null。

  

HBase具有动态架构。因此,与RDBMS DB不同,每行可以有不同的列。

因此,如果列的值为null,则不需要将列写入行。我想,你应该使用:

boolean checkAndPut(byte[] row, byte[] family, byte[] qualifier, CompareFilter.CompareOp compareOp, byte[] value,Put put)

如果您只是想检查它是否为空?然后只检查该行中是否存在该列。