NiFi中MergeRecord处理器无输入仍重复生成数据问题求助
NiFi MergeRecord 无限生成重复数据排查方案
- 优先检查
MergeRecord的关系路由配置:确认original关系没有被连接到处理器自身的输入队列,这是该问题最高发的诱因。如果存在该回连配置,将original关系改为路由到终止,或根据流程需求路由到其他非输入的下游节点即可。 - 核对合并触发规则配置:
- 检查
Minimum Number of Records、Maximum Number of Records参数与你实际待合并的分片数据量是否匹配,如果最小合并记录数小于当前队列留存的总记录数,且没有设置合理的Max Bin Age阈值,处理器会反复将同一份存量数据拆分合并,生成重复结果。 - 如果你的场景是单批上游分片处理完成后仅合并一次,建议配置
Correlation Attribute Name参数,以上游拆分JSON数组时生成的统一流文件属性作为合并关联标识,保证同一批分片只会被合并一次,不会重复触发。
- 检查
- 如果你使用的是
Defragment合并策略,需要确认所有待合并的分片都带有正确的分片属性:同一批分片的fragment.identifier属性值必须一致,且每个分片的fragment.count(总分片数)、fragment.index(分片序号)属性值正确,否则会导致处理器反复尝试合并同一份存量数据。 - 排查下游链路是否存在回写:确认MergeRecord的下游节点没有将数据重新写入MergeRecord的输入队列,避免形成链路循环。
内容的提问来源于stack exchange,提问作者Thomas Letellier
相关产品推荐
相关产品推荐

