基于RowKey 的索引问题总结
1、索引单一
2、多维度(字段/列)查询困难
- 多字段分别作为RK,写入多次
- 组合字段作为RK,设计复杂,不灵活
3、不经过索引的并行scan过滤,大量资源消耗,无时效性可言
总体设计
二级索引构建模式
1)以主数据的列值作为索引数据的RowKey,以主数据的RowKey 作为索引数据的列值,以此来构建指定列作为查询条件的Hbase 二级索引。
2)索引的构建与数据的查询都是分布式、并发式进行的
索引设计
1)索引与主数据存放在同一张表的不同Column Family 中
- 索引与主数据划分到同一个Region 上,减少RPC 次数,减少网络通信压力
- 索引与主数据分配在不同的Column Family 中,实现了索引与主数据的物理分离
2)RowKey 格式:RegionStartKey-索引名-索引键-索引值(索引键:主数据列值,索引值:主数据RowKey)
- RegionStartKey:同一Region 的全体数据按RowKey,自动实现索引与主数据的逻辑分离
写路径
读路径
分裂
索引重建
优化
分享链接
演讲稿下载地址:
http://download.csdn.net/detail/whbsr516/8922067
视频演讲地址:
http://www.infoq.com/cn/presentations/qihoo360-hbase-two-stage-index-design-and-practice
时间: 2024-10-19 11:20:35