NiFi是否具有同步机制以便知道何时完成处理?
我摄取了一些数据,进行了一些处理,在步骤N-1中,我想知道所有数据都已处理完,以便继续进行(最终)步骤N。
[GetFile / 1000 000行] ----> [Proc1 /处理步骤0] -----> [Proc2 /处理步骤1] .... [PutSQL /插入db] ---> [Proc让我知道我已经在表格中插入了所有数据] ----> [例如,对数据进行ProcN /运行聚合]
最佳答案
NiFi确实没有在框架中内置显式同步功能,但是某些处理器具有有助于同步活动的功能。我可以想到一些使流程正常运行的方法:
调度-您可以在处理器上使用CRON调度来调度GetFile和以后的聚合操作,前提是这些操作的持续时间相对可预测。
MonitorActivity-MonitorActivity处理器可以基于队列中的不活动来触发流文件。您可以在PutSQL的下游使用此方法,并在插入停止且应开始聚合时触发。
MergeContent(简单)-MergeContent处理器可能会将PutSQL的结果聚合到单个消息中,从而触发聚合操作。您必须试验箱大小和寿命的属性才能使其正常工作。
MergeContent(碎片整理)-MergeContent具有旨在将较大文件的片段关联在一起的碎片整理策略。它需要在流文件上设置特定的属性,请参阅文档底部的“读取属性”部分。该行为似乎接近您想要的,但是设置这些片段属性可能很困难。