共计 1007 个字符,预计需要花费 3 分钟才能阅读完成。
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/…