Pentaho Kettle insert 步骤的错误处理
Posted
技术标签:
【中文标题】Pentaho Kettle insert 步骤的错误处理【英文标题】:Pentaho Kettle insert Error Handling of step 【发布时间】:2017-11-17 15:17:19 【问题描述】:我是 Pentaho 的 GeoKettle (Spoon) 的新手,我目前是从 Excel 文件到我的数据库的行。现在我想避免在我的数据库表中重复。这就是为什么我只想将那些不存在的行插入到我的数据库表中(在我的数据库表中只有唯一的记录)。
据我所知,有两种方法可以实现这一点。我尝试的第一种方法是使用插入/更新步骤(我禁用了更新功能)并定义了所有必须相等的列才能插入记录。但它不起作用。所有记录仍然插入到数据库中。
这就是为什么我要尝试(根据 pentaho)更快的选项,这是一个带有“更新”错误处理步骤的“表格输出”,如图所示。
如图所示,从“table output”指向“update”的箭头是黑色的。但是我需要一个红色的虚线来处理 step 的错误。但我不知道如何创建这个。在教程中,我经常看到弹出一个带有 2 个选项的小窗口,如图所示:
但我没有得到那个弹出窗口。如果我想创建一个跃点,我必须标记这两个步骤并右键单击其中一个。 那么我可以通过哪些可能的方式创建这样一个红色虚线箭头?最后,它必须看起来像这样:
非常感谢您!
【问题讨论】:
【参考方案1】:您的设置有问题。或者使用您的 PDI 版本。错误步骤的功能是在 V4 中引入的,但在 V6 前后的所有步骤中都完全实现了。
从SourceForge 下载新的 PDI。 V7.1 确实是一个强大而稳定的版本。解压并测试。
顺便说一句,您想要实现的是 CRUD 模式。 CRUD 用于创建、读取、更新、删除。执行此操作的步骤是 Merge Rows (diff)
(在 Joins
系列中)。您告诉步骤要检查哪些列,它会生成一个新列,其值为 identical
、changed
、new
或 deleted
。您可以让他们重定向 Switch / Case
中的流程以执行适当的操作。更多信息here (V4)。
【讨论】:
我按照您的建议尝试了您的模式,但功能与我希望的不同。与您的示例一样,记录(由 csv 文件输入导入)与表合并。在我的情况下:起初表是空的,所以所有记录都是新的并被导入到表中。但是,如果我将 csv 文件中的记录打乱并重新导入,则不完全相同并再次导入。 (因为记录的顺序不同)我需要将csv的每条记录与所有数据库记录进行比较,以确定它是否已经存在。 Merge Diff 要求对输入进行排序。更多细节在这里:***.com/questions/47429769/…以上是关于Pentaho Kettle insert 步骤的错误处理的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Pentaho 数据集成 (Kettle) 中的“用户定义的 Java 类”步骤中获取所有参数
Pentaho - 如何根据 Kettle 属性文件设置工作转换
在 Pentaho Kettle ETL 步骤中分发标签有啥作用?