Hbase教程(二) Hbase数据库Shell命令






1 Hbase- Shell命令

   Hbase是分布式是一个分布式的、面向列的开源数据库,Hbase也提供了Shell命令对数据库增、删、改、查的权限的基本操作,比如数据库的创建、修改、删除、修改操作等,数据的插入、删除、修改等。

执行命令:hbase shell,进入Hbase数据库

     

hbase简单命令 hbase操作命令_数据

 

1.1 hbase help帮助命令

   在命令行执行:help ['command'],查看帮助命令:

    

hbase简单命令 hbase操作命令_数据库_02

 

1.2 一般操作

1、status:查询服务器状态:

用法:status

hbase简单命令 hbase操作命令_hbase 查询所有的数据库_03

 

2、whoami:查询当前用户:

用法:whoami

hbase简单命令 hbase操作命令_数据库_04

 

3、version:当前hbase使用的版本号:

用法:version

hbase简单命令 hbase操作命令_数据库_05

 

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

hbase简单命令 hbase操作命令_hbase 查询所有的数据库_06

 

3、describe:查看表结构描述

用法:describe 'product'

hbase简单命令 hbase操作命令_数据库_07

 

4、alter:修改表

用法:修改表结构必须先disable,再修改表,修改完成后,再enable表。

disable 'product'

alter 'product',{NAME => 'food',VERSIONS=> 3}

enable 'product'

   

 

5、drop:删除表

用法:首先disable,然后drop。

disable 'product'

drop 'product'

   

hbase简单命令 hbase操作命令_hbase 查询所有的数据库_08

 

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:系统默认

插入两条数据,实际上添加了两列,返回还是一条数据

hbase简单命令 hbase操作命令_hbase 查询所有的数据库_09

hbase简单命令 hbase操作命令_hbase 查询所有的数据库_10

 

2、scan:扫描表

   语法:scan <table>,{COLUMNS => [ <family:column>,.... ], LIMIT => num}

    Hbase存储数据是以二进制形式保存的,读取是没有问题的

   例示:scan 'product'

       

hbase简单命令 hbase操作命令_数据库_11

 

3、get:查询数据

   语法:get<table>,<rowkey>,[<family:column>,....]

   查询表product,rowkey001中的computer下的cell的值

   例示:get 'product', 'rowkey001'

hbase简单命令 hbase操作命令_数据库_12

 

   例示:get'product','rowkey001',{COLUMN=>'computer:name'}

         

hbase简单命令 hbase操作命令_数据库_13

 

4、count:查询表中的数据行数

   语法:count <table>,{INTERVAL => intervalNum, CACHE => cacheNum}

    INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度

   描述,查询表product中的行数,每100条显示一次,缓存区为500

   例示:

    count 'product'

    count 'product', {INTERVAL=> 10, CACHE => 1000}

   

hbase简单命令 hbase操作命令_数据库_14

 

5、delete:删除行中的某个列值

   语法:delete <table>,<rowkey>,  <family:column> , <timestamp>,必须指定列名

   描述:删除表product,rowkey001中的computer:name的数据

 

   例示:

    delete 'product','rowkey001', 'computer:name'

hbase简单命令 hbase操作命令_hbase 查询所有的数据库_15

 

6、deleteall:删除行中的某个列值

   语法:deleteall<table>, <rowkey>,  <family:column> , <timestamp>,可以不指定列名,删除整行数据 

   描述:删除表product,rowkey001的数据

 

   例示:

    deleteall 'product','rowkey001'

 

hbase简单命令 hbase操作命令_数据库_16

 

7、truncate:删除表中的所有数据

   语法:truncate<table>

   描述:删除表product中所有的数据

 

   例示:

    truncate  'product'

 

hbase简单命令 hbase操作命令_数据库_17

 

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'

hbase简单命令 hbase操作命令_数据_18

 

2、查看被覆盖的历史数据

示列:

hbase简单命令 hbase操作命令_数据_19

 

3、version版本,在创建'food'列族时,设置为值3,再添加一条数据price值为6.0的数据,第一次插入的price值为4.5值,不会出现。

插入数据price值为6.0的数据:

    put 'product','rowkey001',  'food: price', 6.0

hbase简单命令 hbase操作命令_hbase 查询所有的数据库_20

 

4、查看已经被删除的数据

内存不回收时使用如下语句可以查询,如果查询不到,说明已经被真正删除了

scan 'product',{RAW => true,COLUMNS =>'food', VERSIONS => 3 }

 

 

 


                --以上为《Hbase教程(二) Hbase数据库Shell命令》,如有不当之处请指出,我后续逐步完善更正,大家共同提高。谢谢大家对我的关注。

——厚积薄发(yuanxw)