我怎么能只更新HBase中的一个单元格?

时间:2014-04-13 03:07:46

标签: python hbase

我有一个10万行的HTable,每行平均有30,000列。

有一个过程可以更新其中一个单元格(一行一列)。

例如:

row1   cf:1=2  cf:2=2  cf:3=4  cf:4=1 ... cf:30000=1

我只需要更新row1's cf:3 from 4 to 5(add 1)

我该如何更新表?

hbase是否有一些更新功能,如mysql' s:

update `testtable` set `cf3`=`cf3`+1 where row='row1';

我用python编写了程序。现在我使用getRow获取所有行,这非常慢。然后修改该值,然后放回htable。

2 个答案:

答案 0 :(得分:1)

你可以使用put to" over write"旧的价值。 或者先删除旧值,然后输入新值。

或者,如果您在编码或测试时需要此功能, https://github.com/zhang-xzhi/simplehbaseviewer

您可以使用此类语句更新hbase中的数据。 插入MyRecordV05(名称,年龄)值(" allen"," 30")rowkey是intkey(" 0")

答案 1 :(得分:0)

HBase中没有像RDBM这样的更新命令。但你可以编写一个小程序来做到这一点。可能有两种方法,要么删除当前值,然后放入新值,要么只是将新值作为新版本。如果您对Java感到满意,可以使用 deleteColumn() 直接删除指定列的值。