概述
最近用kettle时发现输出到数据表太久,1小时才写了3万条数据,平均每秒速度为8条,基于此,做一下改进。
优化1:优化网络连接属性
mysql表输出的时候出现减速的原因可能是因为网络链接的属性设置
在此处添加参数:
useServerPrepStmts=false rewriteBatchedStatements=true useCompression=true characterEncoding=utf8
优化2:开启多线程
kettle转换在运行时,每个步骤可被看成一个带着输入、输出行队列的工作线程,每个线程是并行运行的,当数据化是有效时即处理。kettle允许针对每个独立步骤手工定义其线程数。如果转换有一个瓶颈步骤,该步骤有多个实例同时运行可以加快处理速度。可以通过检查每个步骤的输入、输出队列及行/秒的处理性能找到候选的瓶颈步骤。如果某步骤有满输入队列,空输出队列,并每秒处理行数低,这些因素往往决定了整个转换的性能,从而找到瓶颈步骤。这些因素的数据在kettle执行“Step Metrics”视图中可以看到。
右击问题步骤,选择“change number of copies to start..”并输入合适的线程数,这时当你运行转换时,你将注意到多个运行的实例,每个实例在视图中有自己的输入、输出队列。