Rav*_*pta 2 pentaho pentaho-spoon pentaho-data-integration
M第一次使用pentaho勺子,我有一个输入表,我写了一个sql查询,并希望将输入表的结果数据存储在不同的目标表中,但是在将目标表中的数据存储之前检查数据是否全部准备好了存在于表中.
尽管Cyrus的答案对于您的用例完全正确,但您也可以使用该Merge Row (diff)步骤.
它将传入流与现有表进行比较,并告知记录是新建,已修改,相同还是已删除.然后,您可以使用Switch/Case步骤采取适当的操作.
这种增量加载模式比Insert/Update不仅更有效,因为它为您提供了更大的灵活性,但主要是因为它不是一个有效的操作(您需要4个数据库访问:查看表,获取结果,如果需要更改它并推送结果).
请注意,在PDI并行运行所有操作的情况下,您可能会无意中打开同一个表进行读写操作,最终导致死锁.通常的技巧是在PDI中对引用表进行排序,因此它必须读取所有记录以确保它具有最后一个.如果流量预先排序,排序将花费你几乎没有时间(和内存)Input table.