首页 > 解决方案 > Nifi:在 RouteOnAttribute 中使用动态变量

问题描述

我正在开发一个 Nifi 流,它每 30 秒从 API 获取数据。这些数据采用 json 格式,我使用 EvaluateJsonPath 和 RouteOnAttribute 处理器对其进行过滤。我拆分了从 API 收到的 json 数组,每个 json 对象都包含一个字段“StationName”,我用它来过滤数据。 获取和过滤 json

当我像这样在 RouteOnAttribute 中对过滤器进行硬编码时,每件事${stationName:equals("Kensal Green Station") :or(${stationName:equals("Sudbury & Harrow Road Station")}) :or(${stationName:equals("Wembley Central Station")}) :or......都运行良好

问题是我想创建一个动态过滤器,其中包含来自参考文件的电台列表。我创建了一个获取该文件的流程,读取它并将一个站点放入一个变量中(我从整个站点名称列表开始,但由于很多失败,我决定尝试只使用一个值开始)。

在下面的屏幕上,您可以看到变量“stopsList”及其值“Heathrow Central Bus Station”。然后你可以在 RouteOnAttribute 处理器中看到我的动态过滤器。

来自右侧的参考数据

我的属性值

动态过滤器

问题是当我播放整个流程时,所有值都在“不匹配”路径中,我没有得到任何与我的过滤器匹配的东西(但如果我硬编码它,它就可以工作)。

一切都出错了

你有什么主意吗 ?

谢谢你读我,

问候,

托马斯

标签: apache-nifi

解决方案


推荐阅读