1、首先找到瓶颈(重现问题;日志)
要知道你的性能瓶颈在哪,可能有时候你使用了不恰当的方式,导致整个操作都变慢,观察kettle log 生成的方式来了解你的ETL操作最慢的地方。
2、排查方向:(1)源->(2)目标->(3)转换顺序一步一步进行优化。
- 源:对读操作的优化
读数据量大–>大数据优化?尽量缩小输入的数据集的大小(增量更新也是为了这个目的)
没有索引 - 目标:对写操作的优化
数据库性能本身问题
写的数据量大–>大数据优化?
锁
写的目标表索引太多 - 转换
可以使用sql 来做的一些操作尽量用sql
==> Group , merge , stream lookup ,split field 这些操作都是比较慢的,想办法避免他们,能用sql 就用sql
分开Update和Insert。尽量避免使用update , delete 操作,尤其是update , 如果可以把update 变成先delete , 后insert .
3、ETL优化主要还是数据库优化
数据库优化主要是:配置优化;sql语句优化;表结构优化
性能优化的原则:
1)提高操作中最慢部分的速度
- 剔除不必要的操作