前一节我们共同完成了HBase的简介、安装与环境搭建,下面我们一起来上手一下HBase的基本操作与使用。

HBase是如何存储的?

在开始上手HBase前我们先看看它的存储方式:

arm hbase数据库 hbase数据库操作_命名空间

不同于一般关系数据库RDBMS的存储方式,HBase里字段的格式只有一种,就是Bytes,字节。这使得它更像是一种文件的存储而不是一般意义上的数据表。

最重要的是理解它的存储模式。我们可以称之为列簇,它的每个列簇可以包含多个列,也就表现成上图中“URL”和“Parser”之间的关系,他俩同属于一个列簇。而我们进行检索时,我们主要靠Rowkey来进行检索。

下面是HBase和传统关系型数据库的区别:

arm hbase数据库 hbase数据库操作_hbase_02

HBase基本命令

名称

命令表达式

查看hbase状态

status

创建namespace

create_namespace ‘命名空间名称’

删除namespace

drop_namespace ‘命名空间名称’

查看namespace

describe_namespace ‘命名空间名称’

列出所有namespace

list_namespace

在namespace下创建表

create ‘命名空间名称:表名’, ‘列族名1’

查看namespace下的表

list_namespace_tables ‘命名空间名称’

创建表create

‘表名’,‘列族名1’,‘列族名2’,‘列族名N’

查看所有表

list

描述表

describe ‘表名’

判断表存在

exists ‘表名’

判断是否启用表

is_enabled ‘表名’

判断是否禁用表

is_disabled ‘表名’

添加记录

put ‘表名’‘rowkey’,‘列族:列’,‘值’

查看记录rowkey下的所有数据

get ‘表名’,‘rowkey’

查看所有记录

scan ‘表名’

查看表中的记录总数

count ‘表名’

获取某个列族

get ‘表名’,‘rowkey’,‘列族:列’

获取某个列族的某个列

get ‘表名’,‘rowkey’,‘列族:列’

计算表的行数量

count ‘表名’

删除记录

delete ‘表名’,‘行名’,‘列族:列’

删除整行

deleteall ‘表名’,‘rowkey’

删除一张表

先要屏蔽该表,才能对该表进行删除。第一步 disable ‘表名’,第二步 drop ‘表名’

清空表

truncate ‘表名’

查看某个表某个列中所有数据

scan ‘表名’,{COLUMNS=>‘列族名:列名’}

更新记录 就是重新一遍,进行覆盖

hbase没有修改,都是追加

基本操作演示

a.创建删除表

起初我们进入时是没有表的,可以用list命令展示目前的表:

arm hbase数据库 hbase数据库操作_arm hbase数据库_03


对于命令不熟悉的同学可以学会使用help命令查看。我们先开始创建一个user表,同时我们需要创建若干个列簇(列存储毕竟),我们先设定一个info列簇create 'user','info':

arm hbase数据库 hbase数据库操作_大数据_04

接下来使用describe命令可以查看表信息:

arm hbase数据库 hbase数据库操作_arm hbase数据库_05


好接下来删除一个表如何操作呢?我们注意上图中右上角有一个ENABLED标志代表它目前是使用中的状态,我们需要先disable该表再drop删除。

arm hbase数据库 hbase数据库操作_表名_06


删除成功。

b.表中记录的增删查

(不要问我为什么没有”改“,前面说过了HBase中基于时间戳写入,不存在”改“)

我们再创建回来刚才的user表,进行put数据插入,

arm hbase数据库 hbase数据库操作_命名空间_07

其中记住这个格式put ‘表名’‘rowkey’,‘列族:列’,‘值’,下面我们尝试查询表中数据,

arm hbase数据库 hbase数据库操作_arm hbase数据库_08


这三种查询最常用的是第三种范围查询,希望大家掌握。最后我们删除记录(delete、deleteall和truncate)

arm hbase数据库 hbase数据库操作_arm hbase数据库_09

以上就是HBase的基本命令。