RowKey 设计四原则
- 写入的时候能分散到多台服务器上;
- 读取的时候都尽量批量顺序访问;
- 尽量短;(按 byte 数组越短越优)
- rowKey 在 HBase 中只插入不更新;
原则详解:
- 大量写入的时候,单台节点压力是很大的,因此将写入分散到多台机器上能有效提升 TPS,并且避免单节点宕机;
- 读取的时候批量获取结果比单条结果的获取效率要高一到两个数量级以上;不论是MySQL 还是 HBase 这都是很好的实践。由于 NoSQL 需要针对访问方式(比如随机或者顺序的查询等方面)设计,而不强制数据结构的规范,因此这点对 HBase 更有意义。如果可能,对于多次不同的读请求最好能比较均匀的分布到多个节点上。
- 对于HBase的存储,rowKey是唯一标示数据的关键字,对于每一个Value都会重复存储,因此越短越好。从存储空间利用率讲,也应该是在业务可以接受的情况下,越短越好。
- 在 HBase 中所有操作都是“流式”操作,不会更改原来存储过的数据,只会进行 append,并通过加上新的版本标识表示是最新数据。
网友评论