首先说,这个是一不错的方案,但是乱用的问题特别的严重。
在没有使用phoenix之前,对hbase的rowkey的设计是一门学问。难道有了phoenix我们就可以不在考虑这样rowkey的问题了吗,答案是千万不要这样干。
只要当你的主键必须是单调递增的时候,而且我们使用这个主键去检索数据,那么这个salt bucket 就是完美的选择了。
如果我们想当然的将主键设计成uuid,然后再用saltbucket。这样保存数据高效了,那么你查询数据的时候难道没有条件吗,难道就是全表扫描吗,如果是全表扫描,你还用phoenix干什么,直接把数据放在hdfs上不就可以了吗。
重点来了:
这样说来,实际上使用salt bucket的机会不多,还是需要设计好主键,然后对hbase表做预分区才是王道。