hbase shell
创建namespace
create_namespace 'ns1'
查询指定namespace下的表
list_namespace_tables 'ns1'
删除指定namespace
# 前提是该namespace是空的
drop_namespace 'ns1'
关于表的操作包括(创建create,查看表列表list。查看表的详细信息desc,删除表drop,清空表truncate,修改表的定义alter)
创建表时必须指定列族
# t1/t2为表名, f1, f2, f3是列族的名
create 't1', {NAME => 'f1'}, {NAME =>'f2'}, {NAME =>'f3'}
create 't2', 'f1', 'f2', 'f3'
# 在指定namespace下创建表, 如果不指定,则默认在default下创建
create 'ns1:t1', 'cf1'
可以给每个列族指定版本数
create 't3', {NAME=>'f1', VERSIONS=>5}, {NAME=>'f2', VERSIONS=>3}
desc '表名'
添加一个列族
alter 't1', 'f4'
alter 't2', {NAME=>'f4'}
删除列族
alter 't1', 'delete' => 'f3'
alter 't2', NAME=>'f3', METHOD=>'delete'
添加列族和删除列族同时进行
# 必须将添加的列族写在前面, 否则会报错
alter 't1', 'f3', 'delete'=>'f4'
alter 't2', {NAME=>'f3'}, {NAME=>'f4', METHOD=>'delete'}
truncate 't3'
删除表之前必须先停用该表
drop 't3'
关于数据的操作(增put,删delete,查get + scan, 改==变相的增加)
格式:
put ‘表名’, ‘rowkey’, ‘列族:列’, ‘值’
put ‘表名’, ‘rowkey’, ‘列族:列’, ‘值’, 时间戳
不设置时间戳
# 向user_info表中 rowkey为user01, 列为base_info:name的单元格插入数据"zhangsan1"
put 'user_info', 'user01', 'base_info:name', 'zhangsan1'
# 为了后续测试, 插入以下数据集
put 'user_info', 'user02', 'base_info:name', 'zhangsan2'
put 'user_info', 'user03', 'base_info:name', 'zhangsan3'
put 'user_info', 'user04', 'base_info:name', 'zhangsan4'
put 'user_info', 'user05', 'base_info:name', 'zhangsan5'
put 'user_info', 'user06', 'base_info:name', 'zhangsan6'
put 'user_info', 'user07', 'base_info:name', 'zhangsan7'
put 'user_info', 'user08', 'base_info:name', 'zhangsan8'
put 'user_info', 'user01', 'base_info:age', '21'
put 'user_info', 'user02', 'base_info:age', '22'
put 'user_info', 'user03', 'base_info:age', '23'
put 'user_info', 'user04', 'base_info:age', '24'
put 'user_info', 'user05', 'base_info:age', '25'
put 'user_info', 'user06', 'base_info:age', '26'
put 'user_info', 'user07', 'base_info:age', '27'
put 'user_info', 'user08', 'base_info:age', '28'
put 'user_info', 'user01', 'extra_info:Hobbies', 'music'
put 'user_info', 'user02', 'extra_info:Hobbies', 'sport'
put 'user_info', 'user03', 'extra_info:Hobbies', 'music'
put 'user_info', 'user04', 'extra_info:Hobbies', 'sport'
put 'user_info', 'user05', 'extra_info:Hobbies', 'music'
put 'user_info', 'user06', 'extra_info:Hobbies', 'sport'
put 'user_info', 'user07', 'extra_info:Hobbies', 'music'
put 'user_info', 'user08', 'extra_info:Hobbies', 'music'
put 'user_info', 'user01', 'base_info:name', 'baiyc1'
put 'user_info', 'user02', 'base_info:name', 'baiyc2'
put 'user_info', 'user03', 'base_info:name', 'baiyc3'
put 'user_info', 'user04', 'base_info:name', 'baiyc4'
put 'user_info', 'user05', 'base_info:name', 'baiyc5'
put 'user_info', 'user06', 'base_info:name', 'baiyc6'
put 'user_info', 'user07', 'base_info:name', 'baiyc7'
put 'user_info', 'user08', 'base_info:name', 'baiyc8'
put 'user_info', 'user01', 'base_info:age', '21'
put 'user_info', 'user02', 'base_info:age', '22'
put 'user_info', 'user03', 'base_info:age', '23'
put 'user_info', 'user04', 'base_info:age', '24'
put 'user_info', 'user05', 'base_info:age', '25'
put 'user_info', 'user06', 'base_info:age', '26'
put 'user_info', 'user07', 'base_info:age', '27'
put 'user_info', 'user08', 'base_info:age', '28'
put 'user_info', 'user01', 'extra_info:Hobbies', 'music'
put 'user_info', 'user02', 'extra_info:Hobbies', 'sport'
put 'user_info', 'user03', 'extra_info:Hobbies', 'music'
put 'user_info', 'user04', 'extra_info:Hobbies', 'sport'
put 'user_info', 'user05', 'extra_info:Hobbies', 'music'
put 'user_info', 'user06', 'extra_info:Hobbies', 'sport'
put 'user_info', 'user07', 'extra_info:Hobbies', 'music'
put 'user_info', 'user08', 'extra_info:Hobbies', 'sport'
设置时间戳
put 't1', 'r1', 'cf1:name', 'Jack', 22222
get方式必须指定rowkey, 只能获取某一条数据
获取表中指定rowkey下的所有数据
# 获取user_info表中rowkey为user01的所有数据
get 'user_info', 'user01'
获取表中指定rowkey下指定列族的所有数据
# 获取user_info 表中rowkey为user01下列族base_info下的所有数据
get 'user_info', 'user01', 'base_info'
获取表中指定rowkey下指定列的所有数据
# 获取user_info 表中rowkey为user01的列族base_info中name列的所有数据
get 'user_info', 'user01', 'base_info:name'
获取不同版本的数据
# 如果没有指定时间戳, 则默认是插入时的时间戳
put 't1', 'r1', 'cf1:name', 'Tom'
put 't1', 'r1', 'cf1:name', 'Jack', 22222
# 默认获取最新版本的数据, 时间戳最大的版本
get 't1', 'r1'
get 't1', 'r1', {COLUMN=>'cf1:name', VERSIONS=>2}
获取表中所有数据
scan 'user_info'
查询大于等于指定rowkey的数据
包括开始的rowkey
scan 'user_info', STARTROW=>'user07'
scan 'user_info', {STARTROW=>'user07'}
查询小于指定rowkey的数据
不包括结束的rowkey
scan 'user_info', STOPROW=>'user03'
scan 'user_info', {STOPROW=>'user03'}
查询指定范围内的rowkey的数据
包括开始的rowkey, 但是不包括结束的row可以
scan 'user_info', STARTROW=>'user05', STOPROW=>'user07'
scan 'user_info', {STARTROW=>'user05', STOPROW=>'user07'}
查询表中指定列族为base_info的信息
scan 'user_info', {COLUMNS => 'base_info'}
删除表中指定rowkey中指定列的数据
# 删除user_info表中, rowkey为user01, base_info:age列下的数据
delete 'user_info', 'user01', 'base_info:age'
delete 删除时, 必须定位到列, 不能直接删列族, 不会生效
delete一条语句只能删除一个单元中的数据, 如果要删除整行数据, 则需要使用deleteall
deleteall 'user_info', 'user07'