分享

求助,关于hbase的versions问题。

a3087661 发表于 2015-6-29 15:24:45 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 71433
本帖最后由 a3087661 于 2015-6-29 15:39 编辑

假如  :创建表:        create  'person','age','city','job'
            插入:
        put 'person','zhangsan','age:','40'
        put 'person','zhangsan','city:','beijing'
        put 'person','zhangsan','job:','cook'
        增加版本号:
        alter 'person',{NAME=>'city',VERSIONS=>3}
        再插入:   
        put 'person','zhangsan','city:','shanghai'
       问题:hbase怎么识别把哪个列的版本增加了?和插入的数据与列的对应关系?我插入的完全不是按顺序的啊,而且我在虚拟机上版本增加不了一直是一个。

已有(7)人评论

跳转到指定楼层
NEOGX 发表于 2015-6-29 16:01:30
本帖最后由 NEOGX 于 2015-6-29 16:04 编辑

hbase默认显示最新版本

显示最近三个版本命令
get 'person','row-1',{COLUMN=>'city',VERSIONS=>10}  

显示所有版本命令

scan 'person', {COLUMN=>'city',VERSIONS=>10}  

回复

使用道具 举报

a3087661 发表于 2015-6-29 16:08:24
NEOGX 发表于 2015-6-29 16:01
hbase默认显示最新版本

显示最近三个版本命令

hbase(main):001:0> desc 'person'
Table person is ENABLED                                                                                                                        
person
COLUMN FAMILIES DESCRIPTION                                                                                                                    
{NAME => 'age', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL
=> 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}               
{NAME => 'city', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL
=> 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}               
{NAME => 'name', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL
=> 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
这个版本VERSIONS默认是一个。
我想通过alter 'person',{NAME=>'city',VERSIONS=>3}修改成3个,那hbae怎么确定我插入的数据是city列的,并且保存三分不是原来的三份?

回复

使用道具 举报

NEOGX 发表于 2015-6-29 16:10:49
本帖最后由 NEOGX 于 2015-6-29 16:12 编辑
a3087661 发表于 2015-6-29 16:08
hbase(main):001:0> desc 'person'
Table person is ENABLED                                          ...

hbase没有修改,只是不断的增加版本。在创建hbase的时候,可以指定默认几个版本。
如果超过的,则保存最新的。时间最长的则被删除。
并且hbase默认是有时间戳的,你可以根据时间来判断
回复

使用道具 举报

a3087661 发表于 2015-6-29 16:14:51
本帖最后由 a3087661 于 2015-6-29 16:18 编辑
NEOGX 发表于 2015-6-29 16:10
hbase没有修改,只是不断的增加版本。在创建hbase的时候,可以指定默认几个版本。
如果超过的,则保存最 ...
hbase(main):006:0> alter 'person',{NAME=>'city',VERSIONS=>5}
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 2.3070 seconds

hbase(main):007:0> desc 'person'
Table person is ENABLED                                                                                                                        
person                                                                                                                                         
COLUMN FAMILIES DESCRIPTION                                                                                                                    
{NAME => 'age', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL
=> 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}               
{NAME => 'city', BLOOMFILTER => 'ROW', VERSIONS => '5', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL
=> 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}               
{NAME => 'name', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL
=> 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}               
3 row(s) in 0.0980 seconds
创建之后不能修改?刚才我看的视频里就是原来默认是1个version,然后修改成3个了入的名字一样么?
算了,不麻烦你了,我还是自己看看网上的资料吧。谢谢你啊。
回复

使用道具 举报

NEOGX 发表于 2015-6-29 16:23:42
a3087661 发表于 2015-6-29 16:14
hbase(main):006:0> alter 'person',{NAME=>'city',VERSIONS=>5}
Updating all regions with the new sche ...

可以在看看其他资料,利于消化,欢迎交流和指正

不过列是可以随便增加和删除的,列族是固定的。
列一旦固定不能修改,只是不断的增加列。
版本是可以修改的

回复

使用道具 举报

bob007 发表于 2015-6-29 16:39:02
a3087661 发表于 2015-6-29 16:14
hbase(main):006:0> alter 'person',{NAME=>'city',VERSIONS=>5}
Updating all regions with the new sche ...

名字是指什么?

列族是一样的,列都有可能不一样
回复

使用道具 举报

阿飞 发表于 2015-6-29 18:25:04
楼主参考这个帖子,希望有所帮助
hbase shell和java编程分别 获取一行多版本的值
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条