背景描述:ETL 是kettle工具,oracle数据库
每天通过bat文件,自动调用kette,启动kettle,kettle通过连接oracle数据库,通过dblink 连接源库抽数到目标库。
问题:自动定时启动kettle提数的时间会随着每天提数,提数时间变慢。
例如:第一天花费2个小时,第二天花费2.30小时,第三天花费3个小时,以此类推,直到kettle提数报错。如果提数报错的话,我就是手动启动kettle 在提取,速度非常快,基本上比自动定时提数还要快。
所以我想问问大家究竟是什么原因?
1、为什么自动定时提数会随着每天提数时间越来越慢,知道提数报错(通常报错原因是连接不上数据库,I/O之类的)可能是和服务器内存有关系。
2、为什么手动去执行会比自动定时执行快,难道每次手动执行会打破kettle的sql缓存吗?
3、自动定时提数会把日志写到日志表中,形成一个txt文件
所以就想问问大家,为什么自动定时提数时间会越来越慢,而每次手动执行会很快。
难道是跟自动写入日志表,手动执行kettle 不写入日志表有关系吗?