如何使用Apache NiFi实现含Pass内容校验的文件处理流水线?
Apache NiFi 实现文件内容关键字判断流水线
核心流程组件组合
无需使用SplitText和ExtractText,直接通过 GetFile -> RouteOnContent -> 后续流程/终止 的组合即可满足需求,具体配置如下:
1. GetFile 组件
- 配置
Input Directory为存放Python脚本输出文件的目标文件夹 - 根据需求设置
File Filter(例如仅匹配.txt后缀文件)、Recurse Subdirectories(是否递归读取子文件夹)等参数 - 按需设置
Keep Source File,决定是否保留原文件
2. RouteOnContent 组件(核心判断组件)
这是实现关键字匹配的关键,配置步骤:
- 添加自定义路由规则,命名为
Contains Pass Matching Strategy选择ContainsSearch Value填入Pass,如需忽略大小写可勾选Case InsensitiveRouting Strategy设置为Route to Property name- 生成两个路由分支:
Contains Pass:匹配到关键字的文件,直接连接到后续处理组件unmatched:未匹配到关键字的文件,可连接到DeleteFile直接删除,或PutFile归档到错误目录,实现流水线终止
3. 后续流程与终止逻辑
- 匹配到
Pass的文件:从Contains Pass分支接入你需要的后续处理环节(如数据解析、入库等) - 未匹配的文件:从
unmatched分支接入终止类组件,完成流程收尾
原组合失效原因
SplitText用于拆分大文件为小片段,ExtractText用于提取特定格式字段,二者对于简单的关键字存在性判断完全冗余,反而会增加流程复杂度,RouteOnContent可直接高效完成内容匹配判断。
内容的提问来源于stack exchange,提问作者Siva
相关产品推荐
相关产品推荐

