转载请注明出处:

1.Hbase连接

1.1.进入hbase命令行

hbase shell
# 或 
bin/hbase shell

1.2.查看帮助

help

1.3.查看所有表

list

2.表操作

2.1.创建表

create 'user','basicinfo'

  

2.2.查看表结构

desc 'user'

  

3.新增

  3.1.插入数据

# 语法为: put 表名,rowkey,列簇:列,值

#插入一条数据
put 'user','1001','basicinfo:name','roy'
put 'user','1001','basicinfo:age',18
put 'user','1001','basicinfo:salary',10000

#插入第二条数据
 put 'user','1002','basicinfo:name','sophia'
 put 'user','1002','basicinfo:sex','female'
 put 'user','1002','basicinfo:job','manager'

#插入第三条数据
put 'user','1003','basicinfo:name','yula'
put 'user','1003','basicinfo:school','phz school'

4.查询操作

  hbase 中访问数据有两种基本的方式:

  • 按指定 rowkey 获取数据:get 方法;
  • 按指定条件获取数据:scan 方法

    scan`可以设置 begin 和 end 参数来访问一个范围内所有的数据。get 本质上就是 begin 和 end 相等的一种特殊的 scan。

    对于表名和列名必须使用单引号

  1、HBase查询数据只能依据Rowkey来进行查询,而Rowkey是由客户 端直接指定的,所以在使用HBase时, Rowkey如何设计非常重要,要 带上重要的业务信息。

  2、scan指令后面的查询条件,STARTROW和STOPROW是必须大写 的。查询的结果是左开右闭的。

 

4.1.查找单条记录

#可以查看所有列
get 'user','1001'

  

4.2.查找某一列的值

#查看指定列
get 'user','1001','basicinfo:name'

  

4.3.使用 scan 查找多条记录

#查询整表数据
scan 'user'

  

4.4.查询指定列簇的数据

scan 'user',{COLUMN=>'basicinfo'}

  

  需要注意:COLUMN必須大写

4.5.查询指定列

scan 'user',{COLUMN=>'basicinfo:age'}

 4.6.使用scan 进行区间查询

scan 'user',{STARTROW => '1001',STOPROW => '1002'}

4.7.limit 限制行数

scan 'user',{STARTROW => '1001',STOPROW => '1002',LIMIT=>1}

4.8.过滤器查询

scan 'user',FILTER=>"ValueFilter(=,'binary:18')"

scan 'user', FILTER=>"ValueFilter(=,'substring:roy')"

scan 'user', FILTER=>"ColumnPrefixFilter('age')"

 

4.9.查询表中的记录数

count 'user'

4.10.其他查询 可通过help进行查看

help 'get'

help 'scan'

 

 

5.删除操作

5.1.刪除某一列

delete 'user','1002','basicinfo:sex'

5.2.刪除某一条数据

deleteall 'user','1003'

5.3.清空表数据

truncate 'user'

5.4.删除表之前需要disable表

disable 'user'
drop 'user'

5.5.启用表

enable 'user'

5.6.检查表是否存在

exists 'user'