Habse概念
官方网站:https://hbase.apache.org/book.html#
官网给的解释很通透,这里以官网的描述加上自我理解!!!!!
Data Model
In HBase, data is stored in tables, which have rows and columns. This is a terminology overlap with relational databases (RDBMSs), but this is not a helpful analogy. Instead, it can be helpful to think of an HBase table as a multi-dimensional map.
关于base的概念:
- Table:就mysql数据库一样,mysql是一个主键对应一条数据,而hbase是一个主键对应多条数据
hbase的表结构是由一个Row和多个Column组成的 - Row:相当于mysql中的主键,是能够唯一确定一条数据的值
- Column:就是图中的列名
- Column Family:可能会定义多个列族
- Column Qualifier:列的限定符
- Cell:主键对应的一个列名就是一个cell
- Timestamp:时间戳
Hbase命令行相关操作
本节主要是讲解一些常用命令,后期遇到再补充
- 进入hbase主机:
hbase shell
- 查看hbase的各种命令用法:
help 或者 help ’命令名‘
- 退出hbase主机:
exit
- 查看hbase全部表:
list
- 查看hbase命名空间:
list_namespace
- 查看某个命名空间下的全部表:
list_namespace_tables '命名空间'
- 查看某个命名空间的创建方式:
describe_namspace '命名空间'
- 创建一个命名空间:
create_namespace '命名空间'
- 删除一个命名空间:
drop_namespace '命名空间'
- 查看一个表是否存在:
exists 'jzh:jzh_12345'
- 创建一个表:
create 'jzh:jzh_12345',{NAME=>'fm1',COMPRESSION=>'SNAPPY', TTL => 7776000},{NAME=>'fm2',COMPRESSION=>'SNAPPY'},{NAME=>'fm3',COMPRESSION=>'SNAPPY'},{SPLITS => ["0","1","2","3","4","5","6","7","8","9"]} 命名空间:前缀_表名 列 数据失效时间(60 * 60 * 24*90) 分区:是以开头的数字来分的。
- 给表新增列:
alter 'jzh:jzh_12345',{NAME=>'fm4',COMPRESSION=>'SNAPPY'}
- 给表删除列:
alter 'jzh:jzh_12345', {NAME => 'fm4', METHOD => 'delete'}
- 查看一个表的详细信息:
desc 'jzh:jzh_12345'
- 让表失效:
disable 'jzh:jzh_12345'
- 让表生效:
enable 'jzh:jzh_12345'
- 判断表是否是失效状态:
is_disabled 'jzh:jzh_12345'
- 判断表是否是启用状态:
is_enabled 'jzh:jzh_12345'
- 删除表(删除前先失效):
drop 'jzh:jzh_12345'
- 向表中插入数据:
put 'jzh:jzh_12345', '10010', 'fm1:NAME', 'jzh'
- 查看表中全部数据:
scan 'jzh:jzh_12345'
- 查看表中1条数据:
scan 'jzh:jzh_12345', LIMIT=>1
- 查看表中指定某条数据:
Ⅰ、scan 'jzh:jzh_12345',{STARTROW=>"065\x0118600247165",ENDROW=>"065\x0118600247165\x7F"}
Ⅱ、get 'jzh:jzh_12345', "96709451541\x012021-07-05 17:36:29\x012199574"
scan方式可以进行模糊查询,是左闭右开;get方式只能精确查询 - 删除表中一条数据:
delete 'jzh:jzh_12345', '列名', 'fm1:jzh'
- 清空表数据:
truncate 'jzh:jzh_12345'