Nifi JSON正则表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nifi JSON正则表达式相关的知识,希望对你有一定的参考价值。
我正在使用转换AvroToJson处理器将avro转换为json,然后使用表达式$。*拆分json以将json数组分解为单个记录。
如果json中没有单个元素而不是数组,则失败。
有人可以帮助使用正则表达式来支持数组和单个元素。
您可能想尝试将ConvertRecord处理器与AvroReader和JsonWriter一起使用,然后使用记录计数为1的SplitRecord。
也可以避免拆分到单个记录。通常这样做是为了操作每个记录,但是使用记录处理器,您通常可以在适当的位置操作它们,从而通过不分割来显着提高性能。
好吧,你没有什么可以分成一个元素。如果你想避免单个元素的失败,你可以使用ConvertRecord
而不是ConvertAvroToJson
。
区别在于,ConvertRecord
将为您提供record.count
属性,该属性告诉您此FlowFile中包含多少条记录(以及更通用的流程)。
这将允许您在RouteOnAttribute
和ConvertRecord
之间放置一个中间处理器(SplitJSON
)。
所以你可以这样配置它:
路由策略=如果全部匹配则路由到“匹配”
match(动态属性)= $ {record.count:equals(1)}
然后,将matched
关系连接到SplitJSON
之后的处理器,并将unmatched
连接到SplitJSON
处理器。这样,如果有一条记录(不应该需要任何拆分),它将避免处理器SplitJSON
。
以上是关于Nifi JSON正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
通过 Java 正则表达式提取 semver 版本字符串的片段