我对PDI还是陌生的,但仍然对此有所了解。我正在尝试创建一个转换,该转换将从一个文件夹中读取所有csv文件,检查文件中的数据是否正确,这意味着没有格式缺失/错误/错误的行,然后将其存储在数据库中。>
我尝试的是:
Text File Input
通过Apache Common VFS访问FTP中的CSV文件。Filter Row
验证并建立条件以检查CSV中的数据(检查文件名,字段是否存在)Syncronize After Merge
输出到PostgreSQL表。我之所以使用它,是因为我还将CSV数据与另一个表中的数据结合在一起。第二步的结果不是我想要的。目前,它会在读取所有csv之后进行检查,并将所有数据传递给下一步,但是我要在读取数据的同时进行检查,以便仅将正确的数据传递给下一步。我怎样才能做到这一点?有什么建议吗? (需要集思广益)
如果无法在PDI中实现,那么可以读取所有数据并将其传递到下一步,但是在插入数据之前将再次进行验证。
答案 0 :(得分:0)
只有在完全读取并检查了所有数据后,才能验证文件。
执行此操作的好方法是协调几种转换(一种用于读取目录,一种用于检查文件是否有效,一种用于加载已验证文件的数据)。
现在写一份工作可能会使一项艰巨的任务接缝,直到您写了一打一打。因此,您可以进行一次转换。实际上,它是一种基于在整个输入数据上定义的指标进行决策或进行计算的模式。
Additional output field
标签中)。 只是一句话。在您的特定情况下,我将稍作更改,测试第一个filter
中可接受的文件名,并删除group by
和第二个filter
。但是我认为拥有标准模式对您会更有用。
但是,由于种种原因,良好的做法还是要熟练掌握。