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中包含多少条记录(以及更通用的流程)。

这将允许您在RouteOnAttributeConvertRecord之间放置一个中间处理器(SplitJSON)。

所以你可以这样配置它:

路由策略=如果全部匹配则路由到“匹配”

match(动态属性)= $ {record.count:equals(1)}

然后,将matched关系连接到SplitJSON之后的处理器,并将unmatched连接到SplitJSON处理器。这样,如果有一条记录(不应该需要任何拆分),它将避免处理器SplitJSON

以上是关于Nifi JSON正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

通过 Java 正则表达式提取 semver 版本字符串的片段

js正则表达式过滤以指定字符开头以指定字符结尾的文本内容

text 正则表达式片段

markdown 正则表达式模式片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

Nifi:NIFI 中的 Json 到 CSV 转换器