Apache nifi 使用routeonattributeto筛选属性或属性值的nifi Json数据

Apache nifi 使用routeonattributeto筛选属性或属性值的nifi Json数据,apache-nifi,cloudera,hortonworks-data-platform,data-ingestion,hortonworks-sam,Apache Nifi,Cloudera,Hortonworks Data Platform,Data Ingestion,Hortonworks Sam,我目前正在使用Nifi读取tealium事件流并加载到HDFS中来使用数据。当源未发送属性的数据时,需要帮助筛选数据 {“帐户”:“newtv”,“twitter:description”:“发现您最喜爱的newtv节目和主机的播放时间”。“og:locale”:“en_US”,“dcterms:publisher”:“newtv”,“原始来源”:“www.newtv.com/”,“og:url”:“www.newtv.com/show/program guide”}},“发布时间”:“2019

我目前正在使用Nifi读取tealium事件流并加载到HDFS中来使用数据。当源未发送属性的数据时,需要帮助筛选数据

{“帐户”:“newtv”,“twitter:description”:“发现您最喜爱的newtv节目和主机的播放时间”。“og:locale”:“en_US”,“dcterms:publisher”:“newtv”,“原始来源”:“www.newtv.com/”,“og:url”:“www.newtv.com/show/program guide”}},“发布时间”:“2019-10-09 11:27:46”,“用户代理”:“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,比如Gecko)Chrome/77.0.3865.90 Safari/537.36,“事件id:“12345”}

上面的消息示例。当前,当源未从下面的示例数据集中发送事件_id属性的数据时,我一直在筛选数据

当前Nifi流量, 使用Kafka->Evaluate Json Path->Jolttransform Json->Evaluate Json Path->RouteOnAttribute->Merge Content->Evaluate Json Path->Update attribute->PutHDFS->MoveHDFS


需要帮助如何使用RouteOnAttribute分割数据,以将缺少的事件id属性或属性值区分为两个不同的流。带有属性或属性值和缺少的值的流将出错并加载到不同的输出路径。

EvaluateJsonPath
中,处理器添加新属性以从流文件中提取
事件id

如果flowfile没有
事件id
,则nifi会向属性添加空值

评估JSONPATH配置:

然后,通过使用
RouteOnAttribute
处理器,我们可以检查属性值并相应地路由流文件

路由属性配置:

非空值

${event_id:isEmpty():not()}
${event_id:isEmpty()}
空值

${event_id:isEmpty():not()}
${event_id:isEmpty()}


然后使用空值和非空值关系进行进一步处理

谢谢你的回复。我已经解决了这个问题。