我想知道如下所示的rowkeys是不是很糟糕:
用户名时间戳
这些行将从MapReduce作业中读取,并将使用java客户端API进行放置。此外,将使用STARTROW,ENDROW选择子集。
一方面,这对我的用例来说似乎很方便,因为我可以扫描特定的间隔,而且几乎是后续的MR作业,而另一方面,我读到最好避免长行和热插拔。
这个设计确实存在问题以及如何克服它?
我是HBase的新手,所以任何帮助都会很棒。
答案 0 :(得分:1)
一般建议是避免单调增加行键。为此目的,一些软件工具包括所谓的"盐"行键,跨区域哈希键。可在此处找到讨论:http://hbase.apache.org/0.94/book/rowkey.design.html。在这里:https://phoenix.apache.org/salted.html。您还可以查看Apache Trafodion http://trafodion.apache.org/,它使用行键salting来分发类似SQL的主键。