Habse概念Hbase命令行相关操作Hbase程序实例(后续补充)
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:主键对应的一个列名就是一个cellTimestamp:时间戳
本节主要是讲解一些常用命令,后期遇到再补充
- 进入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'},{NAME=>'fm2',COMPRESSION=>'SNAPPY'},{NAME=>'fm3',COMPRESSION=>'SNAPPY'},{SPLITS => ["0","1","2","3","4","5","6","7","8","9"]}
命名空间:前缀_表名 列 分区:是以开头的数字来分的。
给表新增列: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=>"065x0118600247165",ENDROW=>"065x0118600247165x7F"}
Ⅱ、get 'jzh:jzh_12345', "96709451541x012021-07-05 17:36:29x012199574"
scan方式可以进行模糊查询,是左闭右开;get方式只能精确查询删除表中一条数据:delete 'jzh:jzh_12345', '列名', 'fm1:jzh'清空表数据:truncate 'jzh:jzh_12345'



