Hbase shell基础操作

258 阅读2分钟

一、数据定义命令【表、数据库级别的操作】DDL

1.输入以下命令进入hbase控制台:

hbase shell

2.查看Hbase服务器状态

status

3.查看所有的表:

list

4.create创建表:

create '表名称', '列族名称1', '列族名称2', '列族名称N'
create  'book','info','price'

5.describe描述表: 会列出一些表的详细信息

describe 'book'

6.alter 变更表信息

增加一个列簇

alter 'book','date'

移除或者删除已有的列族(前提条件是HBase表的列族数>= 2)

alter 'book',{NAME=>'date',METHOD=>'delete'}

修改列族版本

alter 'book',{NAME=>'date',VERSIONS=>3}} 

7.删除表

删除表之前需要先禁用表、再进行删除

如果禁用表之后,想启用表可以使用enable启用表

disable 'book'
drop 'book'

8.禁用表

判断是否已经禁用

 is_disabled 'book'

禁用

disable 'book'

启用

enable 'book'

9.检查表是否存在

exists 'book'

二.数据操作命令(DML操作)

1.put

在新增记录的同时,还可以为记录设置属性 /更新表中记录

最简命令参数: 

put '表名','行键','列族:列名','值' 

加上后面可以加的参数后的命令: 

put '表名','行键','列族:列名','值','时间戳',{ATTRIBUTES => {'属性' => '属性值'}},{VISIBILITY => 'PRIVATE | SECRET'} 

 示例:向 ‘book’ 表中 info列族 name列 插入一条数据 ‘the Romance of the Three Kingdoms’ 

 put 'book','1','info:des','Three Kingdoms'
put 'book','1','info:name','the Romance of the Three Kingdoms'

2.get

通过表名、行键等参数获取行或单元格数据:语法是 get 表名,行键,{条件}

get  'book','1'

带条件

get 'book','1',{COLUMN=>'info:name',VERSIONS=>3} 

3.scan

遍历表并输出满足指定条件的行记录:语法与get类似

scan '表名'  表示查询全表 
scan 'book'

4.count计算表中的逻辑行数:

count 'book'

5.delete

删除表中的记录

命令表达式:

delete '表名称', '行键', '列族名称:列名称'
delete 'book','1','info:name'

删除整行的值

deleteall '表名称','行键'
deleteall 'book','1'

6.清除表数据

truncate 'book'

三.条件查询

1.指定输出行

scan 'book',{LIMIT=>2}   

2.扫描指定列簇

scan '表名称', {COLUMN  => '列族名称'}
scan 'book',{COLUMN => 'info'}

3.扫描指定列

scan '表名称', {COLUMNS  => '列族名称:列名称'}
scan 'book',{COLUMNS => 'info:name'}

4.指定输出范围

包含STARTROW,不包含ENDROW

scan 'book',{STARTROW=>'1',ENDROW=>'3'} 

5.可只指定STARTROW:

scan 'book',{STARTROW=>'2'} 

6.使用行键RowFilter过滤rowkey进行搜索(binary),即rowkey的精确查询

 scan '表名称', FILTER=>"RowFilter(=,'binary:rowkey值')" 
 scan 'book', FILTER=>"RowFilter(=,'binary:003')"

7.使用行键RowFilter过滤rowkey进行搜索(substring),即rowkey的模糊查询

 scan '表名称', FILTER=>"RowFilter(=,'substring:子串')"
 scan 'book', FILTER=>"RowFilter(=,'substring:0')"

8.使用等值过滤value搜索(binary),即value的等值查询

scan '表名称', FILTER=>"ValueFilter(=, 'binary:某值')"

scan 'book', FILTER=>"ValueFilter(=,'binary:Three Kingdoms')"

9.使用等值过滤value搜索(substring),即value的模糊查询

scan '表名称', FILTER=>"ValueFilter(=,'substring:某子串')"
scan 'book', FILTER=>"ValueFilter(=,' substring:an')"

本文用于记录以便作为日常使用手册

借鉴于以下文章

码农之家

csdn