Kettle性能优化是一个系统工程,不仅涉及工具本身的优化,更涉及ETL工具之外的诸多因素,比如,ETL要读取数据库,那么目标DMBS的性能,SQL语句,网络等相关因素都影响到执行效率。根据Kettle对数据ETL的过程性能调优,主要取决于三个因素:上游渠道,工具的大小与数量,下游渠道。
一 Kettle调优
调整JVM大小进行性能优化,修改Kettle定时任务中的Kitchen或Pan或Spoon脚本。
Kettle是Java做的,尽量用大一点的内存参数启动Kettle;
调整提交(Commit)记录数大小进行优化(尽量提高批处理的commit size)
如修改“表输出”组件中的“提交记录数量”参数进行优化,Kettle默认Commit数量为:1000,可以根据数据量大小来设置Commitsize:1000~50000。
clipboard.png
调整记录集合里的记录数(RowSet)
RowSet是两个步骤之间的缓存.
性能调优的关键是如何找到性能瓶颈:一个重要的方法就是观察RowSet.如下图所示,当左边的in大于右边的out的位置时,很可能就是性能瓶颈的位置.(也可以通过单个执行最长的步骤来确定性能瓶颈.)
clipboard.png
通过点击转换空白处,可以调整rowset的大小.
clipboard.png
调整之后,执行效果如下:<