HBase更新操作

时间:2012-12-02 09:15:01

标签: hbase

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

2 个答案:

答案 0 :(得分:11)

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

说我们有

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

你可以把r1:f1:c1新值,你得到:

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

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

答案 1 :(得分:4)

我认为您要做的是执行Put操作。 您可以查看HBase的Put API client docs以及标题为Java Example Code using HBase Data Model Operations的博文,了解一些示例以及操作说明。

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

请参阅Class RowMutations documentation了解如何建立此类电话。