本文来自本人于2018年12月25日在 HBase生态+Spark社区钉钉大群直播,本群每周二下午18点-19点之间进行 HBase+Spark技术分享。加群地址:https://dwz.cn/Fvqv066s。本文 PPT 下载:关注 iteblog_hadoop 微信公众号,并回复 HBase_Rowkey 关键字获取。
为什么Rowkey这么重要
RowKey 到底是什么
如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop
我们常说看一张 HBase 表设计的好不好,就看它的 RowKey 设计的好不好。可见 RowKey 在 HBase 中的地位。那么 RowKey 到底是什么?RowKey 的特点如下:
类似于 MySQL、Oracle中的主键,用于标示唯一的行;
完全是由用户指定的一串不重复的字符串;
HBase 中的数据永远是根据 Rowkey 的字典排序来排序的。
RowKey的作用
读写数据时通过 RowKey 找到对应的 Region;
MemStore 中的数据按 RowKey 字典顺序排序;
HFile 中的数据按 RowKey 字典顺序排序。
Rowkey对查询的影响
如果我们的 RowKey 设计为 uid+phone+name,那么这种设计可以很好的支持以下的场景:
uid = 111 AND phone = 123 AND name = iteblog
uid = 111 AND phone = 123
uid = 111 AND phone = 12?
ui