Pentaho Kettle中的“Table exists”步骤

时间:2015-11-22 16:05:55

标签: pentaho kettle pdi

我想使用“Table exists”步骤检查某些表是否存在,如果没有则创建一个

我创建的转换(为了将数据从输入数据库复制到输出数据库)

Table Input ----->  Table exists  ----> Table output

“表存在”中的属性是

Step name:
connection:
Schema name:

Tablename field:
Result fieldname:

前三个很清楚。最后两个

“Tablename字段”是什么意思?它是一个包含有限选项的下拉列表,它是输入表的列名。它应该是我想要检查连接的表名吗?

什么是Result fieldname?我该怎么用?

2 个答案:

答案 0 :(得分:2)

  • Tablename字段是它检查的表。
  • Result fieldname包含该字段的字段的名称 此步骤输出中的布尔结果标志。

如果不存在,请使用以下序列检查和创建表。

enter image description here

表输入 - 从数据库中获取数据。

生成行 - 将tablenamefield指定为名称,将table_name_to_check指定为值,将String指定为类型。稍后我们可以在Table exists步骤

中使用字段tablenamefield

表存在 - 选择显示在“表名”字段下拉列表中的tablenamefield。将任何名称写为Result fieldname,即result

切换/案例 - 在案例值中键入Y,在目标步骤中键入Table Output。将execute SQL statement设为默认目标步骤。要切换的字段名称为result

执行SQL语句 - 编写表创建SQL查询。

表输出 - 写入新表。

NB:如果您不想检查每一行是否存在该表。您可以使用作业并检查第一次转换中的表存在以及第二次转换中的表输入和输出步骤,我建议将其用于性能。

答案 1 :(得分:0)

Tablename字段是包含要检查的表名称的字段。如果您只想检查单个表,则只需要在其中一个字段中使用表名的单行。

Result fieldname是步骤将添加到步骤输出的新字段的名称。该新字段包含检查结果。这是一个boolean字段,您可以在以后的步骤中使用它,例如将此行发送到创建表的分支。如果表存在,则字段值为true;如果表不存在,则字段值为false