2013-12-25 2 views
1

Я не мог найти это в своей документации. Вот пример:Неустранимые квалификаторы все еще вытесняются в hbase?

Скажем, у меня таблица Hbase с одним семейством столбцов, f, с maxVersions, установленным на 2, и имеют данные с двумя квалификаторами q1 и q2. Добавить строки r1 к нему, и теперь у меня есть:

r1=>f:q1:ts1 ("some data 1") 
r1=>f:q2:ts1 ("some data 2") 

После этого я выполняю поставил r1 => е: q1 («другие данные») дважды. Из того, что я понял, «некоторые данные 1» из q1-квалификатора будут удалены, потому что две новые версии были записаны в q1. Но что происходит с квалификатором q2? Это данные удаляются, потому что я добавил две новые версии строки или остался, потому что есть только одна версия (я добавил данные только в q1)?

ответ

2

Прежде всего, HBase не сразу удаляет старые версии - они удаляются только в кадрах. Большинство операций будут замаскировать старые версии (которые превышают максимальные версии), но не все см., Например, JIRA-10102.

Относительно ваших вопросов q2 не будет затронуто. Версии управляются в каждом экземпляре квалификатора. Вы можете легко попробовать это в hbase shell:

create 't1', {NAME => 'f', VERSIONS => 1} 
put 't1', 'r1', 'f:q1', 'some data 1', 1000 
put 't1', 'r1', 'f:q2', 'some data 2', 1000 
put 't1', 'r1', 'f:q1', 'other data', 2000 
scan 't1' 
+0

Спасибо, это очень помогло. – miljanm

Смежные вопросы