"Table exists" 进入 Pentaho Kettle

"Table exists" step in Pentaho Kettle

我想使用 "Table exists" 步骤来检查某些 table 是否存在,如果不存在则创建一个

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

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

"Table exists"中的属性是

Step name:
connection:
Schema name:

Tablename field:
Result fieldname:

前三个都清楚。最后两个

"Tablename field" 是什么意思?这是一个带有有限选项的下拉列表,这些选项是输入 table 的列名。应该是我要检查连接的table名字吗?

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

Tablename 字段是包含您要检查的 table(s) 名称的字段。如果您只想检查一个 table,您只需要在其中一个字段中包含一个带有 table 名称的行。

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

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

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

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

生成行 - 将 tablenamefield 指定为名称,将 table_name_to_check 指定为值,将 String 指定为类型。稍后我们可以使用字段 tablenamefield in Table exists step

Table 存在 - Select tablenamefield 出现在 Table 名称字段下拉列表中。将任何名称写为 Result fieldnameresult

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

执行 SQL 语句 - 编写您的 table 创建 SQL 查询。

Table 输出 - 写入新的 table.

注意: 如果您不想检查每一行是否存在 table。您可以使用作业并检查第一个转换中是否存在 table 以及我推荐的第二个转换中的 Table 输入和输出步骤。