面试题答案
一键面试1. 按固定步长拆分
- 数据均匀分布:在数据增长规律符合步长设定时,数据分布较为均匀。例如,当RowKey是时间戳且按天增长,步长设为一天,数据可按天均匀分布在不同Region。但如果RowKey无明显规律,可能导致数据分布不均。
- 读写性能:读性能方面,由于数据相对均匀分布,读请求能较均衡地分布在不同Region,减少热点Region压力,读性能较好。写性能上,若写入数据顺序与步长设定契合,可分散写入压力,写性能佳;否则可能出现局部写热点。
- 存储开销:Region数量由步长决定,预先确定,存储开销相对稳定。每个Region有一定元数据开销,Region过多会增加整体存储开销。
- 业务场景举例:时间序列数据,如服务器日志,按时间步长预拆分可使数据均匀分布,提升读写性能。
2. 按哈希拆分
- 数据均匀分布:通过对RowKey进行哈希计算,数据能均匀分布在各个Region,基本不受RowKey本身规律影响,可有效避免数据倾斜。
- 读写性能:读性能,因数据均匀分布,读操作分散,性能良好。写性能同样出色,因为写操作均匀分散到不同Region,不易出现写热点。
- 存储开销:由于哈希计算相对复杂,Region数量可能较多,元数据存储开销有所增加。但因数据分布均匀,可减少因热点数据导致的额外存储开销。
- 业务场景举例:用户行为数据,RowKey为用户ID,使用哈希拆分可使不同用户数据均匀分布,适合高并发读写场景。
3. 选择合适预拆分策略的方法
- 高并发读写且RowKey无规律场景:如电商系统用户订单数据,选择哈希拆分策略,保证数据均匀分布,提升读写性能。
- 有规律增长数据场景:如物联网设备按时间上报数据,采用按固定步长拆分,依据数据增长规律设定步长,实现数据均匀分布和良好的读写性能。