Hbase 仅删除列的特定版本

Hbase 仅删除列的特定版本,hbase,Hbase,我有一个列的一系列版本t1,t2,t3,t4 HBase文档: 为此,您可以指定一个版本,或者默认使用currentTimeMillis。这意味着删除版本小于或等于此版本的所有单元格 在上述情况下,如果我删除'table','row','col',t3所有版本t1、t2和t3都将被删除 但是,是否可以只删除t3以便保留t1和t2?正如我在评论部分的讨论中所理解的,您希望通过删除重复项来保留单元格的唯一值。你可以做一个普通的把戏。通过将值存储在列名中,您可以切换到宽表设计,而不是高表设计。《HBa

我有一个列的一系列版本t1,t2,t3,t4

HBase文档:

为此,您可以指定一个版本,或者默认使用currentTimeMillis。这意味着删除版本小于或等于此版本的所有单元格

在上述情况下,如果我
删除'table','row','col',t3
所有版本t1、t2和t3都将被删除


但是,是否可以只删除t3以便保留t1和t2?

正如我在评论部分的讨论中所理解的,您希望通过删除重复项来保留单元格的唯一值。你可以做一个普通的把戏。通过将值存储在列名中,您可以切换到宽表设计,而不是高表设计。《HBase在行动》一书中也应该有类似的案例。因此,您将在注入时消除重复项。列名可以包含与列值一样大的数据。

是否选中此选项?“有关删除和版本控制如何交互的详细讨论,请参阅用户邮件列表上的thread up>。”是。我看到了这根线。它包含一些技巧,可以在删除之前编写一个版本,但它没有回答我的问题。嗯,有一个“技巧”先删除版本,然后再插入它们。但我还是希望能找到一些或多或少合理的东西,但也许你们应该改变一下你们的总体设计。HBase擅长“一次写入,多次读取”场景。删除也是插入,它将创建额外的负载,尝试避免它们,或使用TTL。我的设计不包含任何特殊内容。我只想保留每个专栏的所有版本。但有时这些单元格会落入具有相同值和不同版本的DB中。例如,val1(ts1)、val2(ts2)、val1(ts3)可以容易地转换为val1(ts1)、val1(ts2)、val1(ts3)。我只是想从这样的系列中清理DB。我想每周或每月做一次这样的清理。总的来说,令人失望的是,HBase中如此激动人心的版本控制系统受到了如此微不足道的限制。好吧,看来我得保留好几吨的垃圾。不。我想清理的不是唯一的,而是重复的值。系列v1,v1,v1-是垃圾,可以用一个v1代替,而v1,v2,v1是必需的信息。嗯,我知道没有直接的方法可以删除特定的版本。