倾斜问题会导致实例资源无法被充分使用,从而出现查询速度不符合预期的问题。
整体排查思路总结为:
- 查看关于计算节点CPU使用率的监控指标。若不同计算节点CPU使用率相差过大,则存在倾斜问题

1. 因分布键配置不合理导致的倾斜
select hg_shard_id, count(*) as rows from ads_delivery_staff_carssu_minute group by hg_shard_id order by hg_shard_id;
2. 因shard分配不均匀导致的倾斜
排查是否存在Shard分配倾斜的情况,可SQL,可Holoweb。
SQL方式:
– 总shard数
select worker_id, count(1) as shard_count from hologres.hg_worker_info group by worker_id;
– TG维度的总shard数
select table_group_name, worker_id,
count(1) as shard_count from hologres.hg_worker_info
group by table_group_name, worker_id order by table_group_name desc;
Holoweb方式

解决方案:如果shard数不合理,迁移TG或调整副本;如果shard数合理只是分配不均匀,可执行rebalance命令或重启实例
– 通用型实例rebalance,过程大概3分钟,期间会有15秒的写入中断
SELECT hg_rebalance_instance();
– 计算组实例,需按计算组rebalance。过程大概3分钟,期间会有15秒的写入中断
select hg_rebalance_warehouse(‘<warehouse_name>’);
PS:通常情况下,实例在扩/缩容、重启等场景下会自动保证Shard均匀调度。但在老版本等特殊情况下可能会出现shard调度不均匀的情况,可以执行rebalance命令,手动干预触发均衡。
3. 排查是否存在数据倾斜,只可SQL查看。如果存在数据倾斜,建议重新设置合适的Distribution Key或拆表。
详细排查手段参考文档(很详细):https://help.aliyun.com/zh/hologres/user-guide/query-the-shard-allocation-among-workers?spm=a2c4g.11186623.0.0.562831a4CFvWmg#section-x1m-kg6-yvc


826

被折叠的 条评论
为什么被折叠?



