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

ALM-45437 ClickHouse表part数量过多

告警解释

当part数量超过阈值part_num_threshold时,系统上报此告警。

当part数量低于阈值part_num_threshold时,告警自动消除。

告警属性

告警ID

告警级别

是否可自动清除

45437

次要

告警参数

参数名称

参数含义

来源

产生告警的集群或系统名称

服务名

产生告警的服务名称

角色名

产生告警的角色名称

表名

产生告警的表名、库名

主机名

产生告警的主机名

对系统的影响

ClickHouse表part数量过多可能导致业务报错。

可能原因

ClickHouse表数据分布不合理,或后台合并任务执行慢导致part数量多。

处理步骤

  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. 执行如下命令,手动触发part合并:

    optimize table 库名.表名 final;

  4. 查看part数量是否减少

    select FQDN(), database, table, count(1) from clusterAllReplicas(default_cluster, system.parts) where database='库名' and table='表名' and active=1 group by (FQDN(), database, table);

    1. 若part数量减少到阈值以下,等待5min查看告警是否消除。
      • 是,操作结束。
      • 否,执行5
    2. 若part数量仍然未减少,则检查表的分区键是否设置不合理,分区数量太多,若不合理,需要整改业务。
    3. 返回内容为空,则说明该表已经不存在,此告警为历史告警,可忽略,手动清除即可。

收集故障信息

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

告警清除

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

参考信息

不涉及。