Apache nifi 如何仅在其他处理器完成其执行时运行处理器?
我正在将一个表(200万行)从DB2迁移到SQL Server。我正在使用下一个流:Apache nifi 如何仅在其他处理器完成其执行时运行处理器?,apache-nifi,Apache Nifi,我正在将一个表(200万行)从DB2迁移到SQL Server。我正在使用下一个流: ExecuteSQL(从Db2表中选择记录) SplitAvro(用于分割记录。我将其配置为输出大小=1,以控制如果一个失败,则插入其余记录时不会出现问题的情况 PutDataBaseRecord(在SQL Server表中插入记录) ExecuteSQL(我需要调用一个存储过程,该过程对PutDataBaseRecord正在处理的同一个表执行更新语句) 问题是在PutDataBaseRecord完成所有记录的
提前感谢!在PutDatabaseRecord之后,您可以在碎片整理模式下使用MergeContent来撤消SplitAvro执行的拆分操作。这样,只有在看到所有拆分后,MergeContent才会生成一个流文件,此时您知道第二个ExecuteSQL运行的时间。PutDatabaseRecord之后可以在碎片整理模式下使用MergeContent撤消SplitAvro执行的拆分操作。这样,只有在看到所有拆分后,MergeContent才会生成单个流文件,此时您知道第二个ExecuteSQL运行的时间。由@bryan bende提供的答案很好,因为它简单而优雅。如果由于某种原因不起作用,你也可以看看等待/通知。话虽如此,布莱恩的答案更简单,可能更可靠。由@Bryan bende提供的答案很好,因为它简单而优雅。如果出于某种原因不起作用,你也可以看看等待/通知。话虽如此,布莱恩的答案更简单,也可能更可靠更健壮。感谢Bryan的回答!我尝试了MergeContent,但出现了另一个问题。碰巧有些记录在插入时失败,而MergeContent从未运行。您如何处理这个问题?您还需要将失败关系路由到合并内容,因为所有拆分都是成功+失败的组合正在退出PutDatabaseRecord感谢Bryan的回答!我尝试了MergeContent,但出现了另一个问题。有些记录在插入时失败,而MergeContent从未运行。您如何处理此问题?您还需要将失败关系路由到合并内容,因为所有拆分都是成功+f的组合来自PutDatabaseRecord的故障