如何基于FlowFile数据过滤?缺失必填行的FlowFile分流方案咨询
NiFi场景处理方案:过滤缺失全部必填行的FlowFile
一、推荐处理器及实现思路
直接用RouteOnContent或者QueryRecord就能搞定,选哪个看你的数据格式:
- 如果每行是结构化键值对(比如单行JSON):用QueryRecord更灵活
- 先配好Record Reader(比如JsonTreeReader)来解析每行的结构。
- 写个简单SQL统计必填行的数量,比如假设必填键是
required_field,就写SELECT COUNT(*) AS req_count FROM flowfile。 - 接着用RouteOnAttribute或者直接在QueryRecord里设置路由规则:当
req_count = 0时,把FlowFile打去不匹配队列,剩下的走正常流程。
- 如果是纯文本键值对(比如每行是
key=value):用RouteOnContent更简单- 给必填行写个正则匹配规则,比如
^required_key=.*$。 - 设置路由条件:当FlowFile内容完全没匹配上这个正则时,路由到不匹配队列;只要匹配到至少一次,就走正常流。
- 给必填行写个正则匹配规则,比如
二、Jolt能不能做这个过滤?
不行。Jolt的核心是做JSON结构的转换、重组,它只处理单条JSON结构,没法跨行统计“有没有至少一行必填数据”这种逻辑。所以这个过滤场景别用Jolt,还是上面的处理器更直接靠谱。
内容的提问来源于stack exchange,提问作者sandilya ch
相关产品推荐
相关产品推荐

