我在NIFI中使用PutDataBaseRecord将CSV文件的数据插入数据库表中。第一次执行时一切正常,因为表中没有数据。然后,我修改文件,使其包含新记录和现有记录。由于现有记录(主键约束),PutDataBaseRecord失败,但是它不会插入新记录。
是否有任何方法可以配置处理器,以指示处理器插入新记录并忽略失败的记录?
我附上处理器配置的图片。
谢谢!
答案 0 :(得分:0)
这是可能的。但是,这不是一个简单的实现。
我建议您尝试以下流程- ListFile-> FetchFile-> SplitRecord-> PutDatabaseRecord 。
在SplitRecord处理器中,将“每个拆分的记录”属性设置为“ 1”。
SplitRecord处理器将输入流文件拆分为多个小流文件(在本例中,由于设置了“每拆分记录数= 1”,因此每行一个文件)。然后,这些单独的流文件将被路由到“拆分”关系,即路由到我们流中的PutDatabaseRecord处理器。
PutDatabaseRecord将新记录插入表中,而对于现有记录则失败。