目录
一、问题提出
想用 Kettle 实现一个非常简单的需求,从 MySQL 向 Oracle 导入一个表的数据,如果在 Oracle 里表不存在,先建表再导入数据。这个功能看似非常简单,但对于刚开始接触 Kettle 的用户来说,可能会有些疑惑。Kettle 的转化和作业中都有“检查表是否存在”步骤,但是如果要实现上述的需求,只能用作业,而不能使用转换。
在 Kettle 中,作业是串行执行的,只有前一个作业项执行成功才会开始下一个作业项。而转换中的多个步骤是并行执行的,数据流会在构成转换的所有步骤中同时操作。因此,如果使用转换,不能保证先建表再导入数据的执行顺序。
二、实验步骤
1. 建立一个名为“mysql to oracle”的作业,如下图所示。
2. “检查表是否存在”作业项如下图所示。
3. “create table” SQL 脚本作业项如下图所示。
4. “mysql to oracle”转换如下面三张图所示。
参考: