第 5 章 · Schema 与 RowKey 设计:设计行键就是设计负载分布 章节摘要:HBase 没有 SQL 优化器,查询性能在 Schema 定稿那一刻就锁定了。本章是全册高潮:RowKey 的设计直接决定每行数据的落点分布,进而决定写入热点、扫描宽度与缓存效率。讲反转、加盐、哈希、组合键四种模式及代价,列族与版本参数的工程选择,最后以订单表和画像表两个完整设计收束。 学习目标 阅读完本章,你应当能够: 把任意业务查询翻译成行键区间算术,反推 RowKey 编码; 掌握反转、加盐、哈希、组合键四种散列模式及各自牺牲的查询能力; 做出列族、版本、TTL、压缩、块大小的初始决策; 识别热点与倾斜的 Schema 成因并给出改键方案; 用双表/二级索引方案绕开"单表多查询模式"的死结。
章节摘要:HBase 没有 SQL 优化器,查询性能在 Schema 定稿那一刻就锁定了。本章是全册高潮:RowKey 的设计直接决定每行数据的落点分布,进而决定写入热点、扫描宽度与缓存效率。讲反转、加盐、哈希、组合键四种模式及代价,列族与版本参数的工程选择,最后以订单表和画像表两个完整设计收束。
阅读完本章,你应当能够:
RowKey 不是主键,是"分区函数加索引"的二合一:你写下的每个字节都在替集群决定负载。

查询模式到行键算术的翻译法,四种散列模式的原理与代价,热点诊断与改键流程。
列族数量、VERSIONS、TTL、COMPRESSION、BLOCKSIZE、布隆类型的初始决策与修改代价。
订单表与画像表的完整 Schema 推演;无二级索引时的四种替代方案(双写、Coprocessor、索引表、搜索引擎)。
行键(横向 分布问题) | 列族与参数(纵向 存储问题) | 综合实战(把 5.1 5.2 的决策拼成两张真实表)