HBase get возвращает старые значения даже при максимальных версиях = 1
У меня есть желание найти столбцы, которые не обновлялись более определенного периода времени.
Поэтому я хочу сделать сканирование столбцов с указанием времени. Нормальное поведение HBase заключается в том, что вы получаете последнее значение в этом временном диапазоне (а это не то, что я хочу).
Насколько я понимаю, HBase должен работать так: если вы установите максимальное количество версий для значений в семействе столбцов на "1", в нем должно остаться только последнее значение, которое было введено в ячейку.
То, что я нашел, отличается.
Если я делаю следующие команды в оболочке hbase
create 't1', {NAME => 'c1', VERSIONS => 1}
put 't1', 'r1', 'c1', 'One', 1000
put 't1', 'r1', 'c1', 'Two', 2000
put 't1', 'r1', 'c1', 'Three', 3000
get 't1', 'r1'
get 't1', 'r1' , {TIMERANGE => [0,1500]}
результат таков:
get 't1', 'r1'
COLUMN CELL
c1: timestamp=3000, value=Three
1 row(s) in 0.0780 seconds
get 't1', 'r1' , {TIMERANGE => [0,1500]}
COLUMN CELL
c1: timestamp=1000, value=One
1 row(s) in 0.1390 seconds
Почему второй запрос возвращает значение, хотя я установил максимальное количество версий только в 1?
Версия HBase, которую я сейчас установил, - это HBase 0.94.6-cdh4.4.0
1 ответ
Оказывается, это ошибка в hbase. https://issues.apache.org/jira/browse/HBASE-10102