本文主要是介绍Kettle之“检查表是否存在”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
想用Kettle实现一个非常简单的需求,从MySQL向Oracle导入一个表的数据,如果在oracle里表不存在,先建表再导入数据。这个功能看似非常简单,但对于刚开始接触Kettle的用户来说,可能会有些疑惑。Kettle的转化和作业中都有“检查表是否存在”步骤,但是如果要实现上述的需求,只能用作业,而不能使用转换。
在Kettle中,作业是串行执行的,只有前一个作业项执行成功才会开始下一个作业项。而转换中的多个步骤是并行执行的,数据流会在构成转换的所有步骤中同时操作。因此,如果使用转换,不能保证先建表再导入数据的执行顺序。下面为实验步骤。
1. 建立一个名为“mysql to oracle”的作业,如下图所示。

2. “检查表是否存在”作业项如下图所示。

3. “create table”SQL脚本作业项如下图所示。

4. “mysql to oracle”转换如下面三张图所示。

在Kettle中,作业是串行执行的,只有前一个作业项执行成功才会开始下一个作业项。而转换中的多个步骤是并行执行的,数据流会在构成转换的所有步骤中同时操作。因此,如果使用转换,不能保证先建表再导入数据的执行顺序。下面为实验步骤。
1. 建立一个名为“mysql to oracle”的作业,如下图所示。
2. “检查表是否存在”作业项如下图所示。
3. “create table”SQL脚本作业项如下图所示。
4. “mysql to oracle”转换如下面三张图所示。
这篇关于Kettle之“检查表是否存在”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!