在HBase中获取特定版本的行

在HBase中获取特定版本的行,hbase,Hbase,我有一个HBase表,它有两个版本。如何获取特定版本的行 create 'mytable', {NAME=>'cf1',VERSIONS=>2} put 'mytable', 'row1', 'cf1:lang','english', {VERSIONS=>1} //version 1 value put 'mytable', 'row1', 'cf1:lang', 'spanish', {VERSIONS=>2} //version 2 value get 'my

我有一个HBase表,它有两个版本。如何
获取特定版本的行

create 'mytable', {NAME=>'cf1',VERSIONS=>2}

put 'mytable', 'row1', 'cf1:lang','english', {VERSIONS=>1}  //version 1 value
put 'mytable', 'row1', 'cf1:lang', 'spanish', {VERSIONS=>2} //version 2 value

get 'mytable','row1'                               //gets the latest version
COLUMN                                   CELL                                                                                                                
 cf1:lang                                timestamp=1521884601517, value=spanish
现在我想得到值为
english
的行,所以我这样做了

get 'mytable','row1',{COLUMN=>'cf1',VERSIONS=>1}  //I expect 'english'
COLUMN                                   CELL                                                                                                                
 cf1:lang                                timestamp=1521884601517, value=spanish

可能我误解了HBase中的版本。任何输入?

创建时,
VERSIONS=>2
表示该行仍保留2个数据版本。
获取时,
VERSIONS=>1
表示将返回最新的1数据

获取特定版本时,您可以使用实现该目标,您可以参考以下步骤:

hbase(main):062:0> create 'mytable', {NAME=>'cf1',VERSIONS=>2}
0 row(s) in 1.2360 seconds

=> Hbase::Table - mytable
hbase(main):063:0> put 'mytable', 'row1', 'cf1:lang', 'english', 1521900360000
0 row(s) in 0.0160 seconds

hbase(main):064:0> put 'mytable', 'row1', 'cf1:lang', 'spanish', 1521900370000
0 row(s) in 0.0030 seconds

hbase(main):065:0> get 'mytable','row1',{COLUMN=>'cf1',TIMESTAMP => 1521900360000}
COLUMN                                        CELL
 cf1:lang                                     timestamp=1521900360000, value=english
1 row(s) in 0.0030 seconds

我知道时间戳是一个选项,但它是不切实际的。除了时间戳还有其他方法吗?我认为现在没有其他方法了:(也许协处理器可以帮助,但不确定。