在「HBase」中, 从逻辑上来讲数据大概就长这样:
单从图中的逻辑模型来看, HBase 和 MySQL 的区别就是:
将不同的列归属与同一个列族下
支持多版本数据
这看着感觉也没有那么太大的区别呀,...他的数据是如何进行存储的呢?
HBase 数据物理结构
在介绍其物理结构之前, 要先简单提一下 LSM 树
LSM树
和 MySQL 所使用的B+树一样, 也是一种磁盘数据的索引结构....他的中文名字叫: 日志结构合并树. 文件存储的是对数据的修改操作, 数据会 append 但不会去修改原有的数据. 是顺序写入操作....「内存有序结构的实现」
通过跳表来维护内存中的有序结构, 当一个跳表装满之后, 将禁止新的写入操作并将其 push 到磁盘中, 同时开一个新的数据结构来接收新到的操作请求....「磁盘文件的结构」
由三部分组成:
头信息: 存储文件大小, 文件块数量, 索引位置, 索引大小等信息
索引数据: 用户对文件中所有数据块进行索引, 其中每一个数据块都包含一条索引数据, 索引内容包括