项目场景:
使用Kettle 整合不同Mysql数据库数据,批量插入Clickhouse
问题描述
Kettle 任务执行过程中,出现偶发性失败
报·java.net.SocketException: Broken pipe
异常
原因分析:
这个问题为偶发性问题,首先排除Kettle脚本问题,Clickhouse 批量插入数据性能优异,所以排除Clikchouse,那就要考虑来源,来源为Mysql数据库,Mysql有一个mysql8小时问题,有可能是Mysql连接的问题。
wait_timeout
因为使用的正式服务使用的数据库,查询配置的 wait_timeout
那这个150
是怎么确认的,根据业务高峰期等实际情况综合考虑结果。
既然wait_timeout是根据业务来综合考虑的结果,同步数据必然不能影响正式环境业务。
考虑从同步数据执行过程入手。
解决方案:
将Kettle执行过程的表输出由原先1000
改为800
。定时同步数据。
参考博客
mysql经典的8小时问题-wait_timeout