如果rowkey设计得很长(例如200个字母),但它有助于扫描和过滤。长链设计有害吗?
答案 0 :(得分:1)
我会说 - 不要让rowkeys太长。即使长行键看起来很容易根据某些过滤器进行扫描,但它会占用更多的堆空间而不是保证。
Store files in hbase are LSM trees. To speed up random access within the store files , an index is stored for Data Block and Meta Block , which contain first key for each block along with other information. When added up for lots of blocks, it may take up big chunk of RAM.
检查hfiles的商店文件索引的总大小,看看你的情况是否有问题。
如果不可避免的那么
一些解决方案可能是 - 增加块大小并启用压缩
另请参阅https://issues.apache.org/jira/browse/HBASE-3551进行一些有趣的阅读。
答案 1 :(得分:0)
rowkey设计有两种选择:tall-narrow
和flat-wide
。根据您的业务,您可以选择其中之一。长排的设计没有坏处。