长度原则:
100字节以内,8的倍数最好,可能的情况下越短越好。因为HFile按照key-value存储,过长的rowkey会影响存储效率;其次,过长的rowkey在memstore中较大,影响缓冲效果,减低检索效率。最后,操作系统大多为64位,8的倍数,充分利用操作系统的最佳性能。
散列原则:
将rowkey的高位作为散列字段,这样将提高数据均分布在每个RegionServer,以实现负载均衡几率。
唯一原则:
必须在设计上保证其唯一性,rowkey是按照字段顺序排序存储的。因此在设计rowkey的时候,要充分利用排序的特点,将经常读取的数据存储到一块,将醉经可能会被访问的数据放到一块。
如何设计
(1)生成随机数、hash、散列值
(2)字符串反转