- 5
- 0
- 约1.99千字
- 约 6页
- 2017-12-19 发布于河南
- 举报
Hbase 表设计
HBase与RDBMS的区别在于:HBase的Cell(每条数据记录中的数据项)是具有版本描述的(versioned),行是有序的,列(qualifier)在所属列簇(Column families)存在的情况下,由客户端自由添加。以下的几个因素是Hbase Schema设计需要考虑的问题:
1、 Hbase中没有joins的概念
大表的结构可以使得不需要joins,而解决这一问题。
2、Row keys 设计
主键,在Region里按字母顺序来排序(byte数组存储)。124 12345
写入要分散(不能使用递增的写入),如订单表: order_id做reverse逆排序后做rowkey,以便分布式存储,避免数据只保存在个别节点上。
201101 逆排序后 101102 201102 逆排序后 201102 多条件查询时,设为组合row key,左匹配
注:读取数据只能按row key(及其range)或scan全表扫描,确保查询高效
3、列族CF设计
尽量少,建议CF数量在1-2个。
设计Hbase schema的时候,要尽量只有一个column family。
flush和compaction触发的基本单位都是Region级别。当一个CF有大量的数据的时候会触发整个region里面的其他CF的memstore(其实这些memstore可能仅有少量的数据,还不需要flush
原创力文档

文档评论(0)