前一节我们共同完成了HBase的简介、安装与环境搭建,下面我们一起来上手一下HBase的基本操作与使用。
HBase是如何存储的?
在开始上手HBase前我们先看看它的存储方式:
不同于一般关系数据库RDBMS的存储方式,HBase里字段的格式只有一种,就是Bytes,字节。这使得它更像是一种文件的存储而不是一般意义上的数据表。
最重要的是理解它的存储模式。我们可以称之为列簇,它的每个列簇可以包含多个列,也就表现成上图中“URL”和“Parser”之间的关系,他俩同属于一个列簇。而我们进行检索时,我们主要靠Rowkey来进行检索。
下面是HBase和传统关系型数据库的区别:
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
命令展示目前的表:
对于命令不熟悉的同学可以学会使用help
命令查看。我们先开始创建一个user
表,同时我们需要创建若干个列簇(列存储毕竟),我们先设定一个info列簇create 'user','info'
:
接下来使用describe
命令可以查看表信息:
好接下来删除一个表如何操作呢?我们注意上图中右上角有一个ENABLED
标志代表它目前是使用中的状态,我们需要先disable
该表再drop
删除。
删除成功。
b.表中记录的增删查
(不要问我为什么没有”改“,前面说过了HBase中基于时间戳写入,不存在”改“)
我们再创建回来刚才的user表,进行put
数据插入,
其中记住这个格式put ‘表名’‘rowkey’,‘列族:列’,‘值’
,下面我们尝试查询表中数据,
这三种查询最常用的是第三种范围查询,希望大家掌握。最后我们删除记录(delete、deleteall和truncate)
以上就是HBase的基本命令。