You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Apache NiFi处理器实现FlowFile ID匹配与汇总报告生成?

实现指定匹配与汇总需求的Apache NiFi处理器推荐

需求说明

目标:生成包含所有匹配FlowFile信息的指定JSON格式文件,示例格式如下:

{
  "matched": [
    {
      "id": "${uuid}",
      "fileName": "${filename}"
    }
  ]
}

逻辑:以一个包含若干ID的FlowFile作为参考库,后续每个进入的FlowFile需检查自身ID是否存在于参考库中;匹配成功时,为该FlowFile构造上述JSON结构,并追加到同一个汇总报告FlowFile中。

可用处理器及用法

  • LookupRecord:ID匹配的核心处理器。先将参考ID FlowFile加载为Lookup服务(比如SimpleKeyValueLookupService),后续FlowFile进入时,通过该处理器检查自身ID是否在参考库内,匹配成功的FlowFile会被路由到指定分支。
  • ReplaceText/UpdateRecord:用来构造符合要求的JSON结构。用ReplaceText可以直接把FlowFile内容替换为目标格式,将${uuid}和${filename}替换为对应FlowFile的属性值;如果需要更灵活的字段映射,用UpdateRecord生成标准JSON对象更合适。
  • MergeContent:负责汇总匹配成功的JSON片段。可配置为JSON Array合并格式,把单个的{"id":"xxx","fileName":"xxx"}对象合并到matched数组中;也可以先将每个匹配的JSON输出为单行,再通过MergeContent拼接成完整的汇总JSON文件。
  • DistributedMapCacheClientPut + DistributedMapCacheClientLookup:适合分布式NiFi集群场景。先用DistributedMapCacheClientPut把参考ID存入分布式缓存(如Redis),后续FlowFile通过DistributedMapCacheClientLookup查询ID是否存在,实现跨节点的ID匹配。
  • RouteOnAttribute:配合LookupRecord使用,将匹配成功和失败的FlowFile分流,只对匹配成功的FlowFile进行后续JSON构造与汇总操作。

简易流程参考

  1. 解析参考ID FlowFile,提取ID列表并加载到Lookup服务或分布式缓存;
  2. 后续FlowFile进入后,通过Lookup类处理器完成ID匹配;
  3. 匹配成功的FlowFile通过ReplaceText/UpdateRecord生成指定格式的JSON对象;
  4. 用MergeContent将所有匹配的JSON对象汇总成目标格式的FlowFile。

内容的提问来源于stack exchange,提问作者edjm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 10:02:21