更新时间:2024-09-04 GMT+08:00

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

收集故障信息

  1. 在FusionInsight Manager界面,选择“运维 > 日志 > 下载”。
  2. 在“服务”中勾选待操作集群的“ClickHouse”。
  3. 在“主机”中选择异常的主机,单击“确定”。
  4. 单击右上角的时间编辑按钮,设置日志收集的“开始时间”和“结束时间”分别为告警产生时间的前后1小时,单击“下载”。
  5. 请联系运维人员,并发送已收集的故障日志信息。

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

不涉及。