Pentaho Kettle转换更新:如何使用忽略查找失败

时间:2016-06-05 23:29:19

标签: oracle pentaho transformation kettle insert-update

如何忽略查找失败在Kettle Transformation UPDATE步骤中有效?我试图更新一些数据进行转换,但是当键查找与表数据不匹配时,我会在此步骤中看到频繁的错误消息。

enter image description here

1 个答案:

答案 0 :(得分:1)

默认情况下,Update step根据Keys to look up the values面板中定义的密钥(ID)查找记录(来自数据库)。如果在目标表中找不到记录,则该步骤失败并向控制台抛出错误。它失败是因为它尝试将目标表中的查找值与记录流中的值进行比较。如果它没有从目标数据库中找到任何行进行比较,则会失败。

检查Ignore lookup failures?时,步骤不会失败。它会忽略特定的失败并继续处理记录流中的另一个传入行。

您可以使用Flag field来保存查找失败的信息。您可以使用它来跟踪所有失败的ID,并将它们写出到控制台或文件中。

E.g:当您的ETL每天从源加载到目标数据库时,该步骤非常有用。源数据库已包含每日增量[IDs: 1,2,3,4,5,6],而目标仅包含在[IDs: 1,2,3,4]之前加载的增量。现在,当您运行从源加载数据并更新目标(使用Update step)的转换时,它会在ID = 5上失败。它无法在目标数据库中查找此类记录。

另一个重要选项是Skip lookup。检查时,它直接执行update语句,而不查找目标数据库中的行,并将表值与记录流中的传入值进行比较。