在HBase这种分布式列式数据库中,Rowkey的设计至关重要,因为它直接影响着数据的分布和查询效率。以下是关于HBase Rowkey设计的一些关键知识点: 1.唯一性原则:Rowkey必须确保全局唯一,避免数据冲突,可结合业务主键和时间戳或哈希值实现。 2.长度原则:Rowkey应尽可能短,一般不超过16个字节,以提高存储和检索效率。过长的Rowkey会导致存储空间浪费和内存利用率下降。 3.散列原则:设计时应考虑散列字段,高位设为散列值,低位放置业务或时间信息,有助于防止热点问题。 4.加盐(Salting):在Rowkey前添加随机字符串,进一步分散数据,避免集中存储。 5.哈希策略:使用哈希函数确保数据随机分布,但可能牺牲自然顺序。需要按时间顺序查询时,可使用时间戳加哈希值。 6.反转策略:将高位设为时间戳反向表示,避免时间序列导致热点问题。常见问题包括数据倾斜、Region Server退出和写入速度慢,解决可通过改进Rowkey设计和优化配置。优化策略包括预分区表设计、Rowkey优化、减少Column Family、Major Compaction、内存配置和GC调优。