Spark大数据分与实践笔记(第五章 HBase分布式数据库-02)

本文详细介绍了HBase分布式数据库的基本操作,包括Shell和Java API两部分。在Shell操作中,涵盖了创建、插入、扫描、更新、获取、删除等命令的使用;在Java API操作中,展示了创建工程、连接集群、创建表、插入数据、查询和删除数据的步骤。
摘要由CSDN通过智能技术生成

第五章 HBase分布式数据库

5.3 HBase的基本操作

5.3.1 HBase的Shell操作

HBase Shell提供大量操作HBase的命令,通过Shell命令很方便地操作HBase数据库,如创建、删除及修改表、向表中添加数据、列出表中的相关信息等操作。当使用Shell命令行操作HBase时,需要进入HBase Shell交互界面,执行“bin/hbase shell”命令进入到目录/hbase-1.2.1的界面。
在这里插入图片描述

进入HBase Shell交互界面后,可以通过一系列Shell命令操作HBase, 接下来,通过一张表列举一些操作HBase表常见的Shell命令,具体如表所示。
表5-1 常见的Shell命令

命令名称 相关说明
create 创建表
put 插入或更新数据
scan 扫描表并返回表的所有数据
describe 查看表的结构
get 获取指定行或列的数据
count 统计表中数据的行数
delete 删除指定行或者列的数据
deleteall 删除整个行或列的数据
truncate 删除整个表中的数据,但是结构还在
drop 删除整个表,数据和结构都删除(慎用)

关于HBase中常见的Shell操作的讲解具体如下:

1.创建表

通过create创建表,具体语法如下:

create 'table name', ' column family'

在上述语法中,“table name"为表名,创建表必须指定;“column family"为列族名,创建表也必须指定。
例如,创建一个名称为student、 列族名为info的HBase表,命令如下:
在这里插入图片描述

执行"list"命令,查看数据库中的数据表,命令如下:
在这里插入图片描述

在上述代码中,出现了student数据表,说明创建表成功。

2.插入操作

通过使用put插入或者更新表中的数据,具体语法如下:

put 'table name', 'row1', 'column family: column name', 'value'

在上述语法中,“row1 ”为行键(即Row Key) ;“column family: column name’为列族和列名的值。
例如,向student表中插入五条数据,命令如下:

hbase(main):009:0> put 'student','1001','info:sex','male'
0 row(s) in 0.5600 seconds

hbase(main):010:0> put 'student','1001','info:age','18'
0 row(s) in 0.0150 seconds

hbase(main):011:0> put 'student','1002','info:name','Janan'
0 row(s) in 0.0320 seconds

hbase(main):012:0> put 'student','1002','info:sex','female'
0 row(s) in 0.0360 seconds

hbase(main):013:0> put 'student','1002','info:age','20'
0 row(s) in 0.0240 seconds
3.扫描操作

通过scan扫描表中的数据,具体语法如下:

scan ‘table name’

例如,扫描student表的所有数据,如下:
在这里插入图片描述

4.查看操

通过describe查看表结构,具体语法如下:

describe tabfe name

查看student表的表结构,命令如下:
在这里插入图片描述

上述代码中,通过describe输出了 student表的结构,表结构包含很多字段,具体介绍如下:
●NAME:表示列族名。
●BLOOMFILTER: 表示为列族级别的类型(读者只作了解即可)。
●VERIONS: 表示版本数,默认值为1。
●IN_ MEMORY:设置是否存入内存。
●KEEP_ DELETED_ CELLS:设置被删除的数据,在基于时间的历史数据查询中是否依然可见。
●DATA_ .BLOCK_ ENCODING: 表示数据块的算法(读者只作了解即可)。
TTL:表示版本存活的时间。
●COMPRESSION: 表示设置压缩算法。
●MIN_ _VERSIONS:表示最小版本数。
●BLOCKCACHE: 表示是否设置读缓存。
REPLICATION:表示设置备份。

5.更新操作

通过使用put更新student表指定字段的数据,具体语法如下:

put 'table name',' row ' ,' column family :column name',' new value
6.获取指定字段的操作

通过使用get获取指定行或指定列族:列的数据,具体语法如下:
//查看指定行的数据

get ' table name','row1 '

获取student表中行键为1001的数据,命令如下:
在这里插入图片描述
查看指定行,指定列的数据, 获取行键为1001,的age列的数据,命令如下:
在这里插入图片描述

7.创建表时定义列族的版本值

在创建表时定义列族的版本值(可以存储历史版本的个数)。
在这里插入图片描述
接下来插入数据,查看历史版本的数据。
在这里插入图片描述
通过scan扫描对表指定列进行查询,语法如下:

Scan ‘tablename’,{
  COLUMN=>’columnfamliy:columnname’,VERSONS=>value’}

扫描表中的列族info中的name列:
在这里插入图片描述

8.alter修改表

通过alter可以在表中增加列族。语法如下:

alter ‘tablename’NAME=>?,VERSIONS=?

演示:
在这里插入图片描述
插入数据,并查看结果:
在这里插入图片描述
alter 可以删除表中的数据,但alter只能以列族为单位删除,语法如下:

alter '表名’ , NAME => '列族' , METHOD => 'delete' 

或者

alter '表名' , 'delete' => '列族'

删除表student1中的列族info

hbase(main):009:0> alter 'student1' , 'delete' => 'info'
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 2.7580 seconds
9.统计操作

通过使用count统计表中数据的行数,具体语法如下:

count 'table name'

统计student表中数据的行数,命令如下:
在这里插入图片描述

10.删除操作

通过使用delete删除表中“指定字段”的数据,具体语法如下:

deletg 'table name', ' row', ' column name', ' timestamp

删除student表中行键为1002、列名为info:sex的一条数据,命令如下:
上述命令执行成功后,使用scan获取数据表中的数据,命令如下:
在这里插入图片描述

从上述代码可以看出,行键为1002、列名为info:sex的数据已经被删除。
如果要删除表中一-行所有的数据,可以使用deleteall命令, 具体语法如下:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妉妉师姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值