一、转换对象的优先级
- kettle中转换和作业的执行顺序:
1、一个作业内的转换,是顺序执行的。
2、一个转换内的步骤是并行执行的。
3、作业内不支持事务,转换内支持事务。
- 根据业务需要,通常需要在转换内顺序执行,小技巧如下:
1、执行SQL脚本是优先于所有步骤。
2、使用“阻塞数据直到步骤都完成”,确保其他数据步骤都完成再进行下一步骤。
如果我们不想让执行SQ脚本先执行,有没有办法让他听话呢?答案是一定的,此时我们需要用到阻塞对象,在执行SQ脚本前面安一个智能保安,保安保证前面的对象都执行完以后,再允许执行SQ脚本来运行。
二、执行的顺序
下面两种写法,执行的顺序是一样的。
sql执行脚本放到最后,有时候会报错,或者锁表,故可以添加“阻塞等待”
三、表输入输出优化建议
我们日常用的最多的就是使用裁剪表,但是裁剪表有个缺点就是会将输出表中的数据先全部清空再插入,如果用户正在使用该表的数据,会导致在表输入至表输出的时间内看不到数据,以为是系统BUG或者其他的原因。容易引起用户的误解,因此面对读取插入时间超过3s的转换,一般是不建议采用裁剪表,还是采用先删除部分需要更新的数据,一般会删除一天的数据,再插入一天的数据。
习惯性使用指定数据库字段。