ClickHouse写入常见问题: too many parts解决方案

本文探讨了在使用Spark写入ClickHouse时遇到的'too many parts'异常,该异常可能导致数据不一致。异常原因是数据插入速度过快,生成的parts文件过多,ClickHouse无法及时合并。解决方案包括调整Spark并发数、增大批处理数据量、修改ClickHouse配置以增加可合并分区数,以及考虑使用ReplacingMergeTree引擎以实现分区内的数据去重。
摘要由CSDN通过智能技术生成

常见错误

too many part

举例:spark写入clickhouse部分task爆出too many part的异常,如下图

image-20220715144138150

虽然作业最终运行成功,但此异常会造成数据不一致

例如:200w条数据通过spark 写入 clickhouse - MergeTree表,导致最终结果为206W条

脏数据原因:spark某个task任务在写入clickhouse时clickhouse抛出异常,造成task作业重试,从而导致相同的数据重复写入【脏数据】,造成数据不一致问题

too many part异常原因:当数据插入到[clickhouse]表时,每一批插入都会生成对应parts文件,clickhouse后台会有合并小文件的操作。当插入速度过快,生成parts小文件过多时,clickhouse无法以适当的速度合并这些parts时会报上面这个错误。

例如spark并发数为2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Light Gao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值