Hbase教程(二) Hbase数据库Shell命令
1 Hbase- Shell命令
Hbase是分布式是一个分布式的、面向列的开源数据库,Hbase也提供了Shell命令对数据库增、删、改、查的权限的基本操作,比如数据库的创建、修改、删除、修改操作等,数据的插入、删除、修改等。
执行命令:hbase shell,进入Hbase数据库
1.1 hbase help帮助命令
在命令行执行:help ['command'],查看帮助命令:
1.2 一般操作
1、status:查询服务器状态:
用法:status
2、whoami:查询当前用户:
用法:whoami
3、version:当前hbase使用的版本号:
用法:version
1.3 ddl操作
1、create:创建数据库表,创建命令可看帮助help 'create'
语法:create <table>, {NAME =><family>, VERSIONS => <VERSIONS>}
例示:create 'product',{NAME => 'computer', VERSIONS => 5},{ NAME => 'food' , VERSIONS => 3}
描述:创建一张名叫'product'数据库表,并且创建两个列族,分别为:'computer'、'food'
2、list:查看已经存在的表
用法:list
3、describe:查看表结构描述
用法:describe 'product'
4、alter:修改表
用法:修改表结构必须先disable,再修改表,修改完成后,再enable表。
disable 'product'
alter 'product',{NAME => 'food',VERSIONS=> 3}
enable 'product'
5、drop:删除表
用法:首先disable,然后drop。
disable 'product'
drop 'product'
1.4 dml操作
1、put:插入数据
语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp>
例示:put 'product','rowkey001', 'computer:name', 'ThinkPad E550'
再次插入数据:put'product', 'rowkey001', 'computer:price', 4199
描述:给表'product'的添加一行记录:rowkey是'rowkey001',family name:'computer',column name:'name',value:'ThinkPad E550',timestamp:系统默认
插入两条数据,实际上添加了两列,返回还是一条数据
2、scan:扫描表
语法:scan <table>,{COLUMNS => [ <family:column>,.... ], LIMIT => num}
Hbase存储数据是以二进制形式保存的,读取是没有问题的
例示:scan 'product'
3、get:查询数据
语法:get<table>,<rowkey>,[<family:column>,....]
查询表product,rowkey001中的computer下的cell的值
例示:get 'product', 'rowkey001'
例示:get'product','rowkey001',{COLUMN=>'computer:name'}
4、count:查询表中的数据行数
语法:count <table>,{INTERVAL => intervalNum, CACHE => cacheNum}
INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
描述,查询表product中的行数,每100条显示一次,缓存区为500
例示:
count 'product'
count 'product', {INTERVAL=> 10, CACHE => 1000}
5、delete:删除行中的某个列值
语法:delete <table>,<rowkey>, <family:column> , <timestamp>,必须指定列名
描述:删除表product,rowkey001中的computer:name的数据
例示:
delete 'product','rowkey001', 'computer:name'
6、deleteall:删除行中的某个列值
语法:deleteall<table>, <rowkey>, <family:column> , <timestamp>,可以不指定列名,删除整行数据
描述:删除表product,rowkey001的数据
例示:
deleteall 'product','rowkey001'
7、truncate:删除表中的所有数据
语法:truncate<table>
描述:删除表product中所有的数据
例示:
truncate 'product'
1.5 version版本
1、同一条数据,我们往数据库添加多次,后面的数据会覆盖原来的数据
例如:往'food'列族中插入一些price数组。
put 'product', 'rowkey001', 'food:name', 'orange'
put 'product', 'rowkey001', 'food:price', 4.5
put 'product', 'rowkey001', 'food:price', 5.0
put 'product', 'rowkey001', 'food:price', 5.5
扫描述表,查看数据:scan'product'
2、查看被覆盖的历史数据
示列:
3、version版本,在创建'food'列族时,设置为值3,再添加一条数据price值为6.0的数据,第一次插入的price值为4.5值,不会出现。
插入数据price值为6.0的数据:
put 'product','rowkey001', 'food: price', 6.0
4、查看已经被删除的数据
内存不回收时使用如下语句可以查询,如果查询不到,说明已经被真正删除了
scan 'product',{RAW => true,COLUMNS =>'food', VERSIONS => 3 }
--以上为《Hbase教程(二) Hbase数据库Shell命令》,如有不当之处请指出,我后续逐步完善更正,大家共同提高。谢谢大家对我的关注。
——厚积薄发(yuanxw)