相关笔记:
物理视图来看:Hbase 是一个MAp,由很多key-value对组成(和普通的Map不同的是:稀疏的、分布式的、多维排序的Map)。是按列簇存储的,分别存储在不同的目录中。


根据行名rowkey、列(列簇:列名 contents:html)、时间戳t5可以定位到具体的value。
特性解释:
1、多维:Hbase中的map的key是一个复合数据结构,由多维元素构成,包括rowkey、column family、column qualifier、type以及timestamp。
2、稀疏:比如逻辑表中行"com.example.www"可以看出,整整一行仅有一列(people:author)有值,其他列都为空值。对于HBase来说,空值不需要任何填充,从而节省了大量的空间,这也是hbase的列可以无限扩展的一个重要条件。
3、排序:构成HBase的KV在同一个文件中都是有序的,但规则并不是仅仅按照rowkey排序,而是按照KV中的key进行排序——先比较rowkey,rowkey小的排在前面;如果rowkey相同,再比较column,即column family:qualifier,column小的排在前面;如果column还相同,再比较时间戳timestamp,即版本信息,timestamp大的排在前面。这样的多维元素排序规则对于提升HBase的读取性能至关重要
————————————————

行式存储:一行数据存一起,比如mysql,获取整行高效,获取某列需要截取, OLTP主要是对数据的增删改()
列式存储**:列式存储理论上会将一列数据存储在一起,不同列的数据分别集中存储,最典型的如Kudu、Parquet on HDFS等系统(文件格式)。
列簇式存储:介于行式存储和列式存储之间,可以通过不同的设计思路在行式存储和列式存储两者之间相互切换,比如
1、一张表只设置一个列簇,这个列簇包含所有用户的列。HBase中一个列簇的数据是存储在一起的,因此这种设计模式就等同于行式存储
2、一张表设置大量列簇,每个列簇下仅有一列,这种设计模式就等同于列式存储
————————————————

DDL/DML/DQL/DCL
(Data Definition Language 数据定义语言)用于操作对象及对象本身,这种对象包括数据库,表对象,及视图对象
create:创建数据库和数据库的一些对象
drop:删除数据表、索引、触发程序、条件约束以及数据表的权限等
alter:修改数据表定义及数据属性(Data Manipulation Language 数据操控语言) 用于操作数据库对象对象中包含的数据
insert:向数据库插入一条数据
delete:删除表中的一条或多条记录
update:用于修改表中的数据(Data Query Language 数据查询语言 )用于查询数据 select
(Data Control Language 数据控制语句) 用于操作数据库对象的权限
greate:分配权限给用户
revoke:废除数据库中某用户的权限

3.1 HBase的优点
3.2 HBase的缺点
hbase的一个列簇本质上就是一颗LSM树,lSM分为内存和磁盘部分,内存选择跳跃表,磁盘采用了布隆过滤器。
