我需要对以下条件进行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)
提前致谢!
詹姆斯
答案 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)
如果您只是想检查它是否为空?然后只检查该行中是否存在该列。