一:HBase的shell命令操作
HBase作为一个nosql数据库,不支持sql的查询
shell命令操作实现的功能也有限,所以一般作为测试使用
可以通过整合hive以及hue实现他的sql查询以及复杂的join多表关联查询

1.进入shell操作界面
bin/hbase shell
如果配置了环境变量,可以直接使用 hbase shell 命令即可

2.查看所有表
list

3.创建表
create ‘表名’ , ‘列族1’ , ‘列族2’
或者: create ‘表名’ , {NAME => ‘列族’ , VERSIONS => ‘版本个数’ } , {NAME => ‘列族’}
可以创建多个列族,在创建表的时候还可以加上分区规则,实现region的负载均衡

4.添加数据
put ‘表名’ , ‘rowkey’ , ‘列族 : 列名’ , ‘值’
hbase中的值都是以bytes字节数组存储的,在添加字段值的时候不需要知道具体类型

5.get查询数据–查询指定列
通过rowkey查询
get ‘表名’ , ‘rowkey’

通过rowkey中的列族查询
get ‘表名’ , ‘rowkey’ , ‘列族’

通过指定的列族中的具体列查询
get ‘表名’ , ‘rowkey’ , ‘列族:列名’

通过 多个列族或者多个列查询
get ‘表名’ , ‘rowkey’ , ‘列族1’ , ‘列族2’
或者: get ‘表名’ , ‘rowkey’ , {COLUMNS = > [‘列族1’ , ‘列族2’ ]}
或者: get ‘表名’ , ‘rowkey’ , {COLUMNS = > [‘列族1:列名1’ , ‘列族2:列名2’]}

指定rowkey以及列值查询
get ‘表名’ , ‘rowkey’ , {FILTER => “ValueFilter (=,‘列名 : 值’)”}

指定rowkey与列值的模糊查询
get ‘表名’ , ‘rowkey’ , {FILTER => “(QualifierFilter (=,'substring : 包含的字符 '))”}

6.scan查询数据–查询所有列
查询所有数据
scan ‘表名’

单列族查询
scan ‘表名’ , {COLUMNS => ‘列族’}
或者: scan ‘表名’ , {COLUMNS =>‘列族’ , RAW = true , VERSIONS => 指定版本数 }

多列族查询
scan ‘表名’ , {COLUMNS => [‘列族1’ , ‘列族2’] }
或者: scan ‘表名’ , {COLUMNS => [‘列族1 : 列名’ , ‘列族2 : 列名’] }

指定列族列名和版本数
scan ‘表名’ , {COLUMNS => ‘列族 : 列名’ , VERSIONS => 版本数}

指定多个列族并安装字段模糊查询
scan ‘表名’ , {COLUMNS => [‘列族:列名’ , ‘列族:列名’] , FILTER => “(QualifierFilter (=,‘substring : 包含字段’))”}

rowkey范围查询
scan ‘表名’ , {COLUMNS => ‘列族’ , STARTROW = > ‘起始rowkey’ , ENDROWKEY => ‘结束rowkey’ }

指定rowkey的模糊查询
scan ‘表名’ , {FILTER => “PrefixFilter(‘r’)”}
代表查询以 r 开头的所有行的数据

指定时间范围查询
scan ‘表名’ , {TIMERANGE => [开始时间戳 , 结束时间戳]}

7.数据更新
更新数据值
put 命令 如果有就更新,没有就插入整行数据

更新版本
alter ‘表名’ , NAME => ‘列族’ , VERSIONS => 版本号

8.删除数据
指定rowkey以及列名
delete ‘表名’ , ‘rowkey’ , ‘列族 : 列名’

指定rowkey,列族以及字段值
delete ‘表名’ , ‘rowkey’ , ‘列族 : 列名’ , 时间戳

删除整个列族
alter ’ 表名’ , NAME => ‘列族’ , METHOD => ‘delete’
或者: alter ‘表名’ , ‘delete’ => ‘列族’

清空表中数据(表结构还存在)
truncate ‘表名’

删除表
删除之前先禁用
disable ‘表名’
删除
drop ‘表名’

9.统计count数
count ‘表名’

10.显示=主机状态
status ‘主机名’

11.显示当前操作用户
whoami

12.展示表结构
describe ‘表名’

13.检查该表是否开启/禁用
is_enabled ‘表名’
is_disabled ‘表名’

14.查询该表是否存在
exists ‘表名’

15.禁用表
disable ‘表名’

16.改表列族
增加列族
alter ‘表名’ , NAME => ‘列族’ , VERSIONS => 版本号
删除列族
alter ‘表名’ , ‘delete’ => ‘列族’