分布式数据库从入门到实战
彭旭
惟客数据总架构师
1005 人已学习
新⼈⾸单¥59
分布式数据库从入门到实战
15
15
1.0x
00:00/00:00
登录|注册

08|HBase如何组织与存储数据?

你好,我是彭旭。
上节课,我们分析了云服务的数据存储需求,了解了之前基于 MySQL 的分库分表支撑海量数据的存储与读写的过程。但是,因为硬件与运维上的巨大成本,我们不得不谋求一个新的存储方案。
这两节课,我们就一起学习 HBase 的架构和原理,看看 HBase 是怎么解决之前的问题的。
今天我们会聚焦在 HBase 组织数据的方式上,解决上节课提到的运维成本问题。希望通过这节课的学习,你能了解两个关键知识点。
HBase 如何存储数据,给数据分区。在集群扩容的过程中,HBase 自动迁移分区从而实现负载均衡的过程。
HBase 物理上存储数据的方法,HBase 集群包含的组件以及组件之间的协作方式。

HBase 数据组织的逻辑模型

使用一个数据库,第一步可以去理解它的数据模型,还有它的数据是怎么组织的。
HBase 和关系型数据库一样,以数据表的形式组织数据。一张表包含多行数据,每行数据都由一个唯一的行键来标识。
数据在表中以行键的字典序排序,像这张图一样。
行键类似关系型数据库主键,通过行键可以定位到一行数据。对 HBase 来说,通过行键来读取单行或者多行数据最高效。当然,它也支持基于行键区间的扫描。
HBase 是一个宽列族存储数据库,数据按列族聚簇存储在一起。虽然 HBase 是列式存储数据库,但不建议一个表有多个列族。所以,在单个列族的情况下,基本上就跟行式存储类似了。
HBase 建表的时候需要至少指定一个列族,但是不需要声明列。每一行数据都可以定义属于自己的列,也就是支持动态的 Schema。但是每行的列不一定有值,所以 HBase 是一个稀疏表。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. HBase的数据模型类似一个嵌套了多层的Map,通过行键、列族、列限定符、数据版本可以找到存储的行、列的数据。 2. HBase的逻辑模型支持动态Schema,每行数据都可以定义属于自己的列,并且支持多个版本的数据,这种设计解决了兼容多版本的客户端需求。 3. HBase的分区是数据分布与负载均衡的最小单元,HBase能够自动帮助拆分、合并分区,并在集群扩容时自动迁移分区、平衡数据与请求。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式数据库从入门到实战》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)