(本文档仅供参考)
现象:
自助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://blog.csdn.net/qq_35128600/article/details/125832943