Управление версиями не включено по умолчанию. Таким образом, вы должны указать это при создании таблицы.
create 'student',{NAME=>"personal",Versions=>5},'school'
Здесь управление версиями включено для столбца «личный», но не для столбца «школа»
Это можно увидеть, если описать таблицу
hbase(main):009:0> describe 'student'
Table student is ENABLED
student
COLUMN FAMILIES DESCRIPTION
{NAME => 'personal', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '5', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
{NAME => 'school', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
Для personal
показывает VERSIONS => '5'
Для school
показывает VERSIONS => '1'
.
Если таблица уже создана, ее можно изменить
alter 'student',NAME=>'school',VERSIONS =>3
hbase(main):011:0> describe 'student'
Table student is ENABLED
student
COLUMN FAMILIES DESCRIPTION
{NAME => 'personal', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '5', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
{NAME => 'school', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
Не показывает VERSIONS => '3'
Для school
, как ожидалось.
Положить данные в таблицу. Введите несколько раз в одной ячейке. А затем отсканируйте таблицу.
put 'student','1','personal:name','kaushik'
put 'student','1','personal:name','kaushik_again'
put 'student','1','school:name','great_school'
put 'student','1','school:name','great_school_again'
scan 'student',{VERSIONS=>10}
ROW COLUMN+CELL
1 column=personal:name, timestamp=1443002303208, value=kaushik_again
1 column=personal:name, timestamp=1443002294049, value=kaushik
1 column=school:name, timestamp=1443002320753, value=great_school_again
1 column=school:name, timestamp=1443002311421, value=great_school
Как и ожидалось, он показывает как старое, так и новое значение.