如何防止Hbase覆盖单元格中的现有值?

问题描述:

任何人都可以解释如何防止hbase更新具体的列中的单元格和键如果该值已经存在?
例如,当两个进程并行写入同一个单元,其中只有最后一个将出现在数据库中,而我只需要第一个,另一个应该失败。如何防止Hbase覆盖单元格中的现有值?

如果您强制版本为1,HBase将只保留最后一个版本。您可以增加允许的版本。

但是,如果你有多个命中行键,这可能是一个糟糕的行键设计的迹象。行键应该巧妙地创建为了允许良好的分区和独特的命中。这可以减少区域服务器上的热点并提高整体性能。

对于有很多冗余行命中的情况,除非只关心最近的命中,否则不应该使用版本限制1。