11
  1. 我是 HBase 新手,在 HBase 客户端 API 中发现不支持更新操作?那是对的吗?
  2. 如果是这样,更新特定行键的值的建议最佳做法是什么?
4

2 回答 2

13

您可以使用 PUT 来创建或更新任何单元格的值。除非您希望新版本没有某些旧单元格,否则您不需要使用delete

说我们有

r1:f1:c1:value1
r1:f1:c2:value2 

你可以输入 r1:f1:c1 新值,你会得到:

r1:f1:c1:new value 
r1:f1:c2:value2 

请注意,实际上每个单元格都存储为行键、列族、单元格、时间戳、版本和值。因此,根据您设置版本控制的方式(每个列族),您还可以访问旧值,包括执行时间点查询以查看已删除的值。

于 2012-12-03T14:54:03.640 回答
4

我认为您想要做的是执行 Put 操作。您可以查看 HBase 的Put API 客户端文档以及标题为:Java 示例代码使用 HBase 数据模型操作的一些示例和操作描述的博客文章。

要更新一行,您必须在单个 Mutation 中发出一系列“Delete”和“Put”,因此它们被视为外部更新。

有关如何构建此类调用的信息,请参阅Class RowMutations 文档。

于 2012-12-02T09:32:06.890 回答