页面树结构
转至元数据结尾
转至元数据起始

(本文档仅供参考)

现象:

自助ETL抽取数据到clickhouse时报错:Too many parts

原因:

当数据插入到[clickhouse]表时,每一批插入都会生成对应parts文件,clickhouse后台会有合并小文件的操作;

当插入速度过快,生成parts小文件过多时,clickhouse无法以适当的速度合并这些parts时会报上面这个错误。

解决方案:

1、spark写入clickhouse的并发数调小,批处理的数据size间隔调大,比如之前200并发调整到50并发,从之前一批1w条数据调整到5w条数据,从而减少clickhouse文件的个数,避免超过parts_to_throw_insert默认值

2、增加可合并的分区数,在/etc/clickhouse-server/config.xml修改clickhouse配置:

3、具体问题及原理可参考:
https://cloud.tencent.com/developer/article/2336830


  • 无标签

评论

  1. 华燕培 发表:

    parts_to_throw_insert: 表分区之中活跃part数目超过多少 会抛出异常,
    parts_to_delay_insert:表分区之中活跃part数目超过多少 会导致延迟写入,
    max_delay_to_insert:以秒为单位的值,用于计算insert的延时,
    max_suspicious_broken_parts:如果单个分区中损坏部分数据量超过配置值,则拒绝自动修复,或者拒绝删除损坏部分的数据,并且服务启动时候直接报错退出,