Pentaho Kettle 中的“表存在”步骤

Hel*_*lad 5 pentaho kettle pdi

我想使用“表存在”步骤来检查某个表是否存在,如果不存在则创建一个

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

Table Input ----->  Table exists  ----> Table output
Run Code Online (Sandbox Code Playgroud)

“表存在”中的属性是

Step name:
connection:
Schema name:

Tablename field:
Result fieldname:
Run Code Online (Sandbox Code Playgroud)

前三点很清楚。最后两个

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

结果字段名称是什么?我该如何使用它?

Mar*_*oon 6

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

使用以下顺序检查并创建表(如果不存在)。

在此输入图像描述

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

生成行 - 指定tablenamefield名称、table_name_to_check值和String类型。稍后我们可以使用表中的字段tablenamefield存在步骤

表存在 - 选择tablenamefield出现在“表名”字段下拉列表中的表。随便写个名字,如Result fieldnameieresult

开关/案例 - 输入Y案例值并Table Output作为目标步骤。设为execute SQL statement默认目标步骤。要切换的字段名称是result

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

表输出 - 写入新表。

注意:如果您不想检查表中的每一行是否存在。您可以使用作业并检查第一个转换中的表是否存在以及第二个转换中的表输入和输出步骤,我建议这样做以提高性能。