HBase的数据模型: HBase实质上其实就是Key-Value的数据库.
HBase中是有表的概念的
一个表中能够蕴含多个列族
一个列族能够蕴含很多的列
每一个列对应的单元格(值、timestamp)
HBase介于nosql(非关系型数据库)和RDBMS(关系型数据库管理系统)之间,仅能通过主键(row key)和主键的range来检索数据,
仅反对单行事务(可通过hive反对来实现多表join等简单操作)。次要用来存储非结构化和半结构化的涣散数据。
RowKey(行键):
Rowkey相当于SQL中的主键。rowkey决定了row在表中的存储程序,在HBase中,row的排序形式为字典程序。
HBase中的三种查问形式:
1、基于Rowkey的单行查问
2、基于Rowkey的范畴扫描
3、全表扫描 Row key行键
(Rowkey)能够是任意字符串(最大长度是 64KB,理论利用中长度个别为 10-100bytes),在Hbase外部,rowkey保留为字节数组。
Column(列):
能够了解为其MySql中的列。根本的存储单位,一个或者多个列造成列族。 ColumnFamily(列族)
列族是咱们在开始创立表的时候就须要定义的,它是表的一部分。 表中的有些属性也是在列族上定义的,比方过期工夫、数据块缓存以及是否压缩等。
Cell(单元格):
{rowkey:column family:column:version}
一个列上能够存储多个版本的值,多个版本的值存储在多个单元格外面,多个版本之间通过版本号(Version)来辨别
Time Stamp(工夫戳)
工夫戳就是实现多版本的关键所在。通过不同的timestamp来标识雷同rowkey行对应的不同版本的数据。
HBase 中通过 rowkey和 columns 确定的为一个存储单元(cell),每个cell都保留着同一份数据的多个版本,通过工夫戳来索引。
Hbase的一些操作(表,行键,列族,列)
创立表
HBase是没有schema的,就是在创立表的时候不须要指定表中有哪些列,只须要指定有多少个列蔟
create "表名","列蔟1", "列蔟2"
删除表
删除表之前咱们首先要禁用表,如果不禁用表这里会呈现无奈删除的状况
禁用表
disable “表名”
删除表
drop “删除表”
https://blog.csdn.net/FengTin...
https://zhuanlan.zhihu.com/p/...