hbase 基本用法

hbase  
访问habse三种方式 
访问hbase table中的行,只有三种方式: 
1 通过单个row key访问 
2 通过row key的range 
3 全表扫描 

 Row key行键 (Row key)可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes),在hbase内部,row key保存为字节数组。 
Hbase会对表中的数据按照rowkey排序(字典顺序) 
hbase的时间戳 
时间戳的类型是 64位整型。时间戳可以由hbase(在数据写入时自动 )赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。每个 cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。 
hbase shell命令 
进入hbase命令行 
./hbase shell 
显示hbase中的表 
list 
创建user表,包含info、data两个列族 
create 'user', 'info', 'data' 
 
put的用法(hbase添加数据)
例子1:

 向user表中插入信息,row key为rk0001,列族info中添加name列标示符,值为zhangsan 
put 'user', 'rk0001', 'info:name', 'zhangsan' 
例子2:
向user表中插入信息,row key为rk0001,列族info中添加gender列标示符,值为female 
put 'user', 'rk0001', 'info:gender', 'female' 
info:后面的name 和gender称为 列名 。 
get的用法(hbase中获取数据)
例子1
获取user表中row key为rk0001的所有信息 
get 'user', 'rk0001' 
例子2 
获取user表中row key为rk0001,info列族的所有信息 
get 'user', 'rk0001', 'info' 
例子3 
获取user表中row key为rk0001,info列族的name、age列标示符的信息 
get 'user', 'rk0001', 'info:name', 'info:age'

 

例子4 
获取user表中row key为rk0001,info、data列族的信息 
get 'user', 'rk0001', 'info', 'data' 
get 'user', 'rk0001', {COLUMN => ['info', 'data']} 
获取user表中row key为rk0001,info列族的name列标示符和data列族的pic列标示符信息 
get 'user', 'rk0001', {COLUMN => ['info:name', 'data:pic']} 
例子5 
获取user表中row key为rk0001,列族为info,版本号最新5个的信息 
get 'user', 'rk0001', {COLUMN => 'info', VERSIONS => 5} 
例子6 
查询的是表名为testByCrq,过滤方式是通过rowkey过滤,匹配出rowkey含111的数据。 
scan 'testByCrq', FILTER=>"RowFilter(=,'substring:111')" 
例子7 
获取user表中row key为rk0001,cell的值为zhangsan的信息 
get 'people', 'rk0001', {FILTER => "ValueFilter(=,'binary: zhangsan')"} 
例子8 
查询的是表名为testByCrq,过滤方式是通过rowkey过滤,匹配出rowkey小于等于0111486816556的数据。 
scan 'testByCrq', FILTER=>"RowFilter(<=,'binary:0111486816556')" 
例子9 
查询的是表名为testByCrq,过滤方式是通过value过滤,匹配出value含111的数据。 
scan 'testByCrq', FILTER=>"ValueFilter(=,'substring:111')" 
例子10 
查询的是表名为testByCrq,过滤方式是通过列簇过滤,匹配出列簇含f的数据。  
scan 'testByCrq', FILTER=>"FamilyFilter(=,'substring:f')" 
例子11 
查询的是表名为testByCrq,过滤方式是通过前缀过滤过滤的是行键,匹配出前缀为00000的数据。 
scan 'testByCrq', FILTER=>"PrefixFilter('00000')" 
scan的用法(扫描数据)
例子1 
scan 'user' 
查询user表中的所有信息 
例子2 
查询user表中列族为info的信息 
scan 'user', {COLUMNS => 'info'} 
例子3 
查询user表中列族为info、列标示符为name的信息,并且版本最新的5个 
scan 'user', {COLUMNS => 'info:name', VERSIONS => 5} 
例子4 
查询user表中列族为info和data且列标示符中含有a字符的信息 
scan 'user', {COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"} 
例子5 
查询user表中列族为info,rk范围是[rk0001, rk0003)的数据 
scan 'people', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0003'} 
例子6 
查询user表中row key以rk字符开头的 
scan 'user',{FILTER=>"PrefixFilter('rk')"} 
例子7
 
查询user表的  列族为INFO的前20条
scan 'user',{COLUMNS=>'info',LIMIT=>20} 
delete的用法(删除数据) 
删除user表row key为rk0001,列标示符为info:name的数据 
delete 'people', 'rk0001', 'info:name' 
删除user表row key为rk0001,列标示符为info:name,timestamp为1392383705316的数据 
delete 'user', 'rk0001', 'info:name', 1392383705316
sniffer:person_tag_warehouse
scan 'sniffer:person_tag_warehouse', {COLUMNS => 'info'}  

你可能感兴趣的:(hbase 基本用法)