代码之家  ›  专栏  ›  技术社区  ›  Edwin Chua

我应该使用哪个处理器将不同的JSON输入组合到一个对象中?

  •  0
  • Edwin Chua  · 技术社区  · 6 年前

    enter image description here

    我想建立一个接收多个JSON输入的数据流,并将它们组合成一个具有多个属性的JSON对象(我目前正在使用一些GenerateFlowFile处理器来生成输入),然后每隔10秒通过PublishMQTT处理器发送数据。

    输入以不同的间隔(1-5秒)输入,示例如下:

    • {“温度”:60}

    • {“压力”:30}

    我想把输入的数据编译成一个对象。 {“温度”:60,“压力”:30} 在发送到PublishMQTT处理器之前。

    此外,如果具有相同属性的新数据在发送消息之前进入,则应更新相同对象中的属性,而不是排队。i、 e.如果输入新数据 {“压力”:150} ,输出对象应更新为 {“温度”:60,“压力”:150} 在通过MQTT发送之前

    我想我需要一个处理器(见附件图片中的蓝色圆圈),但我不确定哪个处理器做了我所描述的。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Bryan Bende    6 年前

    实际上并没有一个提供的处理器能够做到这一点,因为它需要一些数据知识。您必须实现一个自定义处理器,或者使用ExecuteScript。

        2
  •  0
  •   Óscar Andreu    6 年前

    您可以使用wait notify获取流文件wait for another like in this example:

    https://pierrevillard.com/2018/06/27/nifi-workflow-monitoring-wait-notify-pattern-with-split-and-merge/comment-page-1/

    请注意,该链接只是一个示例,您的用例是不同的,必须根据您的需求进行更改。

    然后可以将信息合并到一个流文件中并使用 EL 生成新的json值。