
# ALM-45436 ClickHouse表数据倾斜
#### 告警解释
ClickHouse各节点之间，分布式表对应的本地表中，若存在数据倾斜，系统产生此告警。当检测到数据均衡时，告警自动清除。
数据倾斜检测方法：
- 当参数"min_table_check_data_bytes"值为"0"时，不启用数据倾斜检查。
- 当参数"min_table_check_data_bytes"值为大于"0"时，启用数据倾斜检查。
启用数据检查后，若表数据量小于min_table_check_data_bytes，则不会因为存在倾斜而上报告警。当数据量大于min_table_check_data_bytes，且节点之间某张表数据量相差大于min_table_data_varies_rate中设置的百分比时，则存在数据倾斜且上报告警。
#### 告警属性
| 告警ID  | 告警级别 | 是否可自动清除 |
|:---|:---|:---|
| 45436 | 次要   | 是       |
   
#### 告警参数
| 参数名称 | 参数含义         |
|:---|:---|
| 来源   | 产生告警的集群或系统名称 |
| 服务名  | 产生告警的服务名称    |
| 角色名  | 产生告警的角色名称    |
| 表名   | 产生告警的库名.表名   |
   
#### 对系统的影响
ClickHouse中表存在数据倾斜，可能导致sql执行效率低。
#### 可能原因
数据写入策略不合理，导致各节点之间数据不均衡。
#### 处理步骤
1. 登录FusionInsight Manager页面，选择"运维 \> 告警 \> 告警"，查看当前告警"定位信息"中的角色名以及确认主机名所在的IP地址。
2. 以客户端安装用户，登录客户端的节点，执行如下命令： 
   **cd** *{客户端安装路径}*
   **source bigdata_env**
   - 安全模式（开启Kerberos）： **kinit** *组件业务用户*
     **clickhouse client --host** *上报告警的ClickHouseServer实例IP* **--port** 9440 **--secure**
     
   
   - 普通模式（关闭Kerberos）： **clickhouse client --host** *上报告警的ClickHouseServer实例IP* **--user** *用户名* **--password** **--port**9000
     
   
   
   
   
3. 查看数据分布情况 
   **select FQDN(), database, table, sum(data_compressed_bytes) from clusterAllReplicas(** *逻辑集群名称* **, system.parts) where database='** *库名* **' and table='** *表名* **' and active=1 group by (FQDN(), database, table);**
   
   
4. 根据业务需求选择迁移数据或一键均衡。
5. 完成均衡后查看告警是否消除。 
   - 是，操作结束。
   
   - 否，执行[步骤 6]。
   
   
   
   
**收集故障信息**
6. 在FusionInsight Manager界面，选择"运维 \> 日志 \> 下载"。
7. 在"服务"中勾选待操作集群的"ClickHouse"。
8. 在"主机"中选择异常的主机，单击"确定"。
9. 单击右上角的时间编辑按钮，设置日志收集的"开始时间"和"结束时间"分别为告警产生时间的前后1小时，单击"下载"。
10. 请联系运维人员，并发送已收集的故障日志信息。
 
#### 告警清除
此告警修复后，系统会自动清除此告警，无需手工清除。
#### 参考信息
不涉及。
