1. 为什么你的Kettle迁移MySQL数据这么慢?
第一次用Kettle迁移百万级MySQL数据时,我也被它的龟速震惊了。明明只是简单的表对表迁移,处理5万条记录竟然要半小时,进度条像蜗牛爬一样。后来才发现,默认配置下的Kettle就像没装发动机的老爷车,而调优后的性能堪比跑车。
Kettle(现称Pentaho Data Integration)作为老牌ETL工具,在处理小数据量时表现尚可。但数据量超过10万条后,你会明显感受到速度断崖式下跌。这主要源于三个瓶颈:数据库连接参数未优化、JVM内存分配不足、批量提交策略不合理。我曾在迁移840万条数据时,通过调优将耗时从6小时压缩到1小时,关键就在于解决了这三个核心问题。
2. 数据库连接参数调优实战
2.1 必须开启的三大黄金参数
在数据库连接配置页面点击"选项"标签,添加这三个改变游戏规则的参数:
useCompression=true
rewriteBatchedStatements=true
useServerPrepStmts=false
实测20万条数据迁移,开启前后速度对比:
| 数据量 | 优化前耗时 | 优化后耗时 | 提升幅度 |
|---|---|---|---|
| 5,000 | 504s | 3.1s | 162倍 |
| 200,000 | 任务失败 | 138s | - |
rewriteBatchedStatements 是MySQL的独门秘籍。默认情况下Kettle会逐条执行INSERT语句,开启后MySQL会将批量插入自动


237

被折叠的 条评论
为什么被折叠?



