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

Другие вопросы по тегам